.strengths {
	overflow: hidden;
}

.strengths_list {
	display: flex;
}

.strengths_item {
	position: relative;
	z-index: 0;
}

.strengths_item_content {
	background-color: #fff;
	height: 100%;
	overflow: hidden;
}

.strengths_item_glow {
	position: absolute;
	top: 50%;
	left: 50%;
  border-radius: 50%;
	z-index: -1;
}

.strengths_item_glow_1 {
  background: linear-gradient(to bottom, #acdcd5 0%, #c8e2c8 50%, #e3e9c1 100%);
}

.strengths_item_glow_2 {
  background: linear-gradient(to bottom, #ead2d2 0%, #e4c0cc 50%, #dccae0 100%);
}

.strengths_item_glow_3 {
  background: linear-gradient(to bottom, #eedba9 0%, #edd9aa 25%, #edd7ad 50%, #ecd4b0 75%, #ebd2b3 100%);
}

.strengths_item_glow_4 {
  background: linear-gradient(to bottom, #ced9f5 0%, #d4dbf4 25%, #d8dcf3 50%, #dedbf2 75%, #e6d6f0 100%);
}

.strengths_item_glow_5 {
  background: linear-gradient(to bottom, #e9eace 0%, #e4e9c6 50%, #e0e9c1 100%);
}

.strengths_text_title {
  display: flex;
  align-items: flex-start; /* 位置を先頭行基準にする */
  margin: 0; /* レイアウト計算を狂わせない */
	font-weight: bold;
}

.strengths_text_title_dot {
  border-radius: 50%;
  background-color: #aaa;
}

.strengths_text_title_text {
  flex: 1 1 auto; /* ドット以外の横幅を可変的に占有 */
  min-width: 0; /* 折り返しを安定させる */
}

.subject_inner {
	display: flex;
	align-items: center;
	justify-content: center;
}

.subject_title {
	background: linear-gradient(transparent 50%, #ffe3dd 50%);
	font-weight: bold;
}

.subject_list {
	display: flex;
	align-items: center;
}

.subject_item {
	border-radius: 50%;
}

.subject_item_inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: relative;
	background-color: #fff;
	height: 100%;
	border-radius: 50%;
}

.subject_text {
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	text-align: center;
}

.fees_content_inner {
	background-color: #fff;
  position: relative;
}

.fees_title {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	border-radius: 9999px;
	color: #fff;
	font-weight: bold;
}

.fees_text {
  display: flex;
}

.fees_text_1_p_1 {
	display: inline-block;
	background: linear-gradient(transparent 50%, #d0ebd4 50%);
}

.fees_text_1_p_2 {
	line-height: 1;	
}

.fees_text_1_large {
	font-weight: bold;
}

.fees_text_2 a {
	text-decoration: underline;
	color: #005619;
}

.director {
  background: radial-gradient( ellipse at center, rgba(255, 243, 236, 0.85) 0%, rgba(255, 243, 236, 0.0) 60% ), linear-gradient( 90deg, #fdf4f0 0%, #fae9e4 14%, #fae3de 28%, #fadfd9 42%, #faf0ea 55%, #e3f2e8 76%, #dcf0e3 90%, #e6f5ec 98.2%, #e9f6ef 99.1%, #e8f5ee 100% );
	position: relative;
	z-index: 1;
}

.director::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: -1;
	top: 0;
	left: 0;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(255, 255, 255, 1) 100%);
}

.director::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: -1;
	mix-blend-mode: darken;
	-webkit-mix-blend-mode: darken;
	top: 0;
	left: 0;
	pointer-events: none;
}

.director_content {
	display: flex;
}

.director_content_image {
	height: fit-content;
	background-color: #fff;
}

.director_content_message_text span {
	display: inline-block;
	background: linear-gradient(transparent 50%, #fff 50%);
	font-weight: bold;
}

.director_content_signature {
	display: flex;
	align-items: end;
	flex-direction: column;
}

.flow_item {
  position: relative;
}

.flow_item:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  background: #fff center center / 100% no-repeat;
  border-radius: 9999px;
}

.flow_item_1::before {
	background: url(../img/flow_item_1.jpg) center center / 100% no-repeat;
}

.flow_item_2::before {
	background: url(../img/flow_item_2.jpg) center center / 100% no-repeat;
}

.flow_item_3::before {
	background: url(../img/flow_item_3.jpg) center center / 100% no-repeat;
}

.flow_item_4::before {
	background: url(../img/flow_item_4.jpg) center center / 100% no-repeat;
}

.flow_item:not(:last-of-type)::after {
  content: "";
  position: absolute;
}

.flow_item_title {
	font-weight: bold;
}

.flow_item_body_anchor {
	text-decoration: underline;
	color: #005619;
}

.flow_item_body_anchor:hover {
	color: #1c6d03;
}

.flow_supplies_list {
	display: flex;
}

.flow_supplies_box_item {
  position: relative;
}

.flow_supplies_box_item::before,
.flow_supplies_box_item::after {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
}

.flow .flow_supplies_box_item::before {
  border-bottom: 0;
  top: 0;
}

.flow .flow_supplies_box_item::after {
	border-top: 0;
  bottom: 0;
}

.flow_supplies_box_title {
	font-weight: bold;
	text-align: center;
}


@media (width <= 374px) {

	.subject_inner {
		letter-spacing: 0.02em;
	}

	.subject_item {
		width: 50px;
		height: 50px
	}

	.subject_item:not(:last-of-type) {
		margin-right: 10px;
	}

	.subject_item_japanese .subject_image {
		width: 32%;
		padding-bottom: 21px;
	}

	.subject_item_math .subject_image {
		width: 30%;
		padding-bottom: 19px;
		margin-left: -3px;
	}

	.subject_item_science .subject_image {
		width: 22%;
		padding-bottom: 18px;
	}

	.subject_item_socialstudies .subject_image {
		width: 32%;
		padding-bottom: 20px;
		margin-left: -2px;
	}

	.subject_item_english .subject_image {
		width: 32%;
		padding-bottom: 14px;
	}

	.subject_text {
		bottom: 4px;
		font-size: 11px;
	}

}


@media (375px <= width <= 389px) {

	.subject_inner {
		letter-spacing: 0.02em;
	}

	.subject_item {
		width: 55px;
		height: 55px
	}

	.subject_item:not(:last-of-type) {
		margin-right: 15px;
	}

	.subject_item_japanese .subject_image {
		width: 32%;
		padding-bottom: 22px;
	}

	.subject_item_math .subject_image {
		width: 30%;
		padding-bottom: 20px;
		margin-left: -3px;
	}

	.subject_item_science .subject_image {
		width: 22%;
		padding-bottom: 19px;
	}

	.subject_item_socialstudies .subject_image {
		width: 32%;
		padding-bottom: 21px;
		margin-left: -2px;
	}

	.subject_item_english .subject_image {
		width: 32%;
		padding-bottom: 15px;
	}

	.subject_text {
		bottom: 5px;
		font-size: 11px;
	}

}


@media (390px <= width <= 599px) {

	.subject_inner {
		letter-spacing: 0.02em;
	}

	.subject_item {
		width: 60px;
		height: 60px;
	}

	.subject_item:not(:last-of-type) {
		margin-right: 15px;
	}

	.subject_item_japanese .subject_image {
		width: 32%;
		padding-bottom: 24px;
	}

	.subject_item_math .subject_image {
		width: 30%;
		padding-bottom: 22px;
		margin-left: -3px;
	}

	.subject_item_science .subject_image {
		width: 22%;
		padding-bottom: 21px;
	}

	.subject_item_socialstudies .subject_image {
		width: 32%;
		padding-bottom: 23px;
		margin-left: -2px;
	}

	.subject_item_english .subject_image {
		width: 32%;
		padding-bottom: 17px;
	}

	.subject_text {
		bottom: 7px;
		font-size: 12px;
	}

}


@media (width <= 599px) {
	
	.strengths_list {
		flex-wrap: wrap;
		column-gap: 30px;
		row-gap: 30px;
		padding-right: 10px;
		padding-left: 10px;
	}
	
	.strengths_item {
		width: 100%;
	}

	.strengths_item_glow {
		width: 101%;
		height: 101%;
		filter: blur(10px);
		transform: translate(-50%, -50%) rotate(-10deg);
	}

	.strengths_item_content {
		border-radius: 10px;
	}

	.strengths_text {
		padding: 20px 20px;
	}

	.strengths_text {
		letter-spacing: 0.02em;
	}

	.strengths_text_title {
		padding-bottom: 12px;
		font-size: 15px;
		gap: 12px;
		line-height: 1.6;
	}

	.strengths_text_title_dot {
		width: 5px;
		height: 5px;
		flex: 0 0 5px; /* ドットのサイズについて他コードからの影響を受けないようにする */
		margin-top: calc((1em * 1.6 - 5px) / 2); /* ドットの上下中央揃え / ((1em * 行間値 - ドットのサイズ) / 2) */
	}

	.strengths_text_body {
		font-size: 13px;
	}

	.subject_inner {
		flex-direction: column;
	}

	.subject_title {
		padding: 0 6px;
		margin-bottom: 30px;
		font-size: 15px;
		letter-spacing: 0.02em;
	}

	.subject_item {
		background: url(../img/bg_6.png) repeat top left / auto auto;
		padding: 2px;
	}


	
	

	
	



	.fees {
		background: url(../img/bg_18.jpg) top left / 150px auto repeat;
	}

	.fees_content {
		background: url(../img/bg_grass_1.jpg) top left / auto auto repeat;
		padding: 2px;
		border-radius: 10px;
	}
	
	.fees_content_inner {
		padding: 52px 30px 30px;
		border-radius: 8px;
		letter-spacing: 0.02em;
	}

	.fees_title {
		background: url(../img/bg_grass_1.jpg) top left / auto 43px repeat;
		padding: 8px 20px;
		margin-top: -1px; /* ボーダーの高さの半分 */
		font-size: 14px;
		letter-spacing: 0.04em;
	}
	
	.fees_text {
		flex-direction: column;
	}
	
	.fees_text_1 {
		padding-bottom: 30px;
		border-bottom: 1px solid #ccc;
		margin-bottom: 30px;
		text-align: center;
		letter-spacing: 0.02em;
	}

	.fees_text_1_p_1 {
		padding: 0 6px;
		margin-bottom: 15px;
	}

	.fees_text_1_large {
		padding-right: 0.2em;
		font-size: 26px;
	}

	.fees_text_1_small {
		vertical-align: 1px;
		font-size: 14px;
	}
	
	.fees_text_2 {
		font-size: 13px;
	}

	.fees_text_2_p_1:not(:first-of-type) {
		padding-top: 15px;
	}

	.director::after {
		background: url(../img/bg_13.jpg) top left / 200px 200px repeat;
		-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%);
		mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 100%);
		opacity: 0.07;
	}

	.director_content {
		flex-direction: column;
		gap: 30px;
	}

	.director_content_image {
		border-radius: 10px;
		padding: 2px;
	}

	.director_content_image img {
		border-radius: 8px;
	}
	
	.director_content_text {
		font-size: 13px;
		letter-spacing: 0.02em;
	}

	.director_content_message {
		border-bottom: 2px solid #fff;
	}

	.director_content_message_text span {
		padding: 0px 2px;
		margin: 15px 0;
	}

	.director_content_signature_name {
		padding-top: 15px;
		width: 66px;
	}

	.flow_content {
		background: url(../img/bg_19.jpg) top left / 20px auto repeat;
		padding-right: 30px;
		padding-left: 30px;
		border-radius: 10px;
	}
	
	.flow_title {
		padding-bottom: 60px;
	}

	.flow_list,
	.flow_supplies {
		letter-spacing: 0.02em;
	}

	.flow_item:not(:last-of-type)::after {
		height: 110%;
		border-left: 3px solid #fff;
		left: calc(30px - 1.5px); /* 円幅の半分 - ボーダー幅の半分 */
		top: 60px;
	}

	.flow_item_title {
		padding-bottom: 4px;
	}
	
	.flow_item_body {
		font-size: 13px;
	}

	.flow_item::before {
		border: 3px solid #fff;
		width: 60px;
		height: 60px;
	}

	.flow_item {
		padding-left: 90px;
	}

	.flow_item:not(:last-of-type) {
		margin-bottom: 30px;
	}
	
	.flow_supplies {
		padding-top: 60px;
	}

	.flow_supplies_list {
		flex-direction: column;
		gap: 30px;
	}

	.flow_supplies_box_item::before,
	.flow_supplies_box_item::after {
		height: 30px;
		border: 1px solid #ddd;
	}

	.flow_supplies_box_item::before {
		border-radius: 10px 10px 0 0;
	}

	.flow_supplies_box_item::after {
		border-radius: 0 0 10px 10px;
	}

	.flow_supplies_box_title,
	.flow_supplies_box_body {
		padding: 20px 20px;
		font-size: 13px;
	}

	.flow_supplies_box_image {
		border-radius: 6px;
	}

	.flow_supplies_box_item_1 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

	.flow_supplies_box_item_2 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 1px;
	}

}


@media (600px <= width <= 959px) {

	.strengths_list {
		flex-wrap: wrap;
		column-gap: 40px;
		row-gap: 40px;
		padding-right: 40px;
		padding-left: 40px;
	}
	
	.strengths_item {
		width: calc(50% - 20px);
	}

	.strengths_item_glow {
		width: 95%;
		height: 95%;
		filter: blur(20px);
		transform: translate(-50%, -50%) rotate(-10deg);
	}

	.strengths_item_content {
		border-radius: 10px;
	}

	.strengths_text {
		padding: 30px 30px;
	}

	.strengths_text {
		letter-spacing: 0.02em;
	}

	.strengths_text_title {
		padding-bottom: 20px;
		font-size: 16px;
		gap: 12px;
		line-height: 1.7;
	}

	.strengths_text_title_dot {
		width: 6px;
		height: 6px;
		flex: 0 0 6px; /* ドットのサイズについて他コードからの影響を受けないようにする */
		margin-top: calc((1em * 1.7 - 6px) / 2); /* ドットの上下中央揃え / ((1em * 行間値 - ドットのサイズ) / 2) */
	}

	.strengths_text_body {
		font-size: 14px;
	}

	.subject_inner {
		flex-direction: column;
		letter-spacing: 0.06em;
	}

	.subject_title {
		padding: 0 6px;
		margin-bottom: 40px;
		font-size: 16px;
	}

	.subject_item {
		width: 90px;
		height: 90px;
		background: url(../img/bg_6.png) repeat top left / auto auto;
		padding: 3px;
	}

	.subject_item:not(:last-of-type) {
		margin-right: 20px;
	}

	.subject_item_japanese .subject_image {
		width: 32%;
		padding-bottom: 32px;
	}

	.subject_item_math .subject_image {
		width: 30%;
		padding-bottom: 30px;
		margin-left: -4px;
	}

	.subject_item_science .subject_image {
		width: 22%;
		padding-bottom: 28px;
	}

	.subject_item_socialstudies .subject_image {
		width: 34%;
		padding-bottom: 32px;
		margin-left: -2px;
	}

	.subject_item_english .subject_image {
		width: 34%;
		padding-bottom: 20px;
	}

	.subject_text {
		bottom: 12px;
	}

	.fees {
		background: url(../img/bg_18.jpg) top left / auto auto repeat;
	}

	.fees_content {
		background: url(../img/bg_grass_1.jpg) top left / auto auto repeat;
		padding: 3px;
		border-radius: 10px;
	}
	
	.fees_content_inner {
		padding: 65px 40px 40px;
		border-radius: 7px;
		letter-spacing: 0.02em;
	}

	.fees_title {
		background: url(../img/bg_grass_1.jpg) center center / cover no-repeat;
		padding: 10px 30px;
		margin-top: -1.5px; /* ボーダーの高さの半分 */
		font-size: 16px;
	}
	
	.fees_text_1 {
		flex: 0 0 auto; /* コンテンツの幅 */
		padding-right: 40px;
		border-right: 1px solid #ccc;
	}

	.fees_text_1_p_1 {
		padding: 0 6px;
		margin-bottom: 30px;
	}

	.fees_text_1_large {
		padding-right: 0.2em;
		font-size: 30px;
	}

	.fees_text_1_small {
		vertical-align: 2px;
		font-size: 15px;
	}
	
	.fees_text_2 {
		flex: 1 1 auto; /* 残りの幅 */
		min-width: 0; /* 念のためのレイアウト崩れ防止策 */
		padding-left: 40px;
	}

	.fees_text_2_p_1:not(:first-of-type) {
		padding-top: 10px;
		font-size: 14px;
	}

	.director::after {
		background: url(../img/bg_13.jpg) top left / 250px 250px repeat;
		-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%);
		mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 100%);
		opacity: 0.08;
	}

	.director_content {
		gap: 20px;
	}

	.director_content_image {
		border-radius: 10px;
		padding: 4px;
	}

	.director_content_image img {
		border-radius: 6px;
	}
	
	.director_content_text {
		font-size: 13px;
		letter-spacing: 0em;
	}

	.director_content_message {
		border-bottom: 2px solid #fff;
	}

	.director_content_message_text span {
		padding: 0px 4px;
		margin: 10px 0;
	}

	.director_content_signature_name {
		padding-top: 10px;
		width: 70px;
	}

	.flow_content {
		background: url(../img/bg_19.jpg) top left / auto auto repeat;
		background-attachment: fixed;
		padding-right: 40px;
		padding-left: 40px;
		border-radius: 10px;
	}
	
	.flow_title {
		padding-bottom: 40px;
	}

	.flow_list,
	.flow_supplies {
		letter-spacing: 0.06em;
	}

	.flow_item:not(:last-of-type)::after {
		height: 110%;
		border-left: 3px solid #fff;
		left: calc(35px - 1.5px); /* 円幅の半分 - ボーダー幅の半分 */
		top: 70px;
	}

	.flow_item_title {
		padding-bottom: 4px;
	}

	.flow_item::before {
		border: 3px solid #fff;
		width: 70px;
		height: 70px;
	}

	.flow_item {
		padding-left: 110px;
	}

	.flow_item:not(:last-of-type) {
		margin-bottom: 40px;
	}
	
	.flow_supplies {
		padding-top: 40px;
	}

	.flow_supplies_list {
		gap: 40px;
	}

	.flow_supplies_box_item::before,
	.flow_supplies_box_item::after {
		height: 40px;
		border: 2px solid #ddd;
	}

	.flow_supplies_box_item::before {
		border-radius: 10px 10px 0 0;
	}

	.flow_supplies_box_item::after {
		border-radius: 0 0 10px 10px;
	}

	.flow_supplies_box_title,
	.flow_supplies_box_body {
		padding: 20px 20px;
	}

	.flow_supplies_box_image {
		border-radius: 6px;
	}

	.flow_supplies_box_body {
		font-size: 13px;
	}

	.flow_supplies_box_item_1 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

	.flow_supplies_box_item_2 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

}


@media (width >= 960px) {
	
	.fees_text_2 a:hover {
		color: #1c6d03;
	}

	.director::after {
		background: url(../img/bg_13.jpg) top left / 250px 250px repeat;
		-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%);
		mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 100%);
		opacity: 0.11;
	}

	.director_content_image {
		border-radius: 20px;
		padding: 6px;
	}

	.director_content_image img {
		border-radius: 14px;
	}

	.director_content_message {
		border-bottom: 2px solid #fff;
	}

	.director_content_message_text span {
		padding: 0px 6px;
		margin: 10px 0;
	}

	.director_content_signature_name {
		padding-top: 15px;
		width: 110px;
	}
	
	.flow_title {
		padding-bottom: 90px;
	}
	
	.flow_supplies {
		padding-top: 90px;
	}

}


@media (960px <= width <= 1279px) {

	.strengths_list {
		flex-wrap: wrap;
		column-gap: 60px;
		row-gap: 60px;
		padding-right: 60px;
		padding-left: 60px;
	}
	
	.strengths_item {
		width: calc(50% - 30px);
	}

	.strengths_item_glow {
		width: 100%;
		height: 100%;
		filter: blur(20px);
		transform: translate(-50%, -50%) rotate(-10deg);
	}

	.strengths_item_content {
		border-radius: 20px;
	}

	.strengths_text {
		padding: 30px 30px;
	}

	.strengths_text {
		letter-spacing: 0.04em;
	}

	.strengths_text_title {
		padding-bottom: 20px;
		font-size: 17px;
		gap: 12px;
		line-height: 1.7;
	}

	.strengths_text_title_dot {
		width: 8px;
		height: 8px;
		flex: 0 0 8px; /* ドットのサイズについて他コードからの影響を受けないようにする */
		margin-top: calc((1em * 1.7 - 8px) / 2); /* ドットの上下中央揃え / ((1em * 行間値 - ドットのサイズ) / 2) */
	}

	.strengths_text_body {
		font-size: 15px;
	}

	.subject_inner {
		letter-spacing: 0.06em;
	}

	.subject_title {
		padding: 0 6px;
		margin-right: 45px;
		font-size: 18px;
	}

	.subject_item {
		width: 120px;
		height: 120px;
		background: url(../img/bg_6.png) repeat top left / auto auto;
		padding: 3px;
	}

	.subject_item:not(:last-of-type) {
		margin-right: 30px;
	}

	.subject_item_japanese .subject_image {
		width: 36%;
		padding-bottom: 34px;
	}

	.subject_item_math .subject_image {
		width: 34%;
		padding-bottom: 34px;
		margin-left: -4px;
	}

	.subject_item_science .subject_image {
		width: 24%;
		padding-bottom: 34px;
	}

	.subject_item_socialstudies .subject_image {
		width: 36%;
		padding-bottom: 34px;
		margin-left: -2px;
	}

	.subject_item_english .subject_image {
		width: 38%;
		padding-bottom: 24px;
	}

	.subject_text {
		bottom: 16px;
	}

	.fees {
		background: url(../img/bg_18.jpg) top left / auto auto repeat;
	}

	.fees_content {
		background: url(../img/bg_grass_1.jpg) top left / auto auto repeat;
		padding: 4px;
		border-radius: 20px;
	}
	
	.fees_content_inner {
		padding: 70px 45px 60px;
		border-radius: 16px;
		letter-spacing: 0.02em;
	}

	.fees_title {
		background: url(../img/bg_grass_1.jpg) center center / cover no-repeat;
		padding: 10px 30px;
		margin-top: -2px; /* ボーダーの高さの半分 */
		font-size: 20px;
	}
	
	.fees_text_1 {
		flex: 0 0 auto; /* コンテンツの幅 */
		padding-right: 45px;
		border-right: 1px solid #ccc;
	}

	.fees_text_1_p_1 {
		padding: 0 6px;
		margin-bottom: 30px;
	}

	.fees_text_1_large {
		padding-right: 0.2em;
		font-size: 38px;
	}

	.fees_text_1_small {
		vertical-align: 2px;
		font-size: 18px;
	}
	
	.fees_text_2 {
		flex: 1 1 auto; /* 残りの幅 */
		min-width: 0; /* 念のためのレイアウト崩れ防止策 */
		padding-left: 45px;
	}

	.fees_text_2_p_1:not(:first-of-type) {
		padding-top: 10px;
		font-size: 15px;
	}

	.director_content {
		gap: 30px;
	}

	.director_content_text {
		font-size: 15px;
		letter-spacing: 0.02em;
	}

	.flow_content {
		background: url(../img/bg_19.jpg) top left / auto auto repeat;
		background-attachment: fixed;
		padding-right: 60px;
		padding-left: 60px;
		border-radius: 20px;
	}

	.flow_list,
	.flow_supplies {
		letter-spacing: 0.06em;
	}

	.flow_item:not(:last-of-type)::after {
		height: 110%;
		border-left: 3px solid #fff;
		left: calc(35px - 1.5px); /* 円幅の半分 - ボーダー幅の半分 */
		top: 70px;
	}

	.flow_item_title {
		padding-bottom: 4px;
	}

	.flow_item::before {
		border: 3px solid #fff;
		width: 70px;
		height: 70px;
	}

	.flow_item {
		padding-left: 115px;
	}

	.flow_item:not(:last-of-type) {
		margin-bottom: 45px;
	}

	.flow_supplies_list {
		gap: 45px;
	}

	.flow_supplies_box_item::before,
	.flow_supplies_box_item::after {
		height: 45px;
		border: 2px solid #ddd;
	}

	.flow_supplies_box_item::before {
		border-radius: 20px 20px 0 0;
	}

	.flow_supplies_box_item::after {
		border-radius: 0 0 20px 20px;
	}

	.flow_supplies_box_title,
	.flow_supplies_box_body {
		padding: 30px 30px;
	}

	.flow_supplies_box_image {
		border-radius: 8px;
	}

	.flow_supplies_box_body {
		font-size: 15px;
	}

	.flow_supplies_box_item_1 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

	.flow_supplies_box_item_2 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

}


@media (width >= 1280px) {

	.subject_inner {
		letter-spacing: 0.06em;
	}

	.subject_title {
		padding: 0 6px;
		margin-right: 45px;
		font-size: 20px;
	}

	.subject_item {
		width: 120px;
		height: 120px;
		background: url(../img/bg_6.png) repeat top left / auto auto;
		padding: 3px;
	}

	.subject_item:not(:last-of-type) {
		margin-right: 45px;
	}

	.subject_item_japanese .subject_image {
		width: 36%;
		padding-bottom: 34px;
	}

	.subject_item_english .subject_image {
		width: 38%;
		padding-bottom: 24px;
	}

	.subject_item_math .subject_image {
		width: 34%;
		padding-bottom: 34px;
		margin-left: -4px;
	}

	.subject_item_science .subject_image {
		width: 24%;
		padding-bottom: 34px;
	}

	.subject_item_socialstudies .subject_image {
		width: 36%;
		padding-bottom: 34px;
		margin-left: -2px;
	}

	.subject_text {
		bottom: 16px;
	}

	.fees {
		background: url(../img/bg_18.jpg) top left / auto auto repeat;
	}

	.fees_content {
		background: url(../img/bg_grass_1.jpg) top left / auto auto repeat;
		padding: 4px;
		border-radius: 20px;
	}

	.fees_title {
		background: url(../img/bg_grass_1.jpg) center center / cover no-repeat;
		padding: 10px 30px;
		margin-top: -2px; /* ボーダーの高さの半分 */
		font-size: 20px;
	}

	.fees_text_1_p_1 {
		padding: 0 6px;
		margin-bottom: 30px;
	}

	.fees_text_1_large {
		padding-right: 0.2em;
		font-size: 46px;
	}

	.fees_text_1_small {
		vertical-align: 3px;
		font-size: 20px;
	}

	.fees_text_2_p_1:not(:first-of-type) {
		padding-top: 10px;
		font-size: 15px;
	}

	.director_content_text {
		letter-spacing: 0.06em;
	}

	.flow_content {
		background: url(../img/bg_19.jpg) top left / auto auto repeat;
		background-attachment: fixed;
		padding-right: 90px;
		padding-left: 90px;
		border-radius: 20px;
	}

	.flow_list,
	.flow_supplies {
		letter-spacing: 0.06em;
	}

	.flow_item:not(:last-of-type)::after {
		height: 110%;
		border-left: 3px solid #fff;
		left: calc(35px - 1.5px); /* 円幅の半分 - ボーダー幅の半分 */
		top: 70px;
	}

	.flow_item_title {
		padding-bottom: 4px;
	}

	.flow_item::before {
		border: 3px solid #fff;
		width: 70px;
		height: 70px;
	}

	.flow_item {
		padding-left: 115px;
	}

	.flow_item:not(:last-of-type) {
		margin-bottom: 45px;
	}

	.flow_supplies_list {
		gap: 45px;
	}

	.flow_supplies_box_item::before,
	.flow_supplies_box_item::after {
		height: 45px;
		border: 2px solid #ddd;
	}

	.flow_supplies_box_item::before {
		border-radius: 20px 20px 0 0;
	}

	.flow_supplies_box_item::after {
		border-radius: 0 0 20px 20px;
	}

	.flow_supplies_box_title,
	.flow_supplies_box_body {
		padding: 30px 30px;
	}

	.flow_supplies_box_image {
		border-radius: 8px;
	}

	.flow_supplies_box_body {
		font-size: 15px;
	}

	.flow_supplies_box_item_1 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

	.flow_supplies_box_item_2 .flow_supplies_box_title_emoji {
		padding-left: 0.4em;
		vertical-align: 0.5px;
	}

}


@media (1280px <= width <= 1535px) {

	.strengths_list {
		gap: 67.5px;
		padding-right: 67.5px;
		padding-left: 67.5px;
	}

	.strengths_item {
		flex: 1;
	}

	.strengths_item_glow {
		width: 100%;
		height: 100%;
		filter: blur(20px);
		transform: translate(-50%, -50%) rotate(-5deg);
	}

	.strengths_item_content {
		border-radius: 20px;
	}

	.strengths_text {
		padding: 30px 30px;
	}

	.strengths_text {
		letter-spacing: 0.04em;
	}

	.strengths_text_title {
		padding-bottom: 20px;
		font-size: 17px;
		gap: 12px;
		line-height: 1.7;
	}

	.strengths_text_title_dot {
		width: 8px;
		height: 8px;
		flex: 0 0 8px; /* ドットのサイズについて他コードからの影響を受けないようにする */
		margin-top: calc((1em * 1.7 - 8px) / 2); /* ドットの上下中央揃え / ((1em * 行間値 - ドットのサイズ) / 2) */
	}

	.strengths_text_body {
		font-size: 14px;
	}

	.fees_content_inner {
		padding: 70px 40px 60px;
		border-radius: 16px;
		letter-spacing: 0.06em;
	}

	.fees_text_1 {
		flex: 0 0 auto; /* コンテンツの幅 */
		padding-right: 40px;
		border-right: 1px solid #ccc;
	}

	.fees_text_2 {
		flex: 1 1 auto; /* 残りの幅 */
		min-width: 0; /* 念のためのレイアウト崩れ防止策 */
		padding-left: 40px;
	}
	
	.director_content {
		gap: 40px;
	}

}


@media (1536px <= width <= 1919px) {

	.strengths_list {
		gap: 67.5px;
		padding-right: 67.5px;
		padding-left: 67.5px;
	}

	.strengths_item {
		flex: 1;
	}

	.strengths_item_glow {
		width: 100%;
		height: 100%;
		filter: blur(30px);
		transform: translate(-50%, -50%) rotate(-5deg);
	}

	.strengths_item_content {
		border-radius: 20px;
	}

	.strengths_text {
		padding: 30px 30px;
	}

	.strengths_text {
		letter-spacing: 0.04em;
	}

	.strengths_text_title {
		padding-bottom: 20px;
		font-size: 17px;
		gap: 12px;
		line-height: 1.7;
	}

	.strengths_text_title_dot {
		width: 8px;
		height: 8px;
		flex: 0 0 8px; /* ドットのサイズについて他コードからの影響を受けないようにする */
		margin-top: calc((1em * 1.7 - 8px) / 2); /* ドットの上下中央揃え / ((1em * 行間値 - ドットのサイズ) / 2) */
	}

	.strengths_text_body {
		font-size: 15px;
	}

	.fees_content_inner {
		padding: 70px 60px 60px;
		border-radius: 16px;
		letter-spacing: 0.06em;
	}

	.fees_text_1 {
		flex: 0 0 auto; /* コンテンツの幅 */
		padding-right: 45px;
		border-right: 1px solid #ccc;
	}

	.fees_text_2 {
		flex: 1 1 auto; /* 残りの幅 */
		min-width: 0; /* 念のためのレイアウト崩れ防止策 */
		padding-left: 45px;
	}
	
	.director_content {
		gap: 67.5px;
	}

	.director_content_image,
	.director_content_text {
		flex: 1;
	}

}


@media (width >= 1920px) {

	.strengths_list {
		gap: 135px;
		padding-right: 135px;
		padding-left: 135px;
	}

	.strengths_item {
		flex: 1;
	}

	.strengths_item_glow {
		width: 108%;
		height: 108%;
		filter: blur(30px);
		transform: translate(-50%, -50%) rotate(-5deg);
	}

	.strengths_item_content {
		border-radius: 20px;
	}

	.strengths_text {
		padding: 30px 30px;
	}

	.strengths_text {
		letter-spacing: 0.06em;
	}

	.strengths_text_title {
		padding-bottom: 20px;
		font-size: 20px;
		gap: 16px;
		line-height: 1.7;
	}

	.strengths_text_title_dot {
		width: 10px;
		height: 10px;
		flex: 0 0 10px; /* ドットのサイズについて他コードからの影響を受けないようにする */
		margin-top: calc((1em * 1.7 - 10px) / 2); /* ドットの上下中央揃え / ((1em * 行間値 - ドットのサイズ) / 2) */
	}

	.strengths_text_body {
		font-size: 16px;
	}

	.fees_content_inner {
		padding: 70px 60px 60px;
		border-radius: 16px;
		letter-spacing: 0.06em;
	}

	.fees_text_1 {
		flex: 0 0 auto; /* コンテンツの幅 */
		padding-right: 45px;
		border-right: 1px solid #ccc;
	}

	.fees_text_2 {
		flex: 1 1 auto; /* 残りの幅 */
		min-width: 0; /* 念のためのレイアウト崩れ防止策 */
		padding-left: 45px;
	}
	
	.director_content {
		gap: 90px;
	}

	.director_content_image,
	.director_content_text {
		flex: 1;
	}
	
}
