@charset "utf-8";
/* CSS Document */

/* ===== Design Tokens ===== */
:root {
	/* 見出し/ブランド */
	--c-brand: #033c75;
	--c-brand-accent: #EC9E00;
	/* 主要ボタン/強調 */
	--c-accent: #2AB7A9;
	/* 終了/注意 */
	--c-warn: #E85C5C;
	/* 開催中 */
	--c-ongoing: #EC9E00;
	/* 受付中 */
	--c-open: #2C8D5A;
	/* ヒーロー背景の黄色（参考） */
	--c-hero: #ffe36c;
	/* イベントセクションの淡色 */
	--c-bg-1: #E6F2EE;
	/* 本文 */
	--c-text: #173046;
	/* 補助テキスト */
	--c-muted: #5F7A8C;
	/* ニュアンスが入った白色 */
	--c-softwhite: #FCFCF9;
	--c-hover: #ffbf0d;
	--font-default: "Zen Maru Gothic", AdjustedYuGothic, "游ゴシック体", YuGothic, "游ゴシック edium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Sans", Meiryo, "sans-serif";
	--font-bold: 900;
	--font-thin: 400;
	--shadow-1: 0 8px 24px rgba(0, 0, 0, .06);
	--shadow-2: 0 16px 32px rgba(0, 0, 0, .10);
	--radius-card: 12px;
	--radius-btn: 10px;
	--space-1: 8px;
	--space-2: 16px;
	--space-3: 24px;
	--space-4: 32px;
	--space-5: 40px;
	--space-6: 48px;
	--space-8: 64px;
	--main-width: 1200px;
	--main-padding: 4rem;
	--main-contents-marginT: 80px;
	--main-contents-marginB: 120px;
	--header-height: 90px;
	--about-bg-height: 300px;
	--r-eventcard: 8px
}


/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	:root {
		--header-height: 100px;
		--main-padding: 4rem 8rem;
		--main-contents-marginT: 50px;
		--main-contents-marginB: 80px;
		--about-bg-height: 260px;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	:root {
		--header-height: 80px;
		--main-padding: 4rem 3rem;
		--main-contents-marginT: 40px;
		--main-contents-marginB: 60px;
		--about-bg-height: 100px;
	}
}


/* --- リセットCSS ------------------------------------------------------------------------------------------------------------------------------------- */
@font-face {
	font-family: AdjustedYuGothic;
	font-weight: normal;
	src: local("Yu Gothic Medium");
}

@font-face {
	font-family: AdjustedYuGothic;
	font-weight: bold;
	src: local("Yu Gothic Bold");
}


html,
body,
h1,
h2,
h3,
h4,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
input,
textarea {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--font-default);
	/* 親の指定を継承させる */
	font-size: inherit;
	color: inherit;
	line-height: inherit;
}

h1,
h2,
h3,
h4 {
	font-weight: var(--font-bold);
}

html,
body {
	/* 背景色が途切れないように */
	min-height: 100%;
	min-width: 300px;
}

html {
	font-size: 62.5%;
	/* この指定により10px(=1rem)になる */
}

body {
	width: 100%;
	height: 100%;
	min-height: 100%;
	font-size: 1.6rem;
	/* 基本のフォントサイズをここで指定【16px】 */
	color: #333;
	background-color: var(--c-accent);
	line-height: 1.4;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
	/* paddingとborderの値をオブジェクトのサイズに含める */
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

article,
header,
footer,
aside,
figure,
figcaption,
nav,
section {
	display: block;
}

ol,
ul {
	list-style: none;
	list-style-type: none;
}

img {
	display: block;
}

figure {
	margin: 0;
	padding: 0;
}

a {
	text-decoration: none;
	color: var(--c-softwhite);
	transition: color .4s;
}

a:link {
	color: var(--c-softwhite);
}

a:visited {
	color: #FFECB7;
}

a:hover {
	color: var(--c-hover);
}

a:active {
	color: var(--c-hover);
}

/* フォームの初期設定リセット */
input,
button,
textarea,
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	outline: none;
	box-sizing: border-box;
}

select::-ms-expand {
	display: none;
}

button {
	cursor: pointer;
}

input,
textarea {
	width: 100%;
	background-color: var(--c-softwhite);
	padding: .4em .8em;
	border: 1px solid var(--c-brand);
	border-radius: 8px;
}


/* --- END/リセットCSS ------------------------------------------------------------------------------------------------------------------------------------- */



html {
	scroll-padding-top: calc(var(--header-height) - 5px);
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding: 0;
	font-weight: 500;
	min-height: 100vh;
}


section,
footer {
	width: 100%;
	margin: auto;
	padding: var(--main-padding);
}

img {
	max-width: 100%;
	height: auto;
	display: block
}

.read {
	padding-top: 1em;
	font-size: 1.2em;
	line-height: 1.5;
	text-align: center;
}

.read>p {
	display: inline-block;
	max-width: 800px;
	text-align: justify;
	font-weight: var(--font-bold);
}

.read>p+p {
	margin-top: .5em;
}




/* デフォルトは非表示（PC・タブレット） */
.only_sp {
	display: none !important;
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	.read {
		font-size: 1.1em;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	.read {
		font-size: 1em;
	}

	.only_sp {
		display: block !important;
	}
}

/* ============================================================================================ */
/* ローディング画面 */
/* ============================================================================================ */

#loading-overlay {
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--c-hero);
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 1;
	visibility: visible;
	transition: opacity .3s ease, visibility .3s ease;
}

#loading-overlay.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

html.skip-loading #loading-overlay {
	display: none;
}

.loading-content {
	width: 100%;
	text-align: center;
}

.loading-spinner {
	display: flex;
	justify-content: center;
	margin-bottom: 50px;
	gap: 16px;
}

.loading-spinner+p {
	text-align: center;
	font-size: 1.2em;
	color: var(--c-brand);
	font-weight: var(--font-bold);
}

.scale-up-center {
	-webkit-animation: scale-up-center 0.3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
	animation: scale-up-center 0.3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

.delay-1 {
	-webkit-animation-delay: .5s;
	animation-delay: .5s;
}

.delay-2 {
	-webkit-animation-delay: 1s;
	animation-delay: 1s;
}

.load01 {
	width: 91px;
}

.load02 {
	width: 161px;
}

.load03 {
	width: 91px;
}

/* ----------------------------------------------
 * Generated by Animista on 2026-4-8 17:2:21
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation scale-up-center
 * ----------------------------------------
 */
@-webkit-keyframes scale-up-center {
	0% {
		-webkit-transform: scale(0.5);
		transform: scale(0.5);
		opacity: 0;
	}

	100% {
		-webkit-transform: scale(1);
		transform: scale(1);
		opacity: 1;

	}
}

@keyframes scale-up-center {
	0% {
		-webkit-transform: scale(0.5);
		transform: scale(0.5);
		opacity: 0;
	}

	100% {
		-webkit-transform: scale(1);
		transform: scale(1);
	}
}

/* ============================================================================================*/
/* ヘッダー構成（PCファースト） */
/* ============================================================================================ */

header {
	position: sticky;
	top: 0;
	left: 0;
	z-index: 999;
}

.main_header {
	display: flex;
	align-items: center;
	background: url("images/headerBG.png") repeat-x;
	background-color: transparent;
	background-position: bottom left;
	background-size: contain;
	width: 100%;
	height: var(--header-height);
}

.header_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
}

.header_center {
	display: none;
}



.header_left a {
	position: absolute;
	top: -15px;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 130px;
	height: 130px;
	background-color: var(--c-brand);
	clip-path: circle(50% at 50% 50%);
}

.header_left a img {
	width: 90px;
}



/* ナビゲーション */
.header_right {
	padding-left: 40px;
	font-weight: var(--font-bold);
}

.header_right ul {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	/* 32px */
}

.header_right ul li:first-of-type img {
	display: none;
}

.header_right a {
	display: flex;
	align-items: center;
}

.header_right a img {
	width: 32px;
	margin-right: 4px;
	/* 【重要】揺れの支点を画像の下端中央に固定 */
	transform-origin: bottom center;
	transition: transform 0.3s ease;
}

/* --- hover時：画像（img）だけを揺らす --- */
.header_right ul li a:hover img {
	/* テキストは揺らさず、画像のみアニメーション発火 */
	animation: swing-icon 0.8s ease-in-out infinite alternate;
}

/* --- 振り子のような揺れの定義 --- */
@keyframes swing-icon {
	0% {
		transform: rotate(0deg);
	}

	50% {
		transform: rotate(-12deg);
	}

	100% {
		transform: rotate(12deg);
	}
}

/* --- Breakpoint 3: スマホ時 --- */
@media screen and (max-width: 599px) {
	.header_right ul li:first-of-type img {
		display: block;
	}


}


/* お問い合わせボタン（アクセントカラー） */
.nav_btn_contact {
	background-color: var(--c-accent);
	margin-left: 3em;
	padding: 1.0rem 2.4rem;
	border-radius: var(--radius-btn);
	transition: background-color .4s, transform .2s;
}

.nav_btn_contact:hover {
	background-color: var(--c-hover) !important;
	color: var(--c-brand) !important;
	transform: translateY(-2px);
}

/* ハンバーガー隠し */
.menu_input,
.menu_btn {
	display: none;
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	.main_header {
		padding: 0 40px 0 140px;
		justify-content: flex-end;
	}

	.header_inner {
		margin: 0;
		padding-left: 0;
	}

	.header_right {
		padding-left: 0;
	}

	.header_right ul {
		gap: var(--space-3);
	}

	.header_right a {
		flex-direction: column;
	}

	.nav_btn_contact {
		margin-left: 0;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	.main_header {
		padding-left: 0;
		padding-right: 0;
	}

	.header_inner {
		width: 100%;
		flex-direction: row;
		padding: 0 16px;
	}

	.header_center {
		display: block;
		color: #fff;
		font-size: 2rem;
	}

	/* ハンバーガーボタンの外観 */
	.menu_btn {
		display: flex;
		position: relative;
		z-index: 100;
		width: 4.4rem;
		height: 4.4rem;
		justify-content: center;
		align-items: center;
		cursor: pointer;
	}

	.menu_btn span,
	.menu_btn span::before,
	.menu_btn span::after {
		content: "";
		display: block;
		height: 2px;
		width: 2.5rem;
		background-color: var(--c-softwhite);
		position: absolute;
		transition: all 0.3s;
	}

	.menu_btn span::before {
		bottom: 8px;
	}

	.menu_btn span::after {
		top: 8px;
	}

	.header_left a {
		position: relative;
		top: 0;
		width: 64px;
		height: auto;
		clip-path: none;
		background: none;
	}

	.header_left a img {
		width: 100%;
	}

	/* スマホメニュー本体（全画面） */
	.header_right {
		position: fixed;
		top: 0;
		right: -100%;
		width: 100%;
		height: 100vh;
		background-color: var(--c-brand);
		z-index: 90;
		transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.header_right ul {
		flex-direction: column;
		text-align: center;
		gap: var(--space-2);
	}

	.header_right ul li a {
		gap: var(--space-1);
		font-size: 1.2em;
	}

	.header_right ul li a img {
		width: 3.2rem;
		margin-inline: auto;
	}

	.nav_btn_contact {
		width: 240px;
		margin-top: 40px;
	}

	/* メニュー開閉アクション */
	.menu_input:checked~.header_right {
		right: 0;
	}

	.menu_input:checked~.menu_btn span {
		background-color: transparent;
	}

	.menu_input:checked~.menu_btn span::before {
		bottom: 0;
		transform: rotate(45deg);
	}

	.menu_input:checked~.menu_btn span::after {
		top: 0;
		transform: rotate(-45deg);
	}
}

/* ============================================================================================ */
/* フッター */
/* ============================================================================================ */

footer {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: stretch;
	background-color: var(--c-brand);
	background-image: url(images/BG_bunguAwa.png);
	font-weight: var(--font-bold);
}


.footerLeft {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 32px;
}

.footerLeft img {
	width: 200px;
	padding-bottom: 16px;
}

.footerLeft p {
	text-align: center;
	color: var(--c-softwhite);
	font-size: 2em;
}


.footerRight {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding-bottom: 32px;
}

.footerRight a {
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--c-softwhite);
	font-size: 1.1em;
}

.footerRight a:hover {
	color: var(--c-brand-accent);
}

p.footerRight_img {
	text-align: center;
	width: 50px;
	height: 50px;
	margin-right: 2em;
}

.footerRight_text {
	text-align: center;
	font-size: 1.2em;
}

.footerRight img {
	width: auto;
	height: 100%;
	margin: auto;
}

.footerRight>* {
	color: var(--c-brand);
}

.footerRight>*+* {
	padding-top: 1em;
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {


	.footerRight a {
		flex-direction: column;
	}

	p.footerRight_img {
		margin-right: 0;
		margin-bottom: 1em;
	}

	.footerLeft {
		padding: 0 0 10px;
	}

	.footerLeft p {
		font-size: 1.3em;
		padding-bottom: 1em;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	footer {
		flex-direction: column;
	}

	.footerRight_text {
		font-size: 1em;
	}
}

/* ============================================================================================ */
/* セクション 共通設定 */
/* ============================================================================================ */


main>section:not(.noneBG) {
	position: relative;
	z-index: 1;
	background-image: url(images/section_top_col1.svg);
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
}

.section_container {
	width: 80%;
	max-width: var(--main-width);
	/*height: calc(100vh - var(--header-height) + 15px);*/
	margin: auto;
	padding-top: 250px;
}

.noneBG .section_container {
	padding-top: 0;
}

.section_container h2 {
	margin: auto;
	padding-bottom: 20px;
	text-align: center;
	font-size: 3em;
	color: var(--c-softwhite);
}

.kanban .section_container h2 {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	padding-top: 165px;
	width: 800px;
	height: auto;
	background-image: url(images/section_title.svg);
	background-repeat: no-repeat;
	background-position: center top;
}

main>section.season-summer {
	background-image: url(images/BG_season_summer.webp);
	background-image: url(images/BG_season_summer.jpg);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}

main>section.season-summer::after {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(images/BGtop_season_summer.webp) no-repeat 50% 0;
	background: url(images/BGtop_season_summer.png) no-repeat 50% 0;
	background-size: cover;
}

main>section.season-summer .section_container h2 {
	background-image: url(images/section_title01.svg);
}

main>section.season-autumn {
	background-image: url(images/BG_season_autumn.webp);
	background-image: url(images/BG_season_autumn.jpg);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}

main>section.season-autumn::after {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(images/BGtop_season_autumn.webp) no-repeat 50% 0;
	background: url(images/BGtop_season_autumn.png) no-repeat 50% 0;
	background-size: cover;
}

main>section.season-autumn .section_container h2 {
	background-image: url(images/section_title02.svg);
}

main>section.season-winter {
	background-image: url(images/BG_season_winter.webp);
	background-image: url(images/BG_season_winter.jpg);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}

main>section.season-winter::after {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(images/BGtop_season_winter.webp) no-repeat 50% 0;
	background: url(images/BGtop_season_winter.png) no-repeat 50% 0;
	background-size: cover;
}

main>section.season-winter .section_container h2 {
	background-image: url(images/section_title04.svg);
}

main>section.season-spring {
	background-image: url(images/BG_season_spring.webp);
	background-image: url(images/BG_season_spring.jpg);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}

main>section.season-spring::after {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(images/BGtop_season_spring.webp) no-repeat 50% 0;
	background: url(images/BGtop_season_spring.png) no-repeat 50% 0;
	background-size: cover;
}

main>section.season-spring .section_container h2 {
	background-image: url(images/section_title03.svg);
}

main>section.season-summer2 {
	background-image: url(images/BG_season_summer2.avif);
	background-image: url(images/BG_season_summer2.webp);
	background-image: url(images/BG_season_summer2.jpg);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
}

main>section.season-summer2::after {
	content: "";
	display: block;
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(images/BGtop_season_summer2.webp) no-repeat 50% 0;
	background: url(images/BGtop_season_summer2.png) no-repeat 50% 0;
	background-size: cover;
}

.section_container h3 {
	color: var(--c-brand);
	text-align: center;
	font-size: 2em;
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	.noneBG .section_container h2 {
		text-align: left;
	}

	.kanban .section_container {
		padding-top: 180px;
		width: 100%;
		height: auto;
	}

	.kanban .section_container h2 {
		width: 600px;
		height: 200px;
		padding-top: 120px;
		font-size: 2.4em;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	.kanban .section_container {
		padding-top: 80px;
	}

	.kanban .section_container h2 {
		width: 330px;
		height: 110px;
		padding-top: 65px;
		font-size: 1.4em;
	}

	.kanban .section_container h3 {
		text-align: left;
		font-size: 1.5em;
	}
}

/* ============================================================================================ */
/* ファーストビュー */
/* ============================================================================================ */

section#hero {
	position: relative;
	min-height: calc(100vh - var(--header-height) + 10px);
	text-align: center;
	padding: 70px 60px 0;
	margin-top: -10px;
	background-color: var(--c-hero);
	scroll-margin-top: calc(var(--header-height) * -1);
	;
}

@media screen and (orientation: portrait) {
	section#hero {
		/* 縦タブレットでは100vh固定を避け、コンテンツ量に合わせる */
		min-height: auto;
		padding-top: 48px;
		padding-bottom: 0;
	}
}

#hero h1 {
	/* clamp(最小値, 推奨値, 最大値) */
	font-size: clamp(2em, 4vw, 4em);
	color: var(--c-brand);
}

.hero_logo img {
	margin: 0 auto 24px;
	width: clamp(200px, 40vw, 300px);
	-webkit-animation: jello-horizontal 0.9s both;
	animation: jello-horizontal 0.9s both;
}

.hero_wrapper {
	max-width: var(--main-width);
	position: relative;
	z-index: 1;
	max-width: 900px;
	margin-inline: auto;
}

.hero_container {
	display: flex;
	align-items: center;
	gap: 40px;
	margin-top: 2em;
}

.hero_left,
.hero_right {
	width: 30%;
}

.hero_left img,
.hero_right img {
	width: 180px;
}

.hero_read {
	margin: auto;
	text-align: justify;
	color: var(--c-brand);
	font-size: clamp(.9em, 1em, 1.5vw);
	line-height: 1.4;
}

.hero_read p {
	margin-top: 1em;
}

.cta_hero,
.cta_mail {
	position: relative;
	display: inline-block;
	margin-top: 1.4em;
	padding: 1.2em 0 1.2em 4rem;
	width: 300px;
	background-color: var(--c-accent);
	color: var(--c-softwhite);
	font-size: 1.2em;
	border-radius: 100vh;
	transition: background-color .4s, transform .2s;
}

.cta_mail {
	font-size: 1.4em;
	margin: 0 0 40px;
	background-color: var(--c-brand);
}

.cta_mail:hover {
	background-color: var(--c-accent) !important;
	color: var(--c-softwhite) !important;
}

.cta_hero::before,
.cta_mail::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 1rem;
	width: 3rem;
	height: 100%;
	margin-left: 5rem;
	transition: opacity .4s, transform .4s;
	background: url(images/icon_musimegane.png) no-repeat center center;
	background-size: contain;
	transform-origin: bottom center;
}

.cta_mail::before {
	background-image: url(images/icon_mail.png);
}

.cta_hero:hover::before,
.cta_mail:hover::before {
	animation: swing-musimegane 0.6s ease-in-out;
}

@keyframes swing-musimegane {
	0% {
		transform: rotate(0deg);
	}

	50% {
		transform: rotate(6deg);
	}

	100% {
		transform: rotate(0deg);
	}
}

/* 親コンテナ：画面全体を覆う */
.illustrations_container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 80%;
	z-index: 0;
	pointer-events: none;
	/* 下にあるボタン等を押せるようにする */
}

/* 共通設定：アニメーションの土台 */
.illustration_bg {
	position: absolute;
	top: 0;
	width: 40%;
	max-width: 650px;
	height: 100%;
	background-repeat: no-repeat;
	background-size: contain;
	/* 変形（拡大）の起点を「下部中央」に固定 */
	transform-origin: center bottom;
}

/* 左側：画像パスと配置 */
.left_side {
	left: 0;
	background-image: url(images/heroBG_left.svg);
	background-position: left top;
}

/* 右側：画像パスと配置 */
.right_side {
	right: 0;
	background-image: url(images/heroBG_right.svg);
	background-position: right top;
}


/* --- イベント風景 ------------------------------------------------------------------------ */
/* --- 共通設定 --- */
.floating_photos_wrap {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
	width: 100%;
	height: 60%;
}

.f_photo {
	position: absolute;
	opacity: 0;
	/* 初期状態は透明 */
	will-change: transform, opacity;
}

.f_photo img {
	width: auto;
	height: auto;
	box-shadow: var(--shadow-1);
}

/* --- 定位置の設定（PC版） --- */
/* 左上 */
.p_1 {
	top: 5%;
	left: 5%;
	animation: f-sway 12s ease-in-out infinite;
}

.p_1 img {
	max-width: 38rem;
}

/* 中央左下 */
.p_2 {
	bottom: 20%;
	left: 0;
	animation: f-sway 15s ease-in-out infinite 2s;
}

.p_2 img {
	max-width: 30rem;
	transform: rotate(-15deg);
}

/* 右上 */
.p_3 {
	top: 10%;
	right: 5%;
	animation: f-sway 14s ease-in-out infinite 4s;
}

.p_3 img {
	max-width: 42rem;
}

/* 中央右 */
.p_4 {
	top: 45%;
	right: -2%;
	animation: f-sway 13s ease-in-out infinite 7s;
}

.p_4 img {
	max-width: 35rem;
}

/* 左下 */
.p_5 {
	bottom: 40%;
	left: 5%;
	animation: f-sway 16s ease-in-out infinite 9s;
}

.p_5 img {
	max-width: 28rem;
}

/* --- 「現れて・揺れて・消える」アニメーション定義 --- */
@keyframes f-sway {
	0% {
		opacity: 0;
		transform: translateY(2rem) scale(0.9) rotate(-3deg);
	}

	20%,
	80% {
		opacity: 1;
		/* 中盤はしっかり表示 */
	}

	50% {
		/* 中間地点でゆらゆら揺れる */
		transform: translateY(-2rem) scale(1.2) rotate(3deg);
	}

	100% {
		opacity: 0;
		transform: translateY(-6rem) scale(0.9) rotate(-3deg);
	}
}


/* ------------------------------------------------------------------------- */
/* Breakpoint 1-2: 写真が大きいと気持ち悪いサイズ用 */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1599px) {

	/* --- トップイベント写真 ---------------------------------------- */
	.f_photo img {
		max-width: 20vw;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	section#hero {
		height: auto;
		max-height: none;
	}

	.hero_container {
		gap: 32px;
	}

	/* --- トップイベント写真 ---------------------------------------- */
	.f_photo img {
		max-width: 25vw;
	}
}



/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	section#hero {
		min-height: auto;
		padding: 48px 24px 40px;
	}

	.hero_left,
	.hero_right {
		display: none;
	}

	.hero_read {
		width: 100%;
	}

	.illustration_bg {
		width: 70%;
		height: 55%;
	}

	/* --- トップイベント写真 ---------------------------------------- */
	.floating_photos_wrap {
		height: 55%;
		overflow: hidden;
		/* スマホでは予期せぬスクロールを防ぐため隠す */
	}

	.f_photo img {
		max-width: 18rem;
	}

	/* スマホ用の定位置（重なりを避ける配置） */
	.p_1 {
		top: 5%;
		left: -5%;
	}

	.p_2 {
		bottom: 15%;
		left: -15%;
	}

	.p_3 {
		top: 5%;
		right: -5%;
	}

	.p_4 {
		top: 50%;
		right: -5%;
	}

	.p_5 {
		display: none;
	}

	/* スマホでは4枚程度に絞るとスッキリします */

	/* スマホ用アニメーション（揺れ幅を小さく） */
	@keyframes f-sway {
		0% {
			opacity: 0;
			transform: translateY(1rem) scale(0.85);
		}

		25%,
		75% {
			opacity: 0.9;
		}

		50% {
			transform: translateY(-1rem) scale(0.95) rotate(2deg);
		}

		100% {
			opacity: 0;
			transform: translateY(-2rem) scale(0.85);
		}
	}
}

/* ============================================================================================ */
/* アバウト */
/* ============================================================================================ */
section#about {
	position: relative;
	padding-top: 0;
	padding-bottom: 0;
	background-color: var(--c-accent);
	background-image: url(images/aboutBG_top.svg);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100% var(--about-bg-height);
	z-index: -1;
}



.about_story {
	display: flex;
	gap: 36px;
	margin: 40px 0;
}

#about .section_container {
	margin: 0 auto 0;
}

.about_body {
	color: var(--c-softwhite);
}

.about_titleImg {
	display: flex;
	align-items: flex-end;
	width: 300px;
	height: calc(var(--about-bg-height) + 140px);
	text-align: center;
	margin-bottom: 1em;
	margin-inline: auto;
}

.about_bottom {
	position: relative;
	width: 100%;
	height: var(--about-bg-height);
	margin-top: 50px;
	--about-bottom-height: 70px;
	background-image: url(images/aboutBG_bottom.svg);
	background-color: var(--c-accent);
	background-repeat: no-repeat;
	background-position: center bottom;
}

.about_bottom_link_container {
	position: absolute;
	z-index: 2;
	bottom: 0;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	width: 100%;
	height: var(--about-bg-height);
}

.about_bottom_link {
	display: flex;
	flex-direction: row-reverse;
	justify-content: center;
	align-items: center;
}


.about_btnImg {
	position: relative;
	width: 230px;
	height: 260px;
}

.about_btnImg img {
	position: absolute;
	top: 0;
	left: 0;
	transition: opacity .2s;
}

.about_btnText:hover+.about_btnImg img:first-of-type {
	opacity: 0;
}

.about_btnText+.about_btnImg img:nth-of-type(2) {
	opacity: 0;
}

.about_btnText:hover+.about_btnImg img:nth-of-type(2) {
	opacity: 1;
}

.about_btnText {
	padding: .8rem 3.2rem;
	font-size: 1.5em;
	color: var(--c-text);
	font-weight: var(--font-bold);
	background-color: var(--c-brand-accent);
	border-radius: 100vh;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transition: color .4s, background-color .4s;
}

.about_bottom_link:hover .about_btnText {
	background-color: var(--c-accent);
	color: var(--c-softwhite);
}

.about_bottom_innerBG {
	position: absolute;
	z-index: 1;
	left: 0;
	bottom: 0;
	width: 100%;
	height: var(--about-bottom-height);
	background-color: #614e2f;
	border-top: 8px solid #241916;
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	#about .section_container {
		width: 100%;
	}

	#about h2 {
		font-size: 2.4em;
	}

	#about h3 {
		font-size: 1.6em;
		text-align: justify;
	}

	.about_story {
		gap: 16px;
	}

	.about_titleImg {
		margin-inline: inherit;
	}

	.about_titleImg {
		width: 240px;
		height: calc(var(--about-bg-height) + 150px);
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	#about::before {
		background-image: url(images/aboutBG_top_mobile.svg);
	}

	.about_story {
		flex-direction: column;
	}

	.about_story>* {
		width: 100%;
	}

	.about_story .about_img {
		order: -1;
	}

	#about h2 {
		font-size: 1.6em;
	}

	#about h3 {
		font-size: 1.2em;
	}

	#about h3>br {
		display: none;
	}

	.about_bottom {
		--about-bottom-height: 50px;
		height: 200px;
		background-image: url(images/aboutBG_bottom_mobile.svg);
		background-size: 100% 180px;
	}

	.about_titleImg {
		width: 240px;
		height: calc(var(--about-bg-height) + 180px);
	}

	.about_bottom_link {
		margin: 0 20px;
	}

	.about_btnImg {
		width: 150px;
		height: auto;
		aspect-ratio: 23 / 26;
	}

	.about_btnImg img {
		width: 100%;
		height: auto;
	}

	.about_btnText {
		font-size: 1.2em;
		line-height: 1.2;
		padding: .6rem 2.4rem;
	}

	.about_bottom_innerBG {
		border-top-width: 4px;
	}
}

/* ============================================================================================ */
/* 開催イベント */
/* ============================================================================================ */

#event .section_container {
	height: auto;
	max-height: none;
	margin-bottom: 120px;
}

#event {
	overflow-x: clip;
}

.card_container {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	margin-top: var(--main-contents-marginT);
	margin-bottom: var(--main-contents-marginB);
	height: auto;
	overflow: visible;
	--event-card-center-width: 40rem;
	--event-card-side-width: 30rem;
	--event-card-gap: 5rem;
	--event-card-shift: 35rem;
	/* ↑子要素のカード用の変数 */
}

#event .section_container .read {
	padding-bottom: var(--main-contents-marginT);
}

#eventSplide {
	position: relative;
	width: 100vw;
	width: 100dvw;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	margin-inline: calc(50% - 50dvw);
	overflow: hidden;
}

@supports (width: 100vi) {
	#eventSplide {
		/* 100vwにスクロールバー幅が含まれる分の調整 */
		width: 100vi;
		margin-inline: calc(50% - 50vi);
	}
}

#eventSplide .splide__track {
	overflow: visible;
}

#eventSplide .splide__list {
	align-items: stretch;
	padding: 0 !important;
	margin: 0 !important;
}

#eventSplide .splide__slide {
	display: flex;
	justify-content: center;
}

/* ▼ カード全体の見た目調整（必要に応じて） */
.event_card.splide__slide {
	list-style: none;
	width: 100%;
	margin-inline: auto;
	margin-bottom: 1em;
	position: relative;
	height: 50rem;
}

.event_card_inner {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	background: #fff;
	border-radius: var(--r-eventcard);
	padding: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	overflow: hidden;
	transform-origin: center center;
	transform: translateX(0) scale(0.92);
	transition: transform .3s ease, box-shadow .3s ease;
}

#eventSplide .splide__slide.is-active .event_card_inner {
	transform: translateX(0) scale(1);
}

/* 矢印クリック時の拡大スタート */
#eventSplide .event_card_inner.scaling-up {
	transform: translateX(0) scale(1);
}

/* 移動開始時に旧センターを即座に縮小 */
#eventSplide .splide__slide .event_card_inner.scaling-down {
	transform: translateX(0) scale(0.92);
}

#eventSplide .splide__arrows {
	pointer-events: none;
}

#eventSplide .splide__arrow {
	pointer-events: auto;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 7rem;
	height: 7rem;
	border-radius: 999px;
	border: 2px solid var(--c-brand-accent);
	background-color: #ffffffcc;
	color: var(--c-brand);
	opacity: 1;
	transition: background-color .3s ease, color .3s ease, transform .2s ease;
	z-index: 20;
}

#eventSplide .splide__arrow--prev {
	left: max(1rem, calc(50% - 26rem));
}

#eventSplide .splide__arrow--next {
	right: max(1rem, calc(50% - 26rem));
}

#eventSplide .splide__arrow svg {
	fill: currentColor;
	width: 1.8rem;
	height: 1.8rem;
}

#eventSplide .splide__arrow--prev svg {
	transform: rotate(180deg);
}

#eventSplide .splide__arrow:hover {
	background-color: var(--c-brand-accent);
	color: #fff;
	transform: translateY(-50%) scale(1.06);
}

#eventSplide .splide__arrow:disabled {
	opacity: .45;
	cursor: default;
}


.event_arrow {
	position: absolute;
	list-style: none;
	z-index: 100;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transform-origin: 50% 50%;
	display: flex;
	justify-content: center;
	gap: 42rem;
}

.event_arrow>button {
	width: 7rem;
	height: 7rem;
	padding: 1.6rem;
	background-color: #ffffffcc;
	border: 2px solid var(--c-brand-accent);
	border-radius: 100vh;
	transition: background-color .4s, transform .2s;
}

.event_arrow>button:hover {
	background-color: var(--c-brand-accent);
}

.arrowLeft,
.arrowRight {
	width: 100%;
}

.card_date {
	font-size: 1.2em;
}

h3.card_title {
	padding: .5em 0;
	text-align: left;
	line-height: 1.2;
	font-size: 1.6em;
}

h3.card_title small {
	font-size: .7em;
}

.card_button {
	display: block;
	position: relative;
	z-index: 1;
	text-align: center;
	width: 100%;
	margin: 0;
	padding: .5em;
	background-color: var(--c-brand);
	border-radius: 100vh;
	font-size: 1.4em;
	font-weight: var(--font-bold);
	transition: background-color .5s, transform .2s, color .3s;
}

.card_button:hover {
	transform: translateY(-2px);
	color: #fff;
	background-color: var(--c-accent);
}


.card_tag {
	display: inline-block;
	font-size: 1em;
	letter-spacing: .05em;
	line-height: 1;
	color: #fff;
	background: var(--c-open);
	padding: 0.6rem 1.4rem;
	border-radius: 2rem;
	margin-bottom: var(--space-1);
}

.event_card.eventEnded .card_imageWrapper>img {
	opacity: .5;
}

.card_description {
	flex: 1;
	display: flex;
	align-items: center;
	overflow: hidden;
	margin-top: 0;
}

.card_description p {
	font-size: 1em;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	/* 表示したい行数 */
}

/* 開催予告 */
.card_tag.tag_upcoming {
	background-color: var(--c-ongoing);
}

/* 参加受付中 */
.card_tag.tag_open {
	background-color: var(--c-open);
}

/* 受付締切 */
.card_tag.tag_limit {
	background-color: #df4e4e;
}

/* 開催終了 */
.eventEnded .card_button {
	background-color: #b2c9ec;
	color: var(--c-brand);
}

.eventEnded .card_button:hover {
	color: #fff;
	background-color: var(--c-brand);
}

.card_tag.tag_ended {
	background-color: #d5d5d5;
	color: #333;
}

.eventEnded {
	position: relative;
}

.event_card.eventEnded>div::after {
	/* 指定日を過ぎたら自動でクラスを付加する */
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-color: #00000020;
}

.eventEnded h3 {
	color: #666;
}


.card_button.button_report {
	background-color: var(--c-brand-accent);
	color: var(--c-brand);
}

.card_button.button_report:hover {
	background-color: var(--c-warn);
	color: #fff;
	;
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {}


/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {

	h3.card_title {
		padding: .25em 0;
	}

	.card_container {
		--event-card-center-width: 70vw;
		--event-card-side-width: 46vw;
		--event-card-gap: 1.2rem;
		--event-card-shift: 28vw;
		height: auto;
	}

	.event_card {
		height: 45rem;
	}

	.event_arrow {
		gap: calc(var(--event-card-center-width) - 5rem);
	}

	.event_arrow>button {
		width: 5.6rem;
		height: 5.6rem;
		padding: 1.2rem;
	}

	#eventSplide .splide__arrow {
		width: 5.6rem;
		height: 5.6rem;
	}

	#eventSplide .splide__arrow--prev {
		left: .4rem;
	}

	#eventSplide .splide__arrow--next {
		right: .4rem;
	}


	.card_description {
		align-items: center;
	}

	.card_description p {
		font-size: .9em;
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}

}

/* ============================================================================================ */
/* イベントレポート一覧トップ埋め込み用 */
/* ============================================================================================ */

#newsList {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin: var(--main-contents-marginT) auto var(--main-contents-marginB);
}

#newsList>li {
	display: flex;
	flex-direction: column;
}

.cardLink {
	flex: 1;
	display: flex;
	flex-direction: column;
	background-color: #fbfdff;
	transition: background-color .4s, box-shadow .2s;
}

.cardLink:link {
	color: inherit;
}

.cardLink:hover {
	background-color: #fffcd1;
	box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3);
}

.cardLink:visited {
	color: #666;
}

#newsList>li:nth-of-type(even) .cardLink:hover {
	background-image: url(images/cardBG_01.png);
}

#newsList>li:nth-of-type(odd) .cardLink:hover {
	background-image: url(images/cardBG_02.png);
}


.listMeta {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	padding-bottom: .5em;
	border-bottom: 5px dotted #ed7968;
	min-height: 100px;
}

.catName {
	display: none;
}

.up_ymd {
	padding-top: .5em;
	font-size: 1.2em;
}

.title {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: justify;
	padding: .4em 1em 0;
	font-size: 1.2em;
	font-weight: var(--font-bold);
	line-height: 1.2;
}

.comment {
	padding-top: .5em;
	line-height: 1.4;
	font-size: .9em;
	/* 1. 表示する行数を指定（例：3行で固定して、4行目以降を省略） */
	display: -webkit-box;
	line-clamp: 3;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;

	/* 2. はみ出した部分を非表示にする */
	overflow: hidden;

}

.listContents {
	padding: 1.6em;
}

.thumbNailWrap {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 8px;
	overflow: hidden;
	transition: transform 0.4s cubic-bezier(.34, 1.56, .64, 1);
	background-image: url(images/noImage.png);
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: contain;
}

.cardLink:hover .thumbNailWrap {
	transform: scale(1.03);
}

.thumbNailWrap>img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.detailUpfile a {
	position: relative;
	display: block;
	font-size: 1.4em;
	color: var(--c-brand);
	background-color: var(--c-hero);
	padding: .4em 1em;
	transition: background-color .3s;
	;
}

.detailUpfile a::before {
	content: "📄";
}

.detailUpfile a:hover {
	background-color: var(--c-brand-accent);
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	#newsList {
		grid-template-columns: repeat(2, 1fr);
	}
}


/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	#newsList {
		grid-template-columns: 1fr;
	}


	.listMeta {
		padding: 12px;
		min-height: inherit;
	}


	.comment {
		display: none;
	}

	.up_ymd {
		padding-top: 0;
	}

	.listContents {
		padding: 1.6em;
	}

	.title {
		text-align: center;
	}

}




/* ============================================================================================ */
/* ムービーレポート */
/* ============================================================================================ */

#movie>.section_container {
	height: auto;
	max-height: none;
}


/* --- ムービーグリッド（2列レイアウト） --- */
.movie_grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-6);
	margin: var(--main-contents-marginT) auto var(--main-contents-marginB);
}

/* --- カード単体のスタイル --- */
.movie_card {
	display: block;
	background: #fff;
	border-radius: var(--radius-card);
	overflow: hidden;
	text-decoration: none;
	text-align: left;
	transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

/* ホバー：ひょこっと浮いて少し傾く（FVと一貫した動き） */
.movie_card:hover {
	transform: translateY(-12px) rotate(1.5deg);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

/* サムネイルエリア */
.card_thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eee;
}

.card_thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.movie_card:hover .card_thumb img {
	transform: scale(1.1);
}

/* 再生アイコン（デザイナーらしいシンプルかつ分かりやすいあしらい） */
.play_icon {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 6.4rem;
	height: 6.4rem;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.play_icon::after {
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 1.2rem 0 1.2rem 2rem;
	border-color: transparent transparent transparent var(--c-brand);
	margin-left: 0.5rem;
}

.movie_card:hover .play_icon {
	background: var(--c-brand);
	transform: scale(1.15);
}

.movie_card:hover .play_icon::after {
	border-color: transparent transparent transparent #fff;
}

/* テキストエリア */
.card_body {
	padding: var(--space-2);
}


.movie_card_title {
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1.5;
	color: var(--c-brand);
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	.movie_report {
		padding: var(--space-8) 0;
	}


	.movie_grid {
		grid-template-columns: 1fr;
		/* スマホは1列 */
		gap: var(--space-4);
	}

	.card_body {
		padding: var(--space-1);
	}

	.card_title {
		font-size: 1em;
	}

	.movie_card:hover {
		transform: translateY(-5px);
		/* スマホでは傾きをなくし安定させる */
	}

	.play_icon {
		width: 4.8rem;
		height: 4.8rem;
	}
}



/* ============================================================================================ */
/* 主催について */
/* ============================================================================================ */

#organizer .section_container {
	height: auto;
	max-height: none;
}

.organizer_container {
	position: relative;
	display: flex;
	justify-content: space-between;
	margin: var(--main-contents-marginT) auto var(--main-contents-marginB);
}

.organizer_box {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 50%;
}


.organizer_box h4 {
	text-align: center;
	font-size: 1.8em;
	color: var(--c-brand);
	margin-bottom: .8em;
	padding: .5em 0;
	background: url(images/organizerCover.svg) no-repeat 50% 50%;
}

.organizer_text {
	flex: 1;
}

.organizer_box a {
	position: relative;
	display: inline-block;
	text-align: center;
	width: 90%;
	max-width: 30rem;
	margin-top: 2em;
	margin-inline: auto;
	padding: .5em 1em;
	background-color: var(--c-softwhite);
	color: var(--c-brand);
	border: 2px solid var(--c-brand-accent);
	border-radius: 100vh;
	font-weight: var(--font-bold);
	font-size: 1.2em;
	transition: background-color .3s, color .3s;
}

.organizer_box a::before {
	content: "→";
	position: relative;
	color: var(--c-brand-accent);
	left: -0.5em;
	transition: left .3s;
}

.organizer_box a:hover {
	background-color: var(--c-brand-accent);
}

.organizer_box a:hover::before {
	left: -.3em;
	color: #fff;
}

.organizer_text p {
	text-align: justify;
	font-size: 1.4em;
}

.organizer_box picture {
	display: block;
	position: relative;
	padding: 4em 0 0;
	width: 110%;
	margin: 0 -5%;
}

.organizer_box_divider {
	width: 80px;
	margin: 0 40px;
}


/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	.organizer_container {
		flex-direction: column;
	}

	.organizer_box {
		width: 100%;
	}

	.organizer_box picture {
		width: 100%;
		margin: 0 auto;
	}

	.organizer_box picture img {
		margin: auto;
	}

	.organizer_box.right {
		margin-top: 60px;
	}

	.organizer_box_divider {
		display: none;
	}

	.organizer_text p {
		font-size: 1.1em;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	.organizer_box h4 {
		font-size: 1.4em;
	}
}


/* ============================================================================================ */
/* お問い合わせ */
/* ============================================================================================ */

#form {
	background-color: transparent;
}

#form button {
	font-size: 1.2em;
}

#form button.secondary {
	color: var(--c-brand);
	border-bottom: 1px solid var(--c-brand);
	transition: opacity .3s;
}

#form button.secondary:hover {
	opacity: .7;
}

#form button#sumitBtn {
	width: 10em;
	padding: .5em 0;
	border-radius: 8px;
	border: 1px solid #fff;
	background-color: var(--c-brand-accent);
	font-weight: var(--font-bold);
	color: var(--c-brand);
	transition: background-color .5s, color .2s;
}

#form button#sumitBtn::before {
	content: "✉️";
	display: inline-block;
	margin-right: 0.5em;
	transform-origin: center;
	transition: transform .08s ease;
}

#form button#sumitBtn:hover::before {
	animation: submit-icon-pop 0.6s ease-in-out infinite alternate;
}

#form button#sumitBtn:hover {
	background-color: var(--c-warn);
	color: #fff;
}

#form button#sumitBtn:active::before {
	animation: none;
	transform: translateY(2px);
}


@keyframes submit-icon-pop {
	0% {
		transform: translateY(0) rotate(0deg) scale(1);
	}

	100% {
		transform: translateY(-2px) rotate(-8deg) scale(1.12);
	}
}

.contact_form_wrap {
	margin: var(--main-contents-marginT) auto var(--main-contents-marginB);
	text-align: center;
}

#contact_form {
	width: 100%;
	max-width: 600px;
	border: none;
}

.cf_group {
	display: flex;
	align-items: center;
}

.cf_group+.cf_group {
	padding-top: 1em;
}

.cf_title {
	width: 8.5em;
	font-weight: var(--font-bold);
}

.cf_inputWrap {
	flex: 1;
}

.cf_actions {
	position: relative;
	margin: 2em 0 1em;
	text-align: center;
}

/* クリアボタンは左寄せに戻す */
.cf_actions .secondary {
	position: absolute;
	left: 8em;
	top: 0;
	bottom: 0;
	margin-inline: auto;
	font-size: .9em;
}


/* --- ハニーポット（honeypot）対策：人間には完全に見えないようにする --- */
.cf_hp {
	position: absolute !important;
	left: -9999px !important;
	/* 画面外へ */
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	/* 念のため */
	pointer-events: none !important;
	/* クリック不可 */
	visibility: hidden !important;
	/* 視覚的にも隠す */
}

/* 画面リーダーにも読ませない */
.cf_hp label,
.cf_hp input {
	position: absolute !important;
	left: -9999px !important;
}

/* 印刷時も表示させない */
@media print {
	.cf_hp {
		display: none !important;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 2: Tablet (1024px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
	.cf_actions .secondary {
		left: 2em;
	}
}

/* ------------------------------------------------------------------------- */
/* Breakpoint 3: SmartPhone (599px以下) */
/* ------------------------------------------------------------------------- */
@media screen and (max-width: 599px) {
	.cf_group {
		align-items: flex-start;
		flex-direction: column;
	}

	.cf_inputWrap {
		width: 100%;
	}

	.cf_title {
		width: auto;
	}

	#form button#sumitBtn {
		width: 60%;
	}

	#form button.secondary {
		position: relative;
		left: inherit;
		font-size: 1em;
		border-bottom: none;
	}

	.cf_actions {
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		gap: 40px;
	}
}

/* ============================================================================================ */
/* スクロールフェードイン */
/* ============================================================================================ */

.fade-up {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-up.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* stagger用ディレイ（#newsList>liなど） */
.fade-up[style*='--fd'] {
	transition-delay: var(--fd);
}

/* class指定要素の文字を左から順にフェードアップ */
.char-fade-up__char {
	display: inline-block;
	font: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	opacity: 0;
	transform: translate(-0.2em, 0.8em);
}

.char-fade-up.is-char-visible .char-fade-up__char {
	animation: char-fade-up-overshoot 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
	animation-delay: calc(var(--char-index) * 0.06s);
}

@keyframes char-fade-up-overshoot {
	0% {
		opacity: 0;
		transform: translate(-0.2em, 0.8em);
	}

	70% {
		opacity: 1;
		transform: translate(0, -0.18em);
	}

	100% {
		opacity: 1;
		transform: translate(0, 0);
	}
}

/* ============================================================================================ */
/* アニメーション設定 */
/* ============================================================================================ */



/* ----------------------------------------------
 * Generated by Animista on 2026-3-27 16:19:29
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation jello-horizontal
 * ----------------------------------------
 */
@-webkit-keyframes jello-horizontal {
	0% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}

	30% {
		-webkit-transform: scale3d(1.25, 0.75, 1);
		transform: scale3d(1.25, 0.75, 1);
	}

	40% {
		-webkit-transform: scale3d(0.75, 1.25, 1);
		transform: scale3d(0.75, 1.25, 1);
	}

	50% {
		-webkit-transform: scale3d(1.15, 0.85, 1);
		transform: scale3d(1.15, 0.85, 1);
	}

	65% {
		-webkit-transform: scale3d(0.95, 1.05, 1);
		transform: scale3d(0.95, 1.05, 1);
	}

	75% {
		-webkit-transform: scale3d(1.05, 0.95, 1);
		transform: scale3d(1.05, 0.95, 1);
	}

	100% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}

@keyframes jello-horizontal {
	0% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}

	30% {
		-webkit-transform: scale3d(1.25, 0.75, 1);
		transform: scale3d(1.25, 0.75, 1);
	}

	40% {
		-webkit-transform: scale3d(0.75, 1.25, 1);
		transform: scale3d(0.75, 1.25, 1);
	}

	50% {
		-webkit-transform: scale3d(1.15, 0.85, 1);
		transform: scale3d(1.15, 0.85, 1);
	}

	65% {
		-webkit-transform: scale3d(0.95, 1.05, 1);
		transform: scale3d(0.95, 1.05, 1);
	}

	75% {
		-webkit-transform: scale3d(1.05, 0.95, 1);
		transform: scale3d(1.05, 0.95, 1);
	}

	100% {
		-webkit-transform: scale3d(1, 1, 1);
		transform: scale3d(1, 1, 1);
	}
}