@charset "UTF-8";
.fc table { background-color: #f6f2e3; }
/* --- 1. カレンダーヘッダーと基本グリッド --- */
#eventcalendar .fc-head .fc-day-header {
	background-color: #1a8b41 !important;
    border-color: #ccc !important;
	color: #ffffff !important;
	padding: 10px 0;
}
#eventcalendar .fc-toolbar { margin-bottom: 10px !important; }
#eventcalendar .fc-toolbar h2 {
	font-family: "Outfit", sans-serif;
	font-size: 4rem;
	line-height: 1;
	font-weight: 500;
	color: #36393E;
	margin: 0 20px;
	letter-spacing: 0.05em;
}
#eventcalendar .fc-day { background-color: #ffffff !important; }
#eventcalendar .fc-today { background-color: #fffde7 !important; }
@media screen and (max-width: 767px) {
	#eventcalendar .fc-toolbar h2 { font-size: 3rem; }
}

/* --- ボタンのベース（緑の正円） --- */
#eventcalendar .fc-button,
#eventcalendar .fc-button.fc-state-default,
#eventcalendar .fc-button.fc-state-active,
#eventcalendar .fc-button.fc-state-disabled {
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	background-color: #43a857 !important;
	background-image: none !important;
	border: none !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 0 !important;
	text-shadow: none !important;
	box-shadow: none !important;
	outline: none !important;
}
#eventcalendar .fc-button:hover { opacity: 0.8 !important; }
#eventcalendar .fc-button:active,
#eventcalendar .fc-button.fc-state-down {
	background-color: #1a8b41 !important;
	box-shadow: none !important;
}
.arrow {
	position: relative;
	display: inline-block;
	width: 15px;
	height: 2px;
	border-radius: 9999px;
	background-color: #ffffff;
	margin: 0 !important;
}
.arrow::before,
.arrow::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
	right: 0;
	width: 8px;
	height: 2px;
	border-radius: 9999px;
	background-color: #ffffff;
	transform-origin: calc(100% - 1px) 50%;
}
.arrow::before { transform: rotate(45deg); }
.arrow::after { transform: rotate(-45deg); }
.prev-arrow { transform: rotate(180deg); }
.next-arrow { transform: rotate(0deg); }
#eventcalendar .fc-icon { display: none !important; }

@media screen and (max-width: 767px) {
	#eventcalendar .fc-button,
	#eventcalendar .fc-button.fc-state-default,
	#eventcalendar .fc-button.fc-state-active,
	#eventcalendar .fc-button.fc-state-disabled {
		width: 30px !important;
		height: 30px !important;
	}
}

/* --- 2. 日付数字エリア --- */
#eventcalendar .fc-day-number {
	display: block !important;
	float: none !important;
	text-align: center !important;
	height: 35px !important;
	line-height: 35px !important;
	background-color: #d6e7c6 !important;
	font-weight: bold;
	color: #36393E;
}
#eventcalendar .fc-sun .fc-day-number { color: #e01313 !important; }
#eventcalendar .fc-sat .fc-day-number { color: #2794ec !important; }

/* --- 3. 休館日スタイル --- */
#eventcalendar .fc-bg-holiday { background-color: #ebebeb !important; }
#eventcalendar .fc-bg-holiday .fc-day-number { color: #ff0000 !important; }
#eventcalendar .fc-event-holiday {
	margin: 12px 4px ;
	color: #e01313 !important;
	font-size: 1em;
	font-weight: bold;
	text-align: center;
}
@media screen and (max-width: 767px) {
	#eventcalendar .fc-event-holiday {
		margin: 8px 0px ;
		font-size: .8em;
	}
}

/* --- 4. イベント・予約枠の基本リセット --- */
#eventcalendar .fc-event,
#eventcalendar .fc-event:hover {
	background-color: transparent !important;
	border: none !important;
	color: inherit !important;
	padding: 2px !important;
	opacity: 1 !important;
	filter: none !important;
}

/* --- 5. 団体予約状況 --- */
#eventcalendar .fc-event-group {
	padding: 12px 4px !important;
	font-size: 1em;
	font-weight: bold;
	text-align: center;
	color: #36393E !important;
	cursor: default;
}
@media screen and (max-width: 767px) {
	#eventcalendar .fc-event-group {
		padding: 8px 2px !important;
		font-size: .7em;
	}
}


/* --- 6. イベントタイトル (共通) --- */
#eventcalendar .fc-event-title,
#eventcalendar .fc-event-apply-start,
#eventcalendar .fc-event-deadline {
    white-space: normal !important; /* 改行を許可 */
    line-height: 1.4 !important;    /* 行間を調整 */
}


/* --- 6. イベントタイトル --- */
#eventcalendar .fc-event-title {
	background-color: #f9f5ea !important;
	border-radius: 4px;
	padding: 2px 4px !important;
	margin-top: 4px !important;
	color: #ce820f !important;
	font-size: 1em;
	transition: all 0.3s ease;
	position: relative;
}
#eventcalendar .fc-event-title a {
	display: block;
	text-decoration: none;
	font-weight: bold;
    background-color: transparent !important;
    border: none !important;
}
#eventcalendar .fc-event-title a .icon {
	padding: 4px 8px;
	border-radius: 4px;
	background-color: #ce820f !important;
	color: #fff !important;
	position: absolute;
	top: 0;
	left: 0;
}
#eventcalendar .fc-event-title a .event_title {
	padding-left: 0;
	display: block;
	text-indent: 29px;
	line-height: 1.7;
}

/* 1. fc-event-title 内の a タグのホバー時の挙動をリセット */
#eventcalendar .fc-event-title a {
    text-decoration: none !important; /* 下線を消す */
    color: inherit !important;       /* 色を親のテキストカラーに継承 */
    background-color: transparent !important; /* 背景色変化を無効化 */
    border: none !important;         /* 枠線変化を無効化 */
    display: block;                  /* 領域を広げる */
    transition: none !important;     /* ホバーのアニメーションも無効化 */
}

/* 2. ホバー時でもスタイルが変わらないように強制上書き */
#eventcalendar .fc-event-title a:hover {
    background-color: transparent !important;
    border: none !important;
    color: inherit !important;
	opacity: inherit !important;
}

/* 3. リンク付きの親要素に対してだけ、先ほどの「滑らかなホバーアクション」を適用 */
#eventcalendar .fc-event-title:has(a):hover {
    opacity: 0.8 !important;
    cursor: pointer;
}
@media screen and (max-width: 1024px) {
	#eventcalendar .fc-event-title { padding: 0 !important; }
	#eventcalendar .fc-event-title a .icon {
		display: block;
		text-align: center;
		position: static;
	}
	#eventcalendar .fc-event-title a .event_title { display: none; }
}
@media screen and (max-width: 767px) {
    #eventcalendar .fc-event-title a .icon {
        font-size: .8em;
    }
}


/* --- 7. イベントタイトル（募集開始日） --- */
#eventcalendar .fc-event-apply-start {
    background-color: #f5f5f5 !important;
    border-radius: 4px;
    padding: 2px 4px !important;
    margin-top: 4px !important;
    color: #36393E  !important;
    font-size: 1em;
    transition: all 0.3s ease;
	position: relative;
}

#eventcalendar .fc-event-apply-start a {
    display: block;
    text-decoration: none !important;
    font-weight: bold;
    background-color: transparent !important;
    border: none !important;
}
#eventcalendar .fc-event-apply-start a .icon {
	padding: 4px 6px;
	border-radius: 4px;
	background-color: #686868 !important;
	color: #fff !important;
	position: absolute;
	top: 0;
	left: 0;
}
#eventcalendar .fc-event-apply-start a .event_title {
	padding-left: 0;
	display: block;
	text-indent: 66px;
	line-height: 1.7;
}

/* 募集開始日用のホバーアクション */
#eventcalendar .fc-event-apply-start:has(a):hover {
    opacity: 0.8 !important;
    cursor: pointer;
}

/* スマホ対応 */
@media screen and (max-width: 1024px) {
	#eventcalendar .fc-event-apply-start { padding: 0 !important; }
	#eventcalendar .fc-event-apply-start a .icon {
		display: block;
		text-align: center;
		position: static;
	}
	#eventcalendar .fc-event-apply-start a .event_title { display: none; }
}
@media screen and (max-width: 767px) {
    #eventcalendar .fc-event-apply-start a .icon {
        font-size: .8em;
    }
}


/* --- 8. イベントタイトル（募集終了日） --- */
#eventcalendar .fc-event-deadline {
    background-color: #f5f5f5 !important;
    border-radius: 4px;
    padding: 2px 4px !important;
    margin-top: 4px !important;
    color: #36393E  !important;
    font-size: 1em;
    transition: all 0.3s ease;
	position: relative;
}

#eventcalendar .fc-event-deadline a {
    display: block;
    text-decoration: none !important;
    font-weight: bold;
    background-color: transparent !important;
    border: none !important;
}
#eventcalendar .fc-event-deadline a .icon {
	padding: 4px 6px;
	border-radius: 4px;
	background-color: #686868 !important;
	color: #fff !important;
	position: absolute;
	top: 0;
	left: 0;
}
#eventcalendar .fc-event-deadline a .event_title {
	padding-left: 0;
	display: block;
	text-indent: 66px;
	line-height: 1.7;
}

/* 募集終了日用のホバーアクション */
#eventcalendar .fc-event-deadline:has(a):hover {
    opacity: 0.8 !important;
    cursor: pointer;
}

/* スマホ対応 */
@media screen and (max-width: 1024px) {
	#eventcalendar .fc-event-deadline { padding: 0 !important; }
	#eventcalendar .fc-event-deadline a .icon {
		display: block;
		text-align: center;
		position: static;
	}
	#eventcalendar .fc-event-deadline a .event_title { display: none; }
}
@media screen and (max-width: 767px) {
    #eventcalendar .fc-event-deadline a .icon {
        font-size: .8em;
    }
}


/* --- 9. 祝日用レイアウト (薄い赤枠・赤文字) --- */
/* 祝日テキストスタイル */
#eventcalendar .fc-style-holiday-text a { pointer-events: none !important; }
#eventcalendar .fc-holiday-label { padding: 4px; }
@media screen and (max-width: 767px) {
	#eventcalendar .fc-style-holiday-text {
		font-size: .6rem;
	}
}
#eventcalendar .fc-disabled-day { opacity: 0 !important; }