@charset "UTF-8";
/* calendar.css */


/* ----- カレンダー ----- */
.calendar_head {
	font-size: 24px;
	font-weight: bold;
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: center;
	margin-bottom: .75em;
}
.calendar_head:before {
	content: "";
	width:  1.25em;
	height: 1.25em;
	min-width:  1.25em;
	min-height: 1.25em;
	display: block;
	background-image: url(../../img/index/calendar_head.svg);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	background-position: center;
	transform: translateY(.15em);
	margin-right: .35em;
}

#calendar   {
	max-width: 1000px;
	margin-left:  auto;
	margin-right: auto;
}
#calendar * {
	font-family: 'Noto Sans JP', noto-sans-cjk-jp, sans-serif !important;
}
/* 
.fc-past-day {
	opacity: .5;
} */

/* ----- カレンダー見出し部分の調整 ----- */
/* 0000年0月 見出し */
.fc-header-toolbar {
	margin-bottom: 20px !important;
	padding: 0 !important;
}
.fc-view-harness.fc-view-harness-passive {
	background-color: #fff;
}

.fc .fc-toolbar-title {
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .1em;
	margin-left:  1.5em;
	margin-right: 1.5em;
	color: #000;
}
/* 次の月・前の月の矢印の色を変更 */
.fc .fc-button-primary,
.fc .fc-button-primary:hover,
.fc .fc-button-primary:active,
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
	color: #fff !important;
	border: none !important;
	border-color: transparent !important;
	background-color: transparent !important;
	padding: 0  !important;
}
.fc .fc-button {
	font-size: 30px !important;
	line-height: 1 !important;
}
.fc .fc-button .fc-icon {
	font-size: 1em !important;
}
.fc .fc-button:disabled {
	opacity: .4 !important;
}
.fc-icon-chevron-left::before,
.fc-icon-chevron-right::before {
	content: "" !important;
	width:  100%;
	height: 100%;
	position: relative;
	display:  flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	background-image: url(../../img/common/btn_decoB.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 50%;
	border-radius: 50px;
	border: 1px solid #000;;
}
.fc-icon-chevron-left::before {
	background-image: url(../../img/common/btn_decoB_reverse.svg);
}
.fc .fc-button-primary:not(:disabled).fc-button-active:focus,
.fc .fc-button-primary:not(:disabled):active:focus,
.fc .fc-button-primary:focus {
	box-shadow: none !important;
}
/* 今日にワープするボタンのスタイルについて */
.fc .fc-button-primary:disabled {
	background-color: #000;
}
/* ----- カレンダー内部の調整 ----- */
/* 通常日にちと曜日の文字色を変更 */
.fc .fc-daygrid-day-number,
.fc .fc-col-header-cell-cushion {
	font-size: 13px;
	line-height: 1;
	cursor: inherit;
	color: #000;
}
.fc .fc-daygrid-day-number {
	padding: .5em !important;
}
.fc-scrollgrid-sync-inner {
	line-height: 1 !important;
}
.fc .fc-col-header-cell-cushion {
	color: #fff;
	padding: .75em !important;
}
/* 文字サイズの調整 */
.fc-h-event .fc-event-title {
	font-size: 11px;
	letter-spacing: .1em;
}
/* 今日 色変更 */
.fc .fc-daygrid-day.fc-day-today {
	font-weight: bold;
	background-color: transparent !important;
}
/* 前月と次月の色変更 */
.fc .fc-cell-shaded,
.fc .fc-day-disabled {
	background-color: #f3f3f3;
}
/* 土曜日 色変更 */
#calendar .fc-day-sat,
.fc-day-sat .fc-daygrid-day-top,
.fc-day-sat .fc-daygrid-day-top a,
.fc-day-sat .fc-col-header-cell-cushion  {
	color: #3366cc !important;
}
/* 日曜日 色変更 */
.fc-direction-ltr .fc-daygrid-event.fc-event-end,
.fc-direction-rtl .fc-daygrid-event.fc-event-start {
	margin-right: 7px;
}
.fc-direction-ltr .fc-daygrid-event.fc-event-start,
.fc-direction-rtl .fc-daygrid-event.fc-event-end {
	margin-left: 7px;
}

#calendar .fc-day-sun,
.fc-day-sun .fc-daygrid-day-top,
.fc-day-sun .fc-daygrid-day-top a,
.fc-day-sun .fc-col-header-cell-cushion  {
	color: #f00 !important;
}
.fc-day-sat .fc-col-header-cell-cushion,
.fc-day-sun .fc-col-header-cell-cushion {
	color: #fff !important;
}
/* 祝日の文字色を変更 */
.fc-daygrid-day:has(.ja-holidays) .fc-daygrid-day-top,
.fc-daygrid-day:has(.ja-holidays) .fc-daygrid-day-top a {
	color: #f00 !important;
}
/* 祝日のイベント名を非表示 */
.ja-holidays {
	display: none !important;
}
/* イベント名の文字色を変更 */
#calendar .fc-h-event .fc-event-title {  
	white-space: normal;
	font-weight: normal;
	line-height: 1.2;
	color:#fff !important;
	padding: .4em .4em;
}
#calendar .fc-event-selected,
#calendar .fc-event:focus {
	box-shadow: none !important;
}
.fc-event-selected::before,
.fc-event:focus::before  {
	content: none;
}
/* 日にちとイベント名を中央揃え */
.fc .fc-daygrid-day-top {
	line-height: 1;
	justify-content: flex-end;
	padding: 0 .2em;
}
.fc-event-title-container,
.fc-h-event .fc-event-title-container {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.fc-h-event .fc-event-title-container {
	word-break: normal;
}
/* イベントの色を変更する */
.fc-event    {
	background-color: #ff5d00;
	border: none;
}
/* fucus時のtoolshipを調整 */
.tippy-content {
	min-width:   150px;
	font-weight: 500;
	letter-spacing: .1em;
	text-align:  center;
	padding: .7em;
}
.tippy-content .description {
	word-break: break-all;
	font-weight: normal;
	letter-spacing: .05em;
	text-align:  left;
	margin-top:  .5em;
}
.tippy-content .description a {
	text-decoration: underline;
	color: #E4688D;
}
/* リンク取得用に追加したイベントの削除 */
#calendar .beforeurl {
	width:  0;
	height: 0;
	display: none !important;
	pointer-events: none !important;
	user-select:    none !important;
}
/* デザインさらに調整 */
.fc-col-header-cell {
	background-color: #000;
}
#calendar thead,
#calendar tr.fc-scrollgrid-section-header,
#calendar tr.fc-scrollgrid-section-header > th {
	background-color: #000;
}
.fc-theme-standard .fc-scrollgrid {
	border: 1px solid #000;
	border-right-width:  0;
	border-bottom-width: 0;
}
.fc-theme-standard td,
.fc-theme-standard th {
	border: 1px solid #000;
}
.fc-theme-standard th {
	border-left-color:  #fff;
	border-right-color: #fff;
}
.fc-theme-standard th:last-of-type {
	border-right-color: #000;
}


@media screen and (max-width:768px) {
	.calendar_head {
		font-size: 22px;
		margin-bottom: .5em;
	}
	.fc .fc-toolbar-title {
		font-size: 18px;
	}
	.fc .fc-button {
		font-size: 25px !important;
	}
	.fc .fc-daygrid-day-number,
	.fc .fc-col-header-cell-cushion {
		font-size: 11px !important;
	}
	.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {
		min-height: 20px !important;
	}
	.fc .fc-daygrid-body-natural .fc-daygrid-day-events {
		margin-bottom: .5em !important;
	}
	.fc .fc-col-header-cell-cushion {
		padding: .5em !important;
		padding-top: .3em !important;
	}
	.fc .fc-daygrid-day-number {
		padding: .3em .3em .25em .3em !important;
	}
	.fc-direction-ltr .fc-daygrid-event.fc-event-end,
	.fc-direction-rtl .fc-daygrid-event.fc-event-start {
		margin-right: 5px;
	}
	.fc-direction-ltr .fc-daygrid-event.fc-event-start,
	.fc-direction-rtl .fc-daygrid-event.fc-event-end {
		margin-left: 5px;
	}


	.fc-h-event .fc-event-title {
		font-size: 8px;
		font-size: clamp(8px,2.6vw,9px);
		letter-spacing: 0;
	}
	.fc-theme-standard .fc-scrollgrid {
		border: 1px solid #000;
		border-right-width:  0;
		border-bottom-width: 0;
	}
	.fc-theme-standard td,
	.fc-theme-standard th {
		border: 1px solid #000;
	}
	.fc-theme-standard th {
		border-left-color:  #fff;
		border-right-color: #fff;
	}
	.fc-theme-standard th:last-of-type {
		border-right-color: #000;
	}
}




/* ----- 各OCへのボタン ----- */
.ocbtn_flex {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: space-between;
}
.ocbtn_flex .btn {
	width: calc(100%/2 - 10px);
	margin-bottom: 20px;
}
.ocbtn_flex .btn a {
	width: 100%;
}


/* ----- OC情報一部掲載 ----- */
.oc_header {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-bottom: clamp(10px,1.5vw,15px);
}
.oc_flex {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: space-between;
}
.oc_card {
	width: calc(100%/2 - min(1.5vw,15px));
	position: relative;
	margin-top: 2em;
	margin-bottom: 2em;
}
.oc_borderbox {
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 20px clamp(20px,2.5vw,25px) clamp(20px,2.5vw,25px);
	border: 1px solid #000;
}
/* OCの種類（1日orミニ） */
.oc_card,
.oc_kind  {
	font-size: 14px;
	font-size: clamp(12px,1.4vw,16px);
}
.oc_kind {
	width: fit-content;
	font-weight: normal;
	line-height: 1;
	display: block;
	position: absolute;
	top:  1px;
	left: 0;
	margin-bottom: -1px;
	padding: .5em .5em;
	color: #fff;
	background-color: #000;
	transform: translateY(-2em);
}
/* OC 時間 */
.oc_datetime,
.oc_datetime .oc_date {
	font-size: 18px;
	font-size: clamp(15px,1.8vw,18px);
	font-weight: 500;
	text-align: left;
	line-height: 1;
	letter-spacing: .05em;
}
.oc_datetime .oc_date {
	margin-right: .5em;
}
.oc_datetime .oc_time {
	font-size: .8em;
	font-family: din-2014, "Barlow Condensed", sans-serif !important;
	font-weight: normal;
	display: inline-block;
	letter-spacing: .05em;
	margin-top:  .5em;
}
/* ラベル（交通費補助・ランチ付き） */
.oc_label {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
}
.oc_label li {
	width: fit-content;
	min-width: fit-content;
	font-size: 11px;
	font-size: clamp(9px,1.1vw,11px);
	line-height: 1;
	display: inline-block;
	padding: .5em;
	background-color: #eee;
}
.oc_label li + li {
	margin-left: 1em;
}
/* OC写真 */
.oc_img {
	border: 1px solid #000;
}
/* OC申し込みボタン */
.oc_card .btn {
	margin: clamp(15px,2.5vw,25px) auto 0;
}
.oc_card .btn a {
	font-size: clamp(13px,1.4vw,16px);
}
/* OC 灰色BOX */
.oc_bgbox,
.oc_bgbox p {
	font-size: clamp(11px,1.2vw,14px);
	letter-spacing: .05em;
}
.oc_bgbox {
	width:  100%;
	height: 100%;
	margin-top: clamp(15px,2.5vw,25px);
	padding: 1.25em;
	background-color: #f5f5f5;
}
.oc_bgbox p {
	line-height: 1.7;
}
/* さらに見るボタン */
.oc_flex + .btn_design {
	margin: auto;
}
.oc_flex + .btn_design a {
	min-width: 240px;
}

/* ----- 申し込み締切時 OCカード ----- */
/* カード */
.li_form-closed {
	position: relative;
}
.li_form-closed:after {
	content: "";
	width:  100%;
	height: 100%;
	display: block;
	position: absolute;
	top:  0;
	left: 0;
	background-color: rgba(0,0,0,.8);
	z-index: 10;
}
.li_form-closed .btn,
.li_form-closed .btn a {
	pointer-events: none;
}
/* 文言 */
.form_closed-contents {
	width:  100%;
	height: 100%;
	top:  0;
	left: 0;
	display: flex;
	flex-direction:  column;
	justify-content: center;
	align-items: center;
	position: absolute;
	display: none !important;
	z-index: 15;
}
.li_form-closed .form_closed-contents {
	display: flex !important;
}
.form_closed-contents * {
	font-size: min(3.467vw,13px) !important;
	font-weight: bold;
	color: #fff !important;
}
.form_closed-contents p {
	margin-bottom: 1em;
}

/* ----- ラベル非表示（交通費補助・ランチ付き） ----- */
/* 情報を全部非表示 */
.oc_label li {
	display: none !important;
}
/* カテゴリごとに表示させる */
.o-can_hojyo .-w-hojyo,
.o-can_lunch .-w-lunch {
	display: block !important;
}

/* ----- OCの種類によって、どのボタンを表示させるか決定 ----- */
.oc_card .btn a {
	display: none !important;
}
.o-can_normal .btn a.entry_normal,
.o-can_mini .btn a.entry_mini,
.o-can_trip .btn a.entry_normal {
	display: flex !important;
}

/* ----- OCの種類によって、カード左上に表示させるラベルの切り替え ----- */
.oc_kind {
	display: none !important;
}
.o-can_normal .kind_normal,
.o-can_mini .kind_mini,
.o-can_trip .kind_trip {
	display: block !important;
}

/* ----- 管理画面の選択項目によって、「お申し込み開始までお待ちください」を表示 ----- */

/* ボタン非表示のかたち  */
.still_appear_cont {
  display:none !important;
}
.still_appear .btn {
  display:none !important;
}
.still_appear .still_appear_cont {
  font-size: clamp(14px,1.6vw,18px);
  display: block !important;
  text-align: center;
  margin-top: 1.4em;
}




@media screen and (max-width:768px) {
	/* ----- 見出し ----- */
	.lower_main h3.h_border_TB {
		font-size: min(4.8vw,18px) !important;
	}

	/* ----- 各OCへのボタン ----- */
	.ocbtn_flex .btn a {
		font-size: clamp(12px,3.733vw,13px);
	}
	@media screen and (max-width:549px) {
		.ocbtn_flex {
			flex-wrap: wrap;
		}
		.ocbtn_flex .btn {
			width: 100%;
			margin-bottom: 15px;
		}
		.ocbtn_flex .btn a {
			font-size: 14px;
		}
	}

	/* ----- OC情報一部掲載 ----- */
	.oc_card {
		width: 100%;
		margin-bottom: 30px;
		margin-bottom: min(8vw,40px);
	}
	.oc_card:last-of-type {
		margin-bottom: min(4vw,20px);
	}
	.oc_borderbox {
		padding: min(4vw,20px) min(4vw,30px) min(4vw,30px);
	}
	/* OCの種類（1日orミニ） */
	.oc_card,
	.oc_kind {
		font-size: 12px;
		font-size: min(3.2vw,16px);
	}
	/* OC 時間 */
	.oc_datetime,
	.oc_datetime .oc_date {
		font-size: 15px;
		font-size: min(3.8vw,18px);
	}
	/* ラベル（交通費補助・ランチ付き） */
	.oc_label li {
		font-size: min(2.6vw,12px);
	}
	/* OC申し込みボタン */
	.oc_card .btn a {
		font-size: clamp(4vw,18px);
	}
	.oc_bgbox p {
		font-size: min(3.2vw,16px);
	}
	
	/* ----- 管理画面の選択項目によって、「お申し込み開始までお待ちください」を表示 ----- */
  /* ボタン非表示のかたち  */
  .still_appear_cont {
    display:none !important;
  }
  .still_appear .btn {
    display:none !important;
  }
  .still_appear .still_appear_cont {
    font-size: clamp(14px,3.733vw,16px);
    text-align: center;
    margin-top: 1em;
  }
}