@charset "utf-8";

#GHead {
	position: relative;
	z-index: 9000;
}

#Contents {
	padding: 0 0 60px;
}

#wrap {
	padding-top: 0;
}

/*================================================================
admission-mv
================================================================*/
.admission-mv {
	padding: 32px 0;
	background: var(--bg01);
	position: relative;
	overflow: hidden;
}

.admission-mv__sub-title {
	margin: 0;
	position: relative;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--white);
	text-align: center;
	letter-spacing: 0.04em;
	z-index: 2;
}

.entrance-exam-topics2026 h1.admission-mv__title {
	margin: 18px 0 0;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	z-index: 2;
	gap: 10px;
}

.admission-mv__title-label {
	padding: 10px 22px 13px;
	background: var(--gradient);
	display: inline-block;
	font-size: 32px;
	font-weight: 600;
	line-height: 1;
	color: var(--white);
	letter-spacing: 0.04em;
}

.admission-mv__title-main {
	display: inline-block;
	font-size: 48px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--white);
	text-align: center;
	letter-spacing: 0.04em;
}

.admission-mv__deco {
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.admission-mv__deco img {
	width: 100%;
	height: auto;
	display: block;
}

.admission-mv__deco--01 {
	width: 220px;
	top: 58px;
	left: -170px;
}

.admission-mv__deco--02 {
	width: 200px;
	top: -23px;
	right: -170px;
}

/*================================================================
point01
================================================================*/
.point01 {
	--point01-scale: 1;
	margin: 0;
	padding: 48px 0 0;
	background: var(--white);
	overflow: hidden;
}

.point01 .wrap {
	width: calc(100% - 48px);
	margin: auto;
	position: relative;
	z-index: 1;
}

.point01__head {
	margin: 0;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
}

.point01__point {
	width: 100px;
	margin: 0;
}

.point01__point img {
	width: 100%;
	height: auto;
	display: block;
}

.point01__content {
	width: 100%;
	margin: 0;
	padding: 28px 0 0;
	position: relative;
	z-index: 2;
}

.point01__lead {
	width: auto;
	margin: 0 0 0 100px;
	position: relative;
	z-index: 4;
}

.point01__title {
	margin: 0;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	letter-spacing: 0;
}

.point01__title-highlight {
	padding: 0 5px;
	background: linear-gradient(transparent 0, transparent 56%, var(--marker) 56%, var(--marker) 100%);
	display: inline-block;
	line-height: 1;
}

.point01__title em {
	padding: 0 5px;
	background: linear-gradient(transparent 0, transparent 68%, var(--marker) 68%, var(--marker) 100%);
	display: inline-block;
	font-size: 56px;
	font-weight: 600;
	font-style: normal;
	line-height: 0.95;
	color: var(--red);
	letter-spacing: 0;
}

.point01__title small {
	font-size: 30px;
	font-weight: 600;
}

.point01__visual {
	width: 100%;
	height: calc(328px * var(--point01-scale));
	margin: 120px 0 0;
	position: relative;
}

.point01__highlight {
	width: calc(217px * var(--point01-scale));
	height: auto;
	pointer-events: none;
	opacity: 0;
	position: absolute;
	top: calc(-80px * var(--point01-scale));
	left: calc(8px * var(--point01-scale));
	z-index: 4;
	transform: scale(0.86);
	transform-origin: center center;
}

.point01__highlight img {
	width: 100%;
	height: auto;
	display: block;
}

.point01__graph {
	width: 100%;
	height: calc(328px * var(--point01-scale));
	padding: 0;
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
}

.point01__graph-body {
	width: 323px;
	height: 328px;
	display: flex;
	align-items: flex-end;
	transform: scale(var(--point01-scale));
	transform-origin: left bottom;
}

.point01__graph-history {
	width: 104px;
	height: 95px;
	opacity: 0;
	position: relative;
	display: flex;
	align-items: flex-end;
	flex: 0 0 104px;
	transform: translateX(-24px);
	clip-path: inset(0 100% 0 0);
}

.point01__graph-history picture,
.point01__graph-history img {
	width: 100%;
	height: auto;
	display: block;
}

.point01__graph-bar-item {
	position: relative;
	display: flex;
	align-items: flex-end;
	overflow: visible;
}

.point01__graph-bar-item--2024 {
	width: 67px;
	height: 143px;
	flex: 0 0 67px;
}

.point01__graph-bar-item--2025 {
	width: 67px;
	height: 224px;
	margin: 0 0 0 9px;
	flex: 0 0 67px;
}

.point01__graph-bar-item--2026 {
	width: 67px;
	height: 288px;
	margin: 0 0 0 9px;
	flex: 0 0 67px;
}

.point01__graph-bar-mask {
	width: 100%;
	height: 0;
	opacity: 0;
	position: absolute;
	right: 0;
	bottom: 0;
	overflow: hidden;
}

.point01__graph-bar-mask picture {
	width: 100%;
	position: absolute;
	right: 0;
	bottom: 0;
	display: block;
}

.point01__graph-bar-mask img {
	width: 100%;
	height: auto;
	display: block;
}

.point01__graph-value {
	width: 92px;
	margin: 0;
	opacity: 0;
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
}

.point01__graph-value picture,
.point01__graph-value img {
	width: 100%;
	height: auto;
	display: block;
}

.point01__note {
	margin: 32px calc(50% - 50vw) 0;
	padding: 32px;
	background: var(--gray01);
	position: relative;
	display: block;
	z-index: 2;
}

.point01__note-text {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.02em;
}

.point01__note-accent {
	margin: 8px 0 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--secondary);
	letter-spacing: 0.02em;
}

.point01__deco {
	display: none;
}

/*================================================================
point01 animation
================================================================*/
.point01__graph.is-animated .point01__graph-history {
	animation: point01HistoryFlow 0.9s ease forwards;
}

.point01__graph.is-animated .point01__graph-bar-item--2024 .point01__graph-bar-mask {
	animation: point01BarGrow2024 0.55s ease 0.95s forwards;
}

.point01__graph.is-animated .point01__graph-bar-item--2025 .point01__graph-bar-mask {
	animation: point01BarGrow2025 0.55s ease 1.45s forwards;
}

.point01__graph.is-animated .point01__graph-bar-item--2026 .point01__graph-bar-mask {
	animation: point01BarGrow2026 0.55s ease 1.95s forwards;
}

.point01__graph.is-animated .point01__graph-bar-item--2026 .point01__graph-value {
	animation: point01ValueFade 0.45s ease 2.35s forwards;
}

.point01__highlight.is-animated {
	animation: point01HighlightFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes point01HistoryFlow {
	0% {
		opacity: 0;
		transform: translateX(-24px);
		clip-path: inset(0 100% 0 0);
	}

	100% {
		opacity: 1;
		transform: translateX(0);
		clip-path: inset(0 0 0 0);
	}
}

@keyframes point01BarGrow2024 {
	0% {
		height: 0;
		opacity: 0;
	}

	100% {
		height: 143px;
		opacity: 1;
	}
}

@keyframes point01BarGrow2025 {
	0% {
		height: 0;
		opacity: 0;
	}

	100% {
		height: 224px;
		opacity: 1;
	}
}

@keyframes point01BarGrow2026 {
	0% {
		height: 0;
		opacity: 0;
	}

	100% {
		height: 288px;
		opacity: 1;
	}
}

@keyframes point01ValueFade {
	0% {
		opacity: 0;
		transform: translateX(-50%) translateY(12px);
	}

	100% {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

@keyframes point01HighlightFade {
	0% {
		opacity: 0;
		transform: scale(0.86);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

/*================================================================
point02
================================================================*/
.point02 {
	margin: 0;
	padding: 56px 0 0;
	background: var(--white);
	overflow: hidden;
}

.point02 .wrap {
	width: calc(100% - 48px);
	margin: auto;
	position: relative;
	z-index: 1;
}

.point02__content {
	margin: 0;
}

.point02__head {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 8px;
}

.point02__point {
	width: 100px;
	margin: 0;
	flex: 0 0 100px;
}

.point02__point img {
	width: 100%;
	height: auto;
	display: block;
}

.point02__title {
	margin: 0;
	font-size: 30px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	letter-spacing: 0.02em;
}

.point02__title span {
	padding: 0;
	position: relative;
	display: inline-block;
	line-height: 1;
}

.point02__title span::after {
	width: 0;
	height: 16px;
	background: var(--marker);
	position: absolute;
	content: "";
	bottom: -4px;
	left: 0;
	z-index: -1;
}

.point02.is-title-animated .point02__title span::after {
	animation: point02TitleLine 0.6s ease forwards;
}

.point02__cards {
	margin: 24px 0 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.point02__card {
	min-height: 114px;
	padding: 26px 26px 32px;
	background: var(--bg01);
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	box-sizing: border-box;
}

.point02__card-arrow {
	width: 72px;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 0;
}

.point02__card-arrow img {
	width: 100%;
	height: auto;
	display: block;
}

.point02__text {
	padding: 0 0 16px;
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: flex-end;
	z-index: 1;
	gap: 8px;
}

.point02__text::after {
	width: 0;
	height: 8px;
	background: var(--marker);
	position: absolute;
	content: "";
	bottom: 0;
	left: 0;
}

.point02.is-cards-animated .point02__text::after {
	animation: point02CardLine 0.7s ease forwards;
}

.point02__card-name {
	margin: 0;
	font-size: 26px;
	font-weight: 600;
	font-style: italic;
	line-height: 1;
	color: var(--white);
	letter-spacing: 0.01em;
	z-index: 1;
}

.point02__card-value {
	margin: 0;
	font-size: 0;
	line-height: 1;
	white-space: nowrap;
	transform: translate(0, 5px);
}

.point02__card-number {
	font-size: 48px;
	font-weight: 600;
	font-style: italic;
	line-height: 0.9;
	color: var(--marker);
	letter-spacing: -0.02em;
}

.point02__card-unit {
	margin: 0 0 0 2px;
	font-size: 20px;
	font-weight: 600;
	font-style: italic;
	line-height: 1;
	color: var(--marker);
}

.point02__list {
	margin: 36px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	row-gap: 24px;
	column-gap: 0;
}

.point02__item {
	padding: 0 24px 8px 12px;
	position: relative;
	white-space: nowrap;
	box-sizing: border-box;
}

.point02__item::before {
	width: 8px;
	height: 8px;
	background: var(--black);
	position: absolute;
	content: "";
	bottom: 17px;
	left: 0;
	z-index: 1;
}

.point02__item-arrow {
	width: 45px;
	position: absolute;
	right: 16px;
	bottom: 0;
	z-index: 0;
}

.point02__item-arrow img {
	width: 100%;
	height: auto;
	display: block;
}

.point02__item-name,
.point02__item-value {
	position: relative;
	z-index: 1;
}

.point02__item-name {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
}

.point02__item-value {
	margin: 0 0 0 3px;
	font-size: 0;
	line-height: 1;
}

.point02__item-number {
	font-size: 24px;
	font-weight: 600;
	line-height: 1;
	color: var(--red);
	letter-spacing: -0.02em;
}

.point02__item-unit {
	margin: 0 0 0 1px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	color: var(--red);
}

/*================================================================
point02 animation
================================================================*/
@keyframes point02TitleLine {
	0% {
		width: 0;
	}

	100% {
		width: 100%;
	}
}

@keyframes point02CardLine {
	0% {
		width: 0;
	}

	100% {
		width: 100%;
	}
}

/*================================================================
reason
================================================================*/
.reason .back01 {
	padding: 100px 0 0;
	background: var(--primary) url(../img/reason_back01.png) no-repeat center top / auto 150px;
}

.reason .back02 {
	padding: 0;
	background: var(--white) url(../img/reason_back02.png) no-repeat center top / auto 150px;
}

.reason .back02 .reason03 .reason__card {
	margin: 0 auto;
}

/*================================================================
reason heading
================================================================*/
.reason__heading {
	margin: 0 0 56px;
	padding: 0;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	z-index: 3;
}

.reason__section-title {
	width: 100%;
	margin: 0;
	padding: 16px 24px;
	background: var(--gradient);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16);
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	font-size: 26px;
	font-weight: 600;
	line-height: 1;
	color: var(--white);
	letter-spacing: 0.04em;
}

.reason__section-title::after {
	width: 0;
	height: 0;
	border-top: 32px solid #4e92ce;
	border-right: 16px solid transparent;
	border-left: 16px solid transparent;
	position: absolute;
	content: "";
	bottom: -32px;
	left: 50%;
	transform: translateX(-50%);
}

.reason__section-title-main {
	display: block;
}

.reason__section-title-sub {
	margin: 0;
	display: flex;
	justify-content: center;
	align-items: center;
}

.reason__section-title span {
	margin: 0 0 0 4px;
	font-size: 64px;
	line-height: 1;
}

.reason__section-title strong {
	margin: 0;
	font-size: 40px;
	line-height: 1;
}

.reason__head {
	min-height: 106px;
	padding: 16px 0;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	flex: 1 1 auto;
	box-sizing: border-box;
}

.reason__head::after {
	width: 100%;
	height: 2px;
	background: var(--gradient);
	position: absolute;
	content: "";
	bottom: 0;
	left: 0;
}

.reason__lead {
	width: 100%;
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.reason .reason__title {
	margin: 0;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.reason__card {
	width: 100%;
	margin: 0 auto;
	padding: 0 16px;
	opacity: 0;
	background: var(--white);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
	position: relative;
	box-sizing: border-box;
	z-index: 2;
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
	transform: translateY(40px);
}

.reason__card.is-animated {
	opacity: 1;
	transform: translateY(0);
}

.reason__top {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.reason__label {
	width: 80px;
	height: 106px;
	padding: 16px 0 0;
	background: var(--gradient);
	position: relative;
	flex: 0 0 80px;
	color: var(--white);
	text-align: center;
	box-sizing: border-box;
	z-index: 3;
}

.reason__label::after {
	width: 0;
	height: 0;
	border-right: 40px solid transparent;
	border-bottom: 22px solid var(--white);
	border-left: 40px solid transparent;
	position: absolute;
	content: "";
	bottom: 0;
	left: 0;
}

.reason__label span {
	display: block;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.08em;
}

.reason__label strong {
	margin: 4px 0 0;
	display: block;
	font-size: 32px;
	font-weight: 600;
	line-height: 1;
}

.reason__body {
	padding: 32px 0 40px;
}

.reason__text {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.02em;
}

/* reason animation
------------------------------------------------------ */
.reason .js-reason-heading {
	opacity: 0;
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
	transform: translateY(40px);
}

.reason .js-reason-heading.is-animated {
	opacity: 1;
	transform: translateY(0);
}

.reason .js-reason-card {
	opacity: 0;
	transition:
		opacity 0.8s ease,
		transform 0.8s ease;
	transform: translateY(40px);
}

.reason .js-reason-card.is-animated {
	opacity: 1;
	transform: translateY(0);
}

.reason .js-reason-badge {
	opacity: 0;
	transition:
		opacity 0.7s ease,
		transform 0.7s ease;
	transform: scale(0.86);
}

.reason .js-reason-badge.is-animated {
	opacity: 1;
	transform: scale(1);
}

/*================================================================
reason01
================================================================*/
.reason01 {
	--reason01-scale: 1;
	margin: 0;
	position: relative;
}

.reason01__deco {
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.reason01__deco img,
.reason01__visual img,
.reason01__badge img {
	width: 100%;
	height: auto;
	display: block;
}

.reason01__deco--01 {
	width: calc(466px / 2);
	top: 160px;
	left: -180px;
}

.reason01__deco--02 {
	width: calc(171px / 2);
	top: 105px;
	right: -40px;
}

.reason01 .reason__body {
	height: calc(480px * var(--reason01-scale));
	min-height: 0;
	margin: 0;
	padding: 0;
	position: relative;
}

.reason01__stage {
	width: 390px;
	height: 480px;
	position: relative;
	transform: scale(var(--reason01-scale));
	transform-origin: left top;
}

.reason01__visual {
	width: 280px;
	margin: 0;
	position: absolute;
	bottom: 0;
	left: -20px;
	z-index: 0;
}

.reason01__text {
	position: absolute;
	z-index: 2;
}

.reason01__text--01 {
	top: 16px;
	left: 116px;
}

.reason01__text--02 {
	top: 140px;
	left: 167px;
}

.reason01__text--02 .reason01__text-lead {
	margin: 0 0 -8px;
}

.reason01__text--03 {
	top: 226px;
	left: 210px;
}

.reason01__text--03 .reason01__text-lead {
	margin: 0 0 -8px;
}

.reason01__text-lead {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.45;
	white-space: nowrap;
	letter-spacing: 0.04em;
}

.reason01__text-main {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
	letter-spacing: 0.02em;
}

.reason01__marker {
	background: linear-gradient(transparent 0, transparent 58%, #fff100 58%, #fff100 100%);
	display: inline-block;
}

.reason01__red {
	font-size: 28px;
	color: #e9281c;
}

.reason01__equal {
	margin: 8px 0 0;
	font-size: 40px;
	font-weight: 600;
	line-height: 1;
}

.reason01__black-large {
	font-size: 32px;
	line-height: 1;
}

.reason01__text-note {
	margin: 4px 0 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
	letter-spacing: 0.02em;
}

.reason01__source {
	position: absolute;
	bottom: 30px;
	left: 0;
	z-index: 2;
}

.reason01__source p {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.02em;
}

.reason01__badge {
	width: 160px;
	max-width: none;
	opacity: 0;
	position: absolute;
	right: 0;
	bottom: 24px;
	z-index: 2;
	transition:
		opacity 0.7s ease,
		transform 0.7s ease;
	transform: scale(0.86);
}

.reason01__badge.is-animated {
	opacity: 1;
	transform: scale(1);
}

/*================================================================
reason02
================================================================*/
.reason02 {
	margin: 0;
	padding: 56px 0 0;
	position: relative;
}

.reason02__deco {
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.reason02__deco img {
	width: 100%;
	height: auto;
	display: block;
}

.reason02__deco--01 {
	width: calc(460px / 2);
	top: 445px;
	left: -100px;
}

.reason02__deco--02 {
	width: calc(504px / 2);
	top: -125px;
	right: -180px;
}

.reason02__deco--03 {
	width: calc(1183px / 2);
	right: -60px;
	bottom: 40px;
}

.reason02__intro {
	margin: 0;
}

.reason02 .reason02__intro-title {
	margin: 0 0 16px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.04em;
}

.reason02__intro-title span {
	margin: 8px 0 0;
	display: block;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
}

.reason02__intro-title strong {
	margin: 0 0 0 4px;
	font-size: 20px;
}

.reason02 .reason__intro-text {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.85;
	letter-spacing: 0.02em;
}

.reason02__charts {
	margin: 36px 0 0;
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 44px;
}

.reason02__chart {
	text-align: center;
}

.reason02__chart-circle {
	width: 260px;
	height: 260px;
	margin: 0 auto;
	position: relative;
}

.reason02__chart-circle svg {
	width: 100%;
	height: 100%;
	display: block;
	transform: rotate(-90deg);
}

.reason02__chart-track,
.reason02__chart-bar {
	fill: none;
	stroke-width: 36;
}

.reason02__chart-track {
	stroke: #d9d9d9;
}

.reason02__chart-bar {
	transition: stroke-dashoffset 1.5s cubic-bezier(0.22, 1, 0.36, 1);
	stroke-dasharray: 816.814;
	stroke-dashoffset: 816.814;
	stroke-linecap: butt;
}

.reason02__chart-bar--education {
	stroke: #16a8db;
}

.reason02__chart-bar--growth {
	stroke: #5b6ebe;
}

.reason02__chart-bar--admission {
	stroke: #7657a3;
}

.reason02__chart.is-animated .reason02__chart-bar {
	stroke-dashoffset: var(--chart-offset);
}

.reason02__chart-percent {
	margin: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	font-size: 68px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	letter-spacing: -0.04em;
	transform: translate(-50%, -50%);
}

.reason02__chart-percent span {
	font-size: 34px;
	letter-spacing: -0.03em;
}

.reason02__chart-percent--education {
	color: #16a8db;
}

.reason02__chart-percent--growth {
	color: #5b6ebe;
}

.reason02__chart-percent--admission {
	color: #7657a3;
}

.reason02__chart-label {
	width: 260px;
	margin: 20px auto 0;
	padding: 10px 24px;
	border-radius: 999px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--white);
	letter-spacing: 0.08em;
	box-sizing: border-box;
}

.reason02__chart-label--education {
	background: #16a8db;
}

.reason02__chart-label--growth {
	background: #5b6ebe;
}

.reason02__chart-label--admission {
	background: #7657a3;
}

.reason02__chart-text {
	margin: 14px 0 0;
	display: flex;
	justify-content: center;
	font-size: clamp(16px, 4.2vw, 19px);
	font-weight: 600;
	line-height: 1.65;
	text-align: left;
	letter-spacing: 0.01em;
}

.reason02__chart-text p {
	margin: 0;
}

/*================================================================
reason03
================================================================*/
.reason03 {
	margin: 0;
	padding: 56px 0 0;
	position: relative;
}

.reason03__deco {
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.reason03__deco img {
	width: 100%;
	height: auto;
	display: block;
}

.reason03__deco--01 {
	width: calc(215px / 2);
	top: 240px;
	left: -40px;
}

.reason03__deco--02 {
	width: calc(188px / 2);
	top: 400px;
	right: -40px;
}

.reason03 .reason__body {
	padding: 32px 0 40px;
}

.reason03__grid {
	display: block;
}

.reason__left,
.reason__right {
	min-width: 0;
	position: relative;
}

.reason03__photo {
	margin: 32px 0 0;
}

.reason03__photo img {
	width: 100%;
	height: auto;
	display: block;
}

.reason03__figure {
	width: 300px;
	height: 300px;
	margin: 32px auto 0;
	position: relative;
}

.reason03__figure-ring,
.reason03__figure-front {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.reason03__figure-ring {
	opacity: 0;
	z-index: 1;
}

.reason03__figure-ring svg {
	width: 100%;
	height: 100%;
	display: block;
}

.reason03__ring-path {
	opacity: 0;
	fill: none;
	stroke-width: 26;
	stroke-linecap: butt;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}

.reason03__ring-path--left-half {
	stroke: url(#reason03-ring-gradient-left-half);
}

.reason03__ring-path--right-half {
	stroke: url(#reason03-ring-gradient-right-half);
}

.reason03__figure-ring.is-animated {
	opacity: 1;
}

.reason03__figure-ring.is-animated .reason03__ring-path--left-half,
.reason03__figure-ring.is-animated .reason03__ring-path--right-half {
	animation: reason03RingDraw 0.95s ease forwards;
}

.reason03__figure-front {
	opacity: 0;
	z-index: 2;
	transition:
		opacity 0.7s ease,
		transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
	transform: scale(0.86);
	transform-origin: center center;
}

.reason03__figure-front.is-animated {
	opacity: 1;
	transform: scale(1);
}

.reason03__figure-center {
	margin: 0;
	background: linear-gradient(90deg, #18a8db 0%, #6e86d6 52%, #a47bc0 100%);
	-webkit-background-clip: text;
	background-clip: text;
	position: absolute;
	top: 140px;
	left: 50%;
	display: inline-block;
	font-size: 42px;
	font-weight: 600;
	line-height: 1;
	color: transparent;
	letter-spacing: 0.08em;
	transform: translateX(-50%);
	-webkit-text-fill-color: transparent;
}

.reason03__figure-node {
	width: 90px;
	height: 90px;
	margin: 0;
	border-radius: 50%;
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 24px;
	font-weight: 600;
	line-height: 1;
	color: var(--white);
	letter-spacing: 0.04em;
}

.reason03__figure-node--university {
	background: #5f6fc1;
	top: 13px;
	left: 50%;
	transform: translateX(-50%);
}

.reason03__figure-node--company {
	background: #16a8db;
	top: 185px;
	left: 13px;
}

.reason03__figure-node--local {
	background: #7b5aa6;
	top: 185px;
	right: 13px;
}

.reason03__note {
	margin: 24px 0 0;
}

.reason03__note p {
	margin: 0;
	font-size: clamp(17px, 4.5vw, 20px);
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.02em;
}

@keyframes reason03RingDraw {
	0% {
		opacity: 1;
		stroke-dashoffset: 1;
	}

	100% {
		opacity: 1;
		stroke-dashoffset: 0;
	}
}

/*================================================================
reason04
================================================================*/
.reason04 {
	margin: 0;
	padding: 56px 0 0;
	position: relative;
}

.reason04__deco {
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.reason04__deco img {
	width: 100%;
	height: auto;
	display: block;
}

.reason04__deco--01 {
	width: calc(537px / 2);
	top: 150px;
	left: -170px;
}

.reason04__deco--02 {
	width: calc(618px / 2);
	top: -226px;
	right: -111px;
}

.reason04 .reason__body {
	padding: 32px 0 40px;
}

.reason04__grid {
	display: block;
}

.reason04 .reason__text {
	margin: 0;
	font-size: clamp(17px, 4.5vw, 20px);
	font-weight: 600;
	line-height: 1.9;
	letter-spacing: 0.03em;
}

.reason04__photo {
	margin: 32px 0 0;
}

.reason04__photo img {
	width: 100%;
	height: auto;
	display: block;
}

/*================================================================
reason05
================================================================*/
.reason05 {
	margin: 0;
	padding: 56px 0 0;
	position: relative;
}

.reason05__deco {
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

.reason05__deco img {
	width: 100%;
	height: auto;
	display: block;
}

.reason05__deco--01 {
	width: calc(413px / 2);
	bottom: 160px;
	left: -130px;
}

.reason05__deco--02 {
	width: calc(206px / 2);
	right: -59px;
	bottom: 270px;
}

.reason05 .reason__body {
	padding: 32px 0 40px;
}

.reason05__grid {
	display: block;
}

.reason05 .reason__text {
	margin: 0;
	font-size: clamp(17px, 4.5vw, 20px);
	font-weight: 600;
	line-height: 1.9;
	letter-spacing: 0.03em;
}

.reason05__photo {
	margin: 32px 0 0;
}

.reason05__photo img {
	width: 100%;
	height: auto;
	display: block;
}