@charset "UTF-8";
/*-- 共通設定 --*/
#CONTENTS {
	overflow-wrap: anywhere;
}
#CONTENTS .section {
	max-width: 1096px;
	width: 90%;
	margin-inline: auto;
}
.text + .text {
	margin-top: 16px;
}

#CONTENTS br {
	display: block;
}

#CONTENTS .brsp {
	display: none;
}

@media only screen and (max-width: 641px) {
	#CONTENTS .brsp {
		display: block;
	}

	#CONTENTS .brpc {
		display: none;
	}
}

/* h2 */
.contents_title {
	position: relative;
	max-width: 1096px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 40px;
	padding-top: 80px;
	padding-bottom: 60px;
	border-bottom: 1px #ccc solid;
}
.contents_title hgroup h2 {
	font-size: 45px;
	text-align: center;
	letter-spacing: 5px;
	line-height: 1.15;
	font-family: "Helvetica Neue", "Roboto", "NotoSansCJKjp-Jxck", "Noto Sans CJK JP", "Noto Sans", sans-serif;
	word-break: break-all;
}
.contents_title hgroup h2 br {
	display: none;
}
.contents_title hgroup h2 span {
	font-family: "Helvetica Neue", "Roboto", "NotoSansCJKjp-Jxck", "Noto Sans CJK JP", "Noto Sans", sans-serif;
	font-weight: 600;
	margin-top: 10px;
	letter-spacing: 2px;
	font-size: 14px;
	display: block;
}
@media only screen and (max-width: 641px) {
	.contents_title {
			padding-top: 40px;
			margin-bottom: 40px;
			padding-bottom: 40px;
	}
	.contents_title hgroup h2 {
			font-size: 36px;
			letter-spacing: 2.3px;
			width: 90%;
			margin: 0 auto;
	}
	.contents_title hgroup h2 br {
			display: block;
	}
	.contents_title hgroup h2 div {
			font-size: 12px;
			text-align: center;
			margin-top: 5px;
			letter-spacing: 1px;
	}
}

/* h3 */
#CONTENTS .title_h3 {
	margin-bottom: 40px;
	border-left: 3px #f9ab45 solid;
	overflow: visible;
}
#CONTENTS .title_h3__title {
	text-align: left;
	font-size: 30px;
	color: #000;
	letter-spacing: 3px;
	margin-bottom: 0;
	padding-left: 20px;
}
@media only screen and (max-width: 641px) {
	#CONTENTS .title_h3 {
		margin-bottom: 30px;
	}
	#CONTENTS .title_h3__title {
		font-size: 24px;
		letter-spacing: 2px;
	}
}

/* h4 */
#CONTENTS .title_h4 {
	font-size: 2.4em;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.15em;
	color: #000;
	text-align: left;
	margin: 60px 0 24px;
	padding-bottom: 16px;
	border-bottom: 2px solid #f9ab45;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}
@media only screen and (max-width: 641px) {
	#CONTENTS .title_h4 {
		font-size: 1.8em;
		letter-spacing: 0.1em;
		align-items: flex-start;
		flex-direction: column;
	}
}

#CONTENTS .title_h4_2 {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.15em;
	margin: 60px 0 24px;
}
@media only screen and (max-width: 641px) {
	#CONTENTS .title_h4_2 {
		letter-spacing: 0.1em;
	}
}

/* h5 */ 
#CONTENTS .title_h5 {
	margin: 24px 0 16px;
	border-left: 2px #f9ab45 solid;
}
#CONTENTS .title_h5__title {
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
	padding-left: 10px;
	margin: 10px 0 0.5em;
	font-size: 1.6em;
	letter-spacing: .5px;
	color: #000;
}

/* h6 */ 
#CONTENTS .title_h6 {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	margin: 16px 0 24px;
}

/*-- TOPページ --*/

/* about */
.bg_about {
	position: relative;
	margin-bottom: 30px;
}
.bg_about__image {
	position: relative;
	line-height: 0;
}
.bg_about__image::after {
	content: '';
	inset: 0;
	position: absolute;
	background-color: #000;
	opacity: .25;
}
.bg_about__lead {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	width: fit-content;
	height: fit-content;
	text-align: center;
	font-size: 3.2em;
	color: #FFF;
	z-index: 2;
	padding: 16px;
}
@media only screen and (max-width: 641px) {
	.bg_about__lead {
		font-size: 1.8em;
		line-height: 1.5;
	}
}

/* message */
.message {
	display: flex;
	gap: 40px;
}
.message__image {
	width: min(320px, 30%);
}
.message__main {
	flex: 1;
}
@media only screen and (max-width: 641px) {
	.message {
		display: block;
	}
	.message__image {
		width: min(320px, 50%);
		margin: 0 auto 30px;
	}
}

/* calendar */
.calendar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 0;
	margin-top: 100px;
}
@media only screen and (max-width: 641px) {
	.calendar {
		margin-top: 60px;
	}
}