/* -----------------------------------------------
= reset
----------------------------------------------- */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%
}
body, h1, h2, h3, h4, h5, h6, p,
dl, dt, dd, ol, ul, li,
figure, figcaption {
	margin: 0;
	padding: 0;
	font-size: 1em;
	font-weight: normal;
}
ol, ul {
	list-style-type: "";
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
th, td {
	text-align: left;
	font-weight: normal;
	vertical-align: middle;
}
a {
	color: inherit;
	text-decoration: none;
}
a img {
	border: none;
}
img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
button,
textarea {
	margin: 0;
	padding: 0;
	color: inherit;
	border: none;
	border-radius: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	font: inherit;
}
button {
	cursor: pointer;
}
input {
	border: none;
	border-radius: 0;
	font: inherit;
}
select {
	font: inherit;
}
iframe {
	border: none;
}
/* -----------------------------------------------
= variable
----------------------------------------------- */
:root {
	--infant: "Cormorant Infant", serif;
}
/* -----------------------------------------------
= animation
----------------------------------------------- */
.js-inview {
	opacity: 0;
	transition: .8s .4s;
}
.js-inview.is-show {
	opacity: 1;
}
/* -----------------------------------------------
= base
----------------------------------------------- */
body {
	color: #fff;
	background: #123b72;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
	font-weight: 500;
	letter-spacing: .04em;
}
.is-pc {
	display: none;
}
@media print, screen and (min-width: 768px) {/* PC */
.is-pc {
	display: block;
}
.is-sp {
	display: none;
}
}/* @media */
/* -----------------------------------------------
= intro
----------------------------------------------- */
.intro {
	position: relative;
	padding: 28px 18px 25px;
	background: url(../img/index/intro_bg_sp.jpg) no-repeat 50% / cover;
	overflow: hidden;
}
.intro::before,
.intro::after {
	content: "";
	position: absolute;
}
.intro::before {
	top: calc(-216 / 750 * 100vw);
	left: calc(-896 / 750 * 100vw);
	width: calc(1154 / 750 * 100vw);
	height: calc(895 / 750 * 100vw);
	background: url(../img/index/intro_bg_top_sp.png) no-repeat 0 / 100% auto;
}
.intro::after {
	bottom: calc(-172 / 750 * 100vw);
	right: calc(-924 / 750 * 100vw);
	width: calc(1168 / 750 * 100vw);
	height: calc(895 / 750 * 100vw);
	background: url(../img/index/intro_bg_bottom_sp.png) no-repeat 0 / 100% auto;
}
.intro .inner {
	position: relative;
	z-index: 1;
}
.intro h1 {
	margin-bottom: 28px;
	text-align: center;
}
.intro h1 span {
	display: block;
	margin-bottom: 25px;
	font-size: calc(1.6rem / 1.6);
}
.intro h1 img {
	max-width: 327px;
}
.intro h2 {
	position: relative;
	max-width: 340px;
	margin: 0 auto 20px;
	background: url(../img/index/intro_h2_bg_sp.png) no-repeat 50% / 100% auto;
	font-size: calc(1.25rem / 1.6);
	font-style: italic;
	line-height: 25px;
	text-align: center;
}
.intro .lead {
	margin-bottom: 10px;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(23 / 12);
	text-align: center;
	letter-spacing: .08em;
}
.intro .page-link {
	max-width: 340px;
	margin-inline: auto;
}
.intro .page-link li + li {
	margin-top: -5px;
}
.intro .page-link li a {
	display: flex;
	align-items: end;
	position: relative;
	z-index: 1;
	padding-bottom: 18px;
	font-size: calc(1.5rem / 1.6);
}
.intro .page-link li a::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 17px;
	width: 100%;
	height: 1px;
	background: rgba(73,127,199,.5);
}
.intro .page-link li a::after {
	content: "";
	position: absolute;
	left: calc(50% - 30px);
	bottom: 0;
	width: 60px;
	height: 15px;
	background: linear-gradient(transparent, #316ebf);
	clip-path: polygon(0 0,100% 0,50% 100%);
}
.intro .page-link li p:first-child {
	font-style: italic;
	letter-spacing: 0;
}
.intro .page-link li p:first-child span {
	display: inline-block;
	padding-inline: 10px;
	font-family: var(--infant);
	font-size: calc(4rem / 1.6);
	font-weight: 300;
	font-style: italic;
}
.intro .page-link li p:last-child {
	padding-bottom: 5px;
}
.intro.js-inview h1 span,
.intro.js-inview h1 img,
.intro.js-inview h2,
.intro.js-inview .lead,
.intro.js-inview .page-link li {
	opacity: 0;
	transition-duration: .8s;
}
.intro.js-inview.is-show h1 span,
.intro.js-inview.is-show h1 img,
.intro.js-inview.is-show h2,
.intro.js-inview.is-show .lead,
.intro.js-inview.is-show .page-link li {
	opacity: 1;
}
.intro.js-inview h1 span {
	transition-delay: .4s;
}
.intro.js-inview h1 img {
	transition-delay: .6s;
}
.intro.js-inview h2 {
	transition-delay: .8s;
}
.intro .lead {
	transition-delay: 1s;
}
.intro .page-link li:nth-child(1) {
	transition-delay: 1.2s;
}
.intro .page-link li:nth-child(2) {
	transition-delay: 1.4s;
}
.intro .page-link li:nth-child(3) {
	transition-delay: 1.6s;
}
@media print, screen and (min-width: 768px) {/* PC */
.intro {
	padding: 55px 20px 40px;
	background: url(../img/index/intro_bg_pc.jpg) no-repeat 50% / cover;
}
.intro::before {
	top: -78px;
	left: auto;
	right: calc(50% + 280px);
	width: 1242px;
	height: 895px;
	background: url(../img/index/intro_bg_top_pc.png) no-repeat 0 / 100% auto;
}
.intro::after {
	bottom: -87px;
	right: auto;
	left: calc(50% + 247px);
	width: 1303px;
	height: 895px;
	background: url(../img/index/intro_bg_bottom_pc.png) no-repeat 0 / 100% auto;
}
.intro h1 {
	margin-bottom: 35px;
}
.intro h1 span {
	margin-bottom: 30px;
	font-size: calc(2.5rem / 1.6);
}
.intro h1 img {
	max-width: 653px;
}
.intro h2 {
	max-width: none;
	background: url(../img/index/intro_h2_bg_pc.png) no-repeat 50% / 680px auto;
	font-size: calc(2.5rem / 1.6);
	line-height: 50px;
}
.intro .lead {
	margin-bottom: 20px;
	font-size: calc(1.7rem / 1.6);
	line-height: calc(36 / 17);
}
.intro .page-link {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0 40px;
	max-width: 1100px;
	margin-inline: auto;
}
.intro .page-link li a {
	display: block;
	padding-bottom: 35px;
	text-align: center;
}
.intro .page-link li a::before {
	display: none;
}
.intro .page-link li a::after {
	left: calc(50% - 60px);
	width: 120px;
	height: 30px;
}
.intro .page-link li p:first-child {
	margin-bottom: 14px;
	border-bottom: 1px solid rgba(73,127,199,.5);
	font-size: calc(3rem / 1.6);
}
.intro .page-link li p:first-child span {
	padding-inline: 10px 0;
	font-size: calc(8rem / 1.6);
}
.intro .page-link li p:last-child {
	padding-bottom: 5px;
	font-size: calc(2rem / 1.6);
}
}/* @media */
@media (hover: hover) {
.intro .page-link li a p:first-child {
	transition: border .3s;
}
.intro .page-link li a::after {
	transition: background .3s;
}
.intro .page-link li a:hover p:first-child {
	border-bottom-color: rgba(73,127,199,1);
}
.intro .page-link li a:hover::after {
	background: linear-gradient(transparent, #316ebf), linear-gradient(transparent, #316ebf);
}
}/* @media */
/* -----------------------------------------------
= kv
----------------------------------------------- */
.kv.js-inview {
	opacity: 1;
}
@media print, screen and (min-width: 768px) {/* PC */
.kv {
	position: relative;
	background: #123b72;
	text-align: center;
	overflow: hidden;
}
.kv::after {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% + 88px);
	width: 1060px;
	height: 895px;
	background: url(../img/index/kv_bg_pc.png) no-repeat 0 / 100% auto;
}
.kv img {
	height: 480px;
	object-fit: cover;
}
.kv.js-inview {
	opacity: 0;
}
.kv.js-inview.is-show {
	opacity: 1;
}
}/* @media */
/* -----------------------------------------------
= evolution
----------------------------------------------- */
.evolution {
	position: relative;
	padding: 20px 18px 0;
	background: url(../img/index/evolution_bg_sp.jpg) no-repeat 50% / cover;
	overflow: hidden;
}
.evolution::before,
.evolution::after {
	content: "";
	position: absolute;
	width: calc(1468 / 750 * 100vw);
	height: calc(1069 / 750 * 100vw);
	background: url(../img/index/evolution_bg_top_sp.png) no-repeat 0 / 100% auto;
}
.evolution .inner {
	position: relative;
	z-index: 1;
}
.evolution .num {
	margin-bottom: 12px;
	border-bottom: 1px solid rgba(73,127,199,.5);
	font-size: calc(1.5rem / 1.6);
	font-style: italic;
}
.evolution .num span {
	margin-left: 10px;
	font-family: var(--infant);
	font-size: calc(5rem / 1.6);
	font-weight: 300;
}
.evolution h2 {
	margin-bottom: 10px;
	font-size: calc(2.5rem / 1.6);
	font-style: italic;
}
.evolution .text {
	margin-bottom: 30px;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(25 / 13);
	letter-spacing: .08em;
}
.evolution .text span {
	color: #fff45c;
}
.evolution .courses h3 {
	margin-bottom: 5px;
	font-size: calc(1.7rem / 1.6);
	line-height: 1.5;
	letter-spacing: .08em;
}
.evolution .courses {
	margin-bottom: 20px;
}
.evolution .courses ul {
	margin-bottom: 10px;
	padding: 2px 10px;
	background: rgba(0,21,49,.5);
}
.evolution .courses li {
	position: relative;
	margin-block: 10px;
	padding-left: 16px;
	font-size: calc(1.2rem / 1.6);
	line-height: 1.5;
	letter-spacing: .08em;
}
.evolution .courses li::before {
	content: "";
	position: absolute;
	top: 2px;
	left: 0;
	width: 8px;
	height: 8px;
	background: #0f3469;
	border: 1px solid #2f5d94;
	border-radius: 50%;
}
.evolution .courses li::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 0;
	width: 4px;
	height: 4px;
	margin: 3px;
	background: #fff;
	border-radius: 50%;
}
.evolution .courses .note {
	font-size: calc(1.2rem / 1.6);
	line-height: 1.5;
	letter-spacing: .08em;
}
.evolution .link {
	margin-bottom: 40px;
}
.evolution .link li + li {
	margin-top: 25px;
}
.evolution .link a {
	display: block;
	position: relative;
	padding: 18px;
	background: rgba(1,29,66,.3);
	border: 1px solid #305d97;
	font-size: calc(1.5rem / 1.6);
	text-align: center;
}
.evolution .link a::after {
	content: "";
	position: absolute;
	top: calc(50% - 5px);
	right: 16px;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	border-radius: 1px;
	transform: rotate(45deg);
}
.evolution .img {
	margin-inline: -18px;
}
.evolution .img img {
	position: relative;
}
@media print, screen and (min-width: 768px) {/* PC */
.evolution {
	padding: 0;
}
.evolution::before {
	width: 1444px;
	height: 1069px;
	background: url(../img/index/evolution_bg_top_pc.png) no-repeat 0 / 100% auto;
}
.evolution::after {
	display: none;
}
.evolution .inner {
	display: flex;
	max-width: 1100px;
	margin-inline: auto;
}
.evolution .num {
	margin-bottom: 25px;
	padding-left: 15px;
	font-size: calc(3rem / 1.6);
	line-height: 1;
}
.evolution .num span {
	margin-left: 15px;
	font-size: calc(10rem / 1.6);
}
.evolution h2 {
	margin-bottom: 20px;
	font-size: calc(4rem / 1.6);
	line-height: calc(60 / 40);
}
.evolution .text {
	margin-bottom: 35px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(34 / 16);
}
.evolution .courses h3 {
	margin-bottom: 10px;
	font-size: calc(2.4rem / 1.6);
}
.evolution .courses {
	margin-bottom: 0;
}
.evolution .courses ul {
	margin-bottom: 10px;
	margin-left: -10px;
	padding: 5px 30px;
}
.evolution .courses li {
	margin-block: 15px;
	padding-left: 28px;
	font-size: calc(1.6rem / 1.6);
}
.evolution .courses li::before {
	top: 2px;
	width: 14px;
	height: 14px;
}
.evolution .courses li::after {
	top: 2px;
	width: 6px;
	height: 6px;
	margin: 5px;
}
.evolution .courses .note {
	font-size: calc(1.4rem / 1.6);
}
.evolution .link {
	margin-bottom: 0;
}
.evolution .link li + li {
	margin-top: 35px;
}
.evolution .link a {
	padding: 15px 40px 15px 15px;
	font-size: calc(2rem / 1.6);
}
.evolution .link a::after {
	top: calc(50% - 6px);
	right: 22px;
	width: 12px;
	height: 12px;
}
.evolution .img {
	position: absolute;
	margin: 0;
}
}/* @media */
@media (hover:hover) {
.evolution .link a {
	transition: background .3s;
}
.evolution .link a:hover {
	background: rgba(1,29,66,.6);
}
}/* @media */
/* -----------------------------------------------
= evolution01
----------------------------------------------- */
.evolution01::before {
	top: 0;
	left: calc(-980 / 750 * 100vw);
}
.evolution01::after {
	bottom: calc(-58 / 750 * 100vw);
	right: calc(-1064 / 750 * 100vw);
}
.evolution01 .img img {
	left: calc(-250 / 750 * 100vw);
	width: calc(870 / 750 * 100vw);
}
.evolution01 .set01.js-inview .num,
.evolution01 .set01.js-inview h2,
.evolution01 .set01.js-inview .text,
.evolution01 .set01.js-inview .courses {
	transform: translateX(-50%);
	opacity: 0;
	transition-duration: .8s;
}
.evolution01 .set01.js-inview .num {
	transition-delay: .4s;
}
.evolution01 .set01.js-inview h2 {
	transition-delay: .6s;
}
.evolution01 .set01.js-inview .text {
	transition-delay: .8s;
}
.evolution01 .set01.js-inview .courses {
	transition-delay: 1s;
}
.evolution01 .set02.js-inview,
.evolution01 .img.js-inview {
	transform: translateX(50%);
}
.evolution01 .set01.js-inview.is-show .num,
.evolution01 .set01.js-inview.is-show h2,
.evolution01 .set01.js-inview.is-show .text,
.evolution01 .set01.js-inview.is-show .courses,
.evolution01 .set02.js-inview.is-show,
.evolution01 .img.js-inview.is-show {
	transform: translateX(0);
	opacity: 1;
}
@media print, screen and (min-width: 768px) {/* PC */
.evolution01 {
	min-height: 900px;
	padding: 45px 20px 60px;
	box-sizing: border-box;
	background: url(../img/index/evolution01_bg_pc.jpg) no-repeat 50% / cover;
}
.evolution01::before {
	top: -109px;
	left: auto;
	right: calc(50% - 80px);
}
.evolution01 .inner {
	align-items: end;
	gap: 0 45px;
}
.evolution01 .set01 {
	width: calc(550 / 1100 * 100%);
}
.evolution01 .set02 {
	flex: 1;
}
.evolution01 .link {
	margin: 0 28px 80px;
}
.evolution01 .img {
	top: 0;
	left: calc(50% + 45px);
	width: min(870px, calc(870 / 1300 * 100vw));
}
.evolution01 .img img {
	left: auto;
	width: 100%;
}
.evolution01 .set02.js-inview {
	transform: translateX(0);
}
.evolution01.js-inview .set02 {
	transform: translateX(50%);
	transition-delay: 1s;
}
.evolution01.js-inview.is-show .set02 {
	transform: translateX(0);
	opacity: 1;
}
}/* @media */
/* -----------------------------------------------
= evolution02
----------------------------------------------- */
.evolution02::before {
	top: 0;
	left: calc(-1094 / 750 * 100vw);
}
.evolution02::after {
	bottom: 0;
	right: calc(-1010 / 750 * 100vw);
}
.evolution02 .img img {
	left: calc(-599 / 750 * 100vw);
	width: calc(1242 / 750 * 100vw);
}
.evolution02 .set.js-inview .num,
.evolution02 .set.js-inview h2,
.evolution02 .set.js-inview .text,
.evolution02 .set.js-inview .link {
	transform: translateX(50%);
	opacity: 0;
	transition-duration: .8s;
}
.evolution02 .set.js-inview .num {
	transition-delay: .4s;
}
.evolution02 .set.js-inview h2 {
	transition-delay: .6s;
}
.evolution02 .set.js-inview .text {
	transition-delay: .8s;
}
.evolution02 .set.js-inview .link {
	transition-delay: 1s;
}
.evolution02 .img.js-inview {
	transform: translateX(-50%);
}
.evolution02 .set.js-inview.is-show .num,
.evolution02 .set.js-inview.is-show h2,
.evolution02 .set.js-inview.is-show .text,
.evolution02 .set.js-inview.is-show .link,
.evolution02 .img.js-inview.is-show {
	transform: translateX(0);
	opacity: 1;
}
@media print, screen and (min-width: 768px) {/* PC */
.evolution02 {
	min-height: 721px;
	background: url(../img/index/evolution02_bg_pc.jpg) no-repeat 50% / cover;
}
.evolution02::before {
	top: auto;
	bottom: -76px;
	left: calc(50% - 22px);
}
.evolution02 .inner {
	padding: 45px 20px 85px;
	justify-content: end;
}
.evolution02 .set {
	width: calc(550 / 1100 * 100%);
}
.evolution02 .text {
	margin-bottom: 55px;
}
.evolution02 .img {
	top: 0;
	right: calc(50% + 12px);
	width: min(1242px, calc(1242 / 1300 * 100vw));
}
.evolution02 .img img {
	left: auto;
	width: 100%;
}
.evolution02 .img.js-inview {
	transform: translateX(0);
}
.evolution02.js-inview .img {
	transform: translateX(-50%);
}
.evolution02.js-inview.is-show .img {
	transform: translateX(0);
}
}/* @media */
/* -----------------------------------------------
= evolution03
----------------------------------------------- */
.evolution03 {
	padding-bottom: 60px;
}
.evolution03::before {
	top: 0;
	left: calc(-980 / 750 * 100vw);
}
.evolution03::after {
	bottom: 0;
	right: calc(-1126 / 750 * 100vw);
	width: calc(1610 / 750 * 100vw);
	background: url(../img/index/evolution_bg_bottom_sp.png) no-repeat 0 / 100% auto;
}
.evolution03 .img img {
	left: calc(-85 / 750 * 100vw);
	width: calc(1052 / 750 * 100vw);
}
.evolution03 .set.js-inview .num,
.evolution03 .set.js-inview h2,
.evolution03 .set.js-inview .text,
.evolution03 .set.js-inview .link {
	transform: translateX(-50%);
	opacity: 0;
	transition-duration: .8s;
}
.evolution03 .set.js-inview .num {
	transition-delay: .4s;
}
.evolution03 .set.js-inview h2 {
	transition-delay: .6s;
}
.evolution03 .set.js-inview .text {
	transition-delay: .8s;
}
.evolution03 .set.js-inview .link {
	transition-delay: 1s;
}
.evolution03 .img.js-inview {
	transform: translateX(50%);
}
.evolution03 .set.js-inview.is-show .num,
.evolution03 .set.js-inview.is-show h2,
.evolution03 .set.js-inview.is-show .text,
.evolution03 .set.js-inview.is-show .link,
.evolution03 .img.js-inview.is-show {
	transform: translateX(0);
	opacity: 1;
}
@media print, screen and (min-width: 768px) {/* PC */
.evolution03 {
	min-height: 790px;
	padding-bottom: 0;
	background: url(../img/index/evolution03_bg_pc.jpg) no-repeat 50% / cover;
}
.evolution03::before {
	top: -273px;
	left: auto;
	right: calc(50% - 147px);
	width: 1651px;
	height: 1069px;
	background: url(../img/index/evolution_bg_bottom_pc.png) no-repeat 100% 100% / cover;
}
.evolution03 .inner {
	padding: 70px 20px 80px;
}
.evolution03 .set {
	width: calc(550 / 1100 * 100%);
}
.evolution03 h2 {
	margin-bottom: 30px;
}
.evolution03 .text {
	margin-bottom: 55px;
}
.evolution03 .img {
	top: 0;
	left: calc(50% + 68px);
	width: min(1053px, calc(1053 / 1300 * 100vw));
}
.evolution03 .img img {
	left: auto;
	width: 100%;
}
}/* @media */
/* -----------------------------------------------
= bnr
----------------------------------------------- */
.bnr {
	background: #123b72;
}
@media print, screen and (min-width: 768px) {/* PC */
.bnr {
	max-width: 1100px;
	margin-inline: auto;
	padding: 35px 0 10px;
}
}/* @media */
@media (hover:hover) {
.bnr a img {
	transition: opacity .3s;
}
.bnr a:hover img {
	opacity: .9;
}
}/* @media */
/* -----------------------------------------------
= footer
----------------------------------------------- */
.footer {
	padding: 25px 18px 40px;
	text-align: center;
}
.footer .logo {
	max-width: 171px;
	margin: 0 auto 15px;
}
.footer .copyright {
	font-size: calc(1.3rem / 1.6);
}
.footer .pagetop {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 5;
	width: 40px;
	height: 40px;
	background: #245290;
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
	transition: opacity 1s;
}
.footer .pagetop.is-visible {
	opacity: 1;
	pointer-events: auto;
	transition: opacity 1s;
}
.footer .pagetop::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 11px;
	height: 10px;
	background: #fff;
	clip-path: polygon(0 100%,50% 0,100% 100%);
}
@media print, screen and (min-width: 768px) {/* PC */
.footer {
	padding: 25px 20px 60px;
}
.footer .logo {
	max-width: 251px;
	margin: 0 auto 15px;
}
.footer .copyright {
	font-size: calc(1.6rem / 1.6);
}
.footer .pagetop {
	right: 30px;
	bottom: 30px;
	width: 60px;
	height: 60px;
}
.footer .pagetop::before {
	width: 16px;
	height: 14px;
}
}/* @media */
@media (hover:hover) {
.footer .pagetop {
	transition: background .3s;
}
.footer .pagetop:hover {
	background: #144485;
}
}/* @media */

