/*---------------------------------
	sectionTitle start
---------------------------------*/
.sectionTitle{
	font-family: 游ゴシック, YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
	font-size: clamp(175%, 4vw, 200%);
	text-align: center;
	margin-bottom: 1em;
}

/*---------------------------------
	sectionTitle end
---------------------------------*/

/*---------------------------------
	texts start
---------------------------------*/
.texts--alignCenter{
	text-align: center;
}

.texts--alignRight{
	text-align: right;
}

.texts--size90{
	font-size: 90%;
}

.texts--size105{
	font-size: 105%;
}

.texts--size110{
	font-size: 110%;
}

.texts--size125{
	font-size: 125%;
}

.texts--size150{
	font-size: 150%;
}

.texts--size175{
	font-size: 175%;
}

.texts--size200{
	font-size: 200%;
}

.texts--size250{
	font-size: 250%;
}

@media(max-width: 600px){
	.texts--spSize100{
		font-size: 100%;
	}
	
	.texts--spSize110{
		font-size: 110%;
	}

	.texts--spSize125{
		font-size: 125%;
	}

	.texts--spSize150{
		font-size: 150%;
	}

	.texts--spSize175{
		font-size: 175%;
	}

	.texts--spSize200{
		font-size: 200%;
	}
}

.texts--weightBold{
	font-weight: bold;
}

.texts--lineHeight100{
	line-height: 100%;
}

.texts--lineHeight200{
	line-height: 200%;
}

.texts--serif{
	font-family: 游ゴシック, YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
}

.texts--headPoint{
	position: relative;
	padding-left: 1.25em;
	
	&:before{
		content: "・";
		position: absolute;
		top: 0;
		left: 0;
	}
}

.texts--headReferenceMark{
	position: relative;
	padding-left: 1.25em;
	
	&:before{
		content: "※";
		position: absolute;
		top: 0;
		left: 0;
	}
}

.texts > *{
	margin: 0 0 1em;
}

.texts--margin0 > *{
	margin: 0;
}

.texts--lastMargin0 > *:last-of-type{
	margin: 0;
}

.texts_text--weightBold{
	font-weight: bold;
}

.texts_text--size110{
	font-size: 110%;
}

.texts_text--size125{
	font-size: 125%;
}

.texts_text--size150{
	font-size: 150%;
}

.texts_text--size175{
	font-size: 175%;
}

.texts_text--size200{
	font-size: 200%;
}

.texts_text--size225{
	font-size: 225%;
}

.texts_text--size250{
	font-size: 250%;
}

.texts_text--alignRight{
	text-align: right;
}

.texts_text--serif{
	font-family: 游ゴシック, YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
}

/*---------------------------------
	texts end
---------------------------------*/

/*---------------------------------
	buttons start
---------------------------------*/
.buttons{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin-top: 1em;
	margin-bottom: 1em;
}

.buttons > input[type="submit"]::-webkit-search-decoration,
.buttons > input[type="button"]::-webkit-search-decoration,
.buttons > input[type="reset"]::-webkit-search-decoration{
	display: none;
}

.buttons > input[type="submit"]::focus,
.buttons > input[type="button"]::focus,
.buttons > input[type="reset"]::focus{
	outline-offset: -2px;
}

.buttons > *{
	-webkit-box-sizing: content-box;
	box-sizing: border-box;
	cursor: pointer;
	display: block;
	font-size: 110%;
	min-width: 15em;
	margin: 0.25em 1em;
	padding: 1em 3em;
	border: 2px solid var(--c-hex-theme);
	color: #FFF;
	background-color: var(--c-hex-theme);
	text-align: center;
	transition: all 0.3s;
	border-radius: 10px;
}

.buttons > *:hover{
	color: var(--c-hex-theme);
	background-color: #FFF;
	text-decoration: none;
}


/*---------------------------------
	buttons end
---------------------------------*/

/*---------------------------------
	subpageHead start
---------------------------------*/
.subpageHead{
	position: relative;
	border-top: 1px solid #FFF;
}

.subpageHead:before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--c-hex-theme);
	z-index: 51;
}

.subpageHead_bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 50;
}

.subpageHead_inner{
	max-width: 1180px;
	width: 90%;
	margin: 0 auto;
	position: relative;
	z-index: 52;
}

.subpageHeadTitle{
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	font-weight: bold;
	font-size: 250%;
	font-family: 游ゴシック, YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
	color: #FFF;
	margin: 1em;
}

.subpageHeadTitle_jaText{
	font-size: 50%;
	text-shadow: 2px 2px 0.25em #000;
}

.subpageHeadTitle_enText{
	text-shadow: 2px 2px 0.25em #000;
}

@media(max-width: 600px){
	.subpageHeadTitle{
		font-size: calc(210% * 0.7);
	}
}

/*---------------------------------
	subpageHead end
---------------------------------*/

/*---------------------------------
	list start
---------------------------------*/
.list{
	list-style: none;
	margin-bottom: 1em;
	padding: 0;
	margin-left: 1em;
}

.list li{
	position: relative;
	padding-left: 0.25em;
	list-style-type: square;
	padding-bottom: 1em;
}


/*---------------------------------
	list end
---------------------------------*/

/*---------------------------------
	sideMediaLayout start
---------------------------------*/
.sideMediaLayout{
	--p-gapX: 2em;
	--p-gapY: 3em;
	display: flex;
	align-items: flex-start;
	flex-wrap: nowrap;
	justify-content: space-between;
	gap: 0 var(--p-gapX);
}

.sideMediaLayout_media{
	flex-grow: 0;
	flex-shrink: 0;
	width: calc((100% - var(--p-gapX)) / 2);
}

.sideMediaLayout_content{
	flex-grow: 0;
	flex-shrink: 0;
	width: calc((100% - var(--p-gapX)) / 2);
}

.sideMediaLayout--ratio1to1 .sideMediaLayout_media,
.sideMediaLayout--ratio1to1 .sideMediaLayout_content{
	width: calc((100% - var(--p-gapX)) / 2);
}

.sideMediaLayout--ratio6to4 .sideMediaLayout_media{
	width: calc((100% - var(--p-gapX)) * 0.6);
}

.sideMediaLayout--ratio6to4 .sideMediaLayout_content{
	width: calc((100% - var(--p-gapX)) * 0.4);
}

.sideMediaLayout--ratio7to3 .sideMediaLayout_media{
	width: calc((100% - var(--p-gapX)) * 0.7);
}

.sideMediaLayout--ratio7to3 .sideMediaLayout_content{
	width: calc((100% - var(--p-gapX)) * 0.3);
}

.sideMediaLayout--ratio4to6 .sideMediaLayout_media{
	width: calc((100% - var(--p-gapX)) * 0.4);
}

.sideMediaLayout--ratio4to6 .sideMediaLayout_content{
	width: calc((100% - var(--p-gapX)) * 0.6);
}

.sideMediaLayout--ratio45to55 .sideMediaLayout_media{
	width: calc((100% - var(--p-gapX)) * 0.45);
}

.sideMediaLayout--ratio45to55 .sideMediaLayout_content{
	width: calc((100% - var(--p-gapX)) * 0.55);
}

.sideMediaLayout--ratio3to7 .sideMediaLayout_media{
	width: calc((100% - var(--p-gapX)) * 0.3);
}

.sideMediaLayout--ratio3to7 .sideMediaLayout_content{
	width: calc((100% - var(--p-gapX)) * 0.7);
}

@media(min-width: 1025px){
	& .sideMediaLayout--mediaFirst .sideMediaLayout_media{
		order: 0;
	}

	& .sideMediaLayout--mediaFirst .sideMediaLayout_content{
		order: 1;
	}

	& .sideMediaLayout--contentFirst .sideMediaLayout_media{
		order: 1
	}

	& .sideMediaLayout--contentFirst .sideMediaLayout_content{
		order: 0;
	}
}

@media(max-width: 1024px){
	& .sideMediaLayout{
		flex-direction: column-reverse;
		align-items: center;
		gap: var(--p-gapY) 0;
	}

	& .sideMediaLayout .sideMediaLayout_media{
		width: 100%;
		max-width: 600px;
		margin: 0;
	}

	& .sideMediaLayout .sideMediaLayout_content{
		width: 100%;
	}
}

/*---------------------------------
	sideMediaLayout end
---------------------------------*/

/*---------------------------------
	imageFrame start
---------------------------------*/
.imageFrame{
	position: relative;
	width: 100%;
	padding-top: calc(100% / 4 * 3);
	border-radius: 1em;
	overflow: hidden;
}

.imageFrame--ratio4to3{
	padding-top: calc(100% / 4 * 3);
}

.imageFrame--ratio5to3{
	padding-top: calc(100% / 5 * 3);
}

.imageFrame img{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.25s;
}

a:hover .imageFrame img{
	transform: scale(1.1);
}

/*---------------------------------
	imageFrame end
---------------------------------*/

/*---------------------------------
	borderTable start
---------------------------------*/
.borderTable{
	table-layout: fixed;
	width: 100%;
}

.borderTable th,
.borderTable td{
	border-bottom: 1px dashed #333;
	padding: 1em;
}

@media(max-width: 750px){
	.borderTable{
		font-size: 0.9em;
	}
	.borderTable th,
	.borderTable td{
		padding: 1em 0.5em;
	}
}

/*---------------------------------
	borderTable end
---------------------------------*/