@charset "UTF-8";



/* -------------------------------------------

header

------------------------------------------- */
header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem 2rem;
}
@media screen and (max-width: 768px) {
	header {
		justify-content: center;
		height: 6rem;
	}
}
/* h1 */
h1 a {
	display: flex;
	align-items: center;
}
h1 img:nth-of-type(1) {
	width: 22rem;
}
h1 img:nth-of-type(2) {
	width: 5rem;
}
@media screen and (max-width: 768px) {
	h1 img:nth-of-type(1) {
		width: 20rem;
	}
	h1 img:nth-of-type(2) {
		width: 4rem;
	}
}
/* 開講記念受講料10万円OFF */
header > div {
	display: flex;
	align-items: center;
}
.cp {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 500;
	font-size: 1.6rem;
	line-height: 1.3;
	text-align: center;
	margin-right: 2rem;
}
.cp strong {
	font-size: 2.4rem;
}
.cp::before,
.cp::after {
	content: "";
	width: 0.15rem;
	height: 4rem;
	background: var(--grey);
	margin-top: 0.8rem;
}
.cp::before {
	transform: rotate(-30deg);
	margin-right: 1rem;
}
.cp::after {
	transform: rotate(30deg);
	margin-left: 0.6rem;
}
@media screen and (max-width: 768px) {

}



/* -------------------------------------------

btn

------------------------------------------- */
.cv-btn {
	display: flex;
	font-weight: 500;
}
.cv-btn li:not(:last-child) {
	margin-right: 0.5rem;
}
.cv-btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.3rem;
	border-radius: 10rem;
	color: #fff;
}
.cv-btn span {
	display: flex;
	align-items: center;
	justify-content: center;
	border: solid 0.12rem #fff;
	height: 4.4rem;
	padding: 0 2rem 0.1rem 2rem;
	border-radius: 10rem;
}
.cv-btn span img {
	width: 2.4rem;
	margin-right: 0.8rem;
}
.cv-btn li:nth-child(1) a {
	background: linear-gradient(to top, #bf3d57, #d6617b);
}
.cv-btn li:nth-child(2) a {
	background: linear-gradient(to top, #a8c54e, #c2dc6a);
}



/* -------------------------------------------

kv

------------------------------------------- */
.kv {
	position: relative;
}
.kv .wrap {
	width: 56rem;
	position: absolute;
	left: calc(50% - 28rem);
	bottom: 13rem;
	z-index: 10;
}
.kv-img {
	display: flex;
}
.kv-img figure {
	width: calc(100% / 3);
}
@media screen and (max-width: 768px) {
	.kv .wrap {
		width: 95%;
		left: 2.5%;
		bottom: 2rem;
	}
	.swiper-slide img {
		height: calc(100dvh - 6rem);
		object-fit: cover;
		object-position: top;
	}
}



/* -------------------------------------------

feature

------------------------------------------- */
.feature {
	background: #F5F5F5;
}
/* ul */
.feature ul li {
	background: #fff;
	border: 0.25rem solid var(--navy);ight, #8dd5f1, #6fcdc4) 1;
}
.feature ul li:not(:last-child) {
	margin-bottom: 4rem;
}
.feature ul li:not(:last-child) {
	padding: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.feature ul li:not(:last-child) > figure {
	width: 45%;
}
.feature ul li:not(:last-child) > dl {
	width: 52%;
}
.feature ul li:nth-child(2) {
	flex-direction: row-reverse;
}
.feature ul li:not(:last-child) dt {
	display: inline-block;
	color: #fff;
	background: linear-gradient(to right, var(--navy), #374d9f);
	font-weight: 500;
	font-size: 1.6rem;
	margin-bottom: 1.5rem;
	padding: 0.5rem 1.2rem 0.6rem 1.2rem;
}
.feature ul li:last-child {
	padding: 3rem;
}
.feature ul li:last-child h3 {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-weight: 500;
	font-size: 2.2rem;
	margin-bottom: 3rem;
}
.feature ul li:last-child h3 span {
	background: linear-gradient(to right, var(--navy), #374d9f);
	color: #fff;
	font-size: 1.4rem;
	padding: 0.5rem 1.2rem 0.6rem 1.2rem;
	margin-top: 1rem;
}
.feature ul li:last-child > figure {
	width: 90%;
	margin: 0 auto 2rem auto;
}
.feature ul li:last-child > dl {
	width: 90%;
	margin: 0 auto;
}
.feature ul li:last-child .wrap {
	display: flex;
	justify-content: space-between;
	margin: 4rem 0;
}
.feature ul li:last-child .wrap > * {
	width: 48%;
}
.feature ul li:last-child .wrap.reverse {
	flex-direction: row-reverse;
	margin: 0 auto 4rem auto;
}
.feature ul li:last-child dl dt {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.8rem;
	font-weight: 500;
	margin-bottom: 1.5rem;
	line-height: 1.5;
}
.feature ul li:last-child dl dt::before {
	content: "";
	width: 6rem;
	height: 0.15rem;
	background: var(--yel);
	margin-right: 1rem;
}
.feature ul li:last-child .wrap dt {
	justify-content: flex-start;
}
@media screen and (max-width: 768px) {
	.feature ul li:not(:last-child) {
		margin-bottom: 2rem;
	}
	.feature ul li:not(:last-child) {
		padding: 2rem;
		display: block;
	}
	.feature ul li:not(:last-child) > figure {
		width: 100%;
		margin-bottom: 2rem;
	}
	.feature ul li:not(:last-child) > dl {
		width: 100%;
	}
	.feature ul li:nth-child(2) {
		flex-direction: row-reverse;
	}
	.feature ul li:last-child {
		padding: 2rem;
	}
	.feature ul li:last-child h3 {
		text-align: center;
	}
	.feature ul li:last-child h3 span {
		padding: 0.5rem 3rem 0.6rem 3rem;
	}
	.feature ul li:last-child > figure {
		width: 100%;
	}
	.feature ul li:last-child > dl {
		width: 100%;
	}
	.feature ul li:last-child .wrap {
		display: block;
	}
	.feature ul li:last-child .wrap > * {
		width: 100%;
	}
	.feature ul li:last-child .wrap > figure {
		margin-bottom: 1.5rem;
	}
	.feature ul li:last-child dl dt {
		font-size: 1.7rem;
	}
	.feature ul li:last-child dl dt::before {
		width: 2rem;
	}
}



/* -------------------------------------------

reason

------------------------------------------- */
.reason h2 > span:nth-child(2) {
	background: var(--navy);
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1.6rem 2.5rem 1.4rem 2.5rem;
	font-size: 1.8rem;
	position: relative;
	line-height: 1.2;
	color: #fff;
}
.reason h2 > span:nth-child(2)::before {
	content: "";
	width: 0;
	height: 0;
	border-left: 1rem solid transparent;
	border-right: 1rem solid transparent;
	border-top: 1.5rem solid var(--navy);
	position: absolute;
	left: calc(50% - 1rem);
	bottom: -1.4rem;
}
.reason h2 > span:nth-child(2) strong {
	font-size: 2.6rem;
}
.reason h2 > span:nth-child(2) strong i {
	font-size: 3.2rem;
}
/* ul */
.reason ul li {
	position: relative;
	width: calc(100% - 5rem);
	margin-bottom: 8rem;
}
.reason ul li:last-child {
	margin-bottom: 6rem;
}
.reason ul li > div {
	background: #fff;
	border: solid 0.2rem #DCDCEA;
	box-shadow: 0 0 1.5rem rgba(0,0,0,0.1);
	padding: 2rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	z-index: 10;
}
.reason ul li:nth-child(2) {
	margin-left: auto;
}
.reason ul li:nth-child(3) > div {
	flex-direction: row-reverse;
}
.reason ul li > div > figure {
	width: 40%;
}
.reason ul li > div > div {
	width: 60%;
	padding: 0 4rem;
	position: relative;
}
.reason ul li span {
	display: block;
	position: absolute;
	right: -5rem;
	top: -10.2rem;
	width: 18rem;
}
.reason dt {
	font-size: 1.8rem;
	font-weight: 500;
	margin-bottom: 1.5rem;
	line-height: 1.4;
}
.reason dt strong {
	color: var(--navy);
	font-size: 2.2rem;
}
/* bg */
.reason ul li::before {
	content: "";
	width: 100%;
	height: calc(100% + 4rem);
	position: absolute;
	top: 0.7rem;
}
.reason ul li:nth-child(1):before {
	right: -5rem;
	background: #a1261d;
}
.reason ul li:nth-child(2):before {
	left: -5rem;
	background: var(--navy);
}
.reason ul li:nth-child(3):before {
	right: -5rem;
	background: var(--navy);
}
/* point */
.reason ul li:nth-child(2):after {
	content: "POINT 02";
	left: -5rem;
}
.reason ul li:nth-child(3):after {
	content: "POINT 03";
	right: -5rem;
}
.reason ul li:nth-child(2):after,
.reason ul li:nth-child(3):after {
	width: 5rem;
	display: flex;
	align-items: center;
	color: #E6D401;
	position: absolute;
	writing-mode: vertical-lr;
	white-space: nowrap;
	top: 5rem;
	letter-spacing: 0.1em;
	font-size: 1.8rem;
}
@media screen and (max-width: 768px) {
	.reason ul li {
		position: relative;
		width: calc(100% - 5rem);
		margin-bottom: 8rem;
	}
	.reason ul li:last-child {
		margin-bottom: 6rem;
	}
	.reason ul li > div {
		display: block;
	}
	.reason ul li > div > figure {
		width: 100%;
		margin-bottom: 1.5rem;
	}
	.reason ul li > div > div {
		width: 100%;
		padding: 0;
	}
	.reason ul li span {
		right: -6rem;
		top: -25rem;
		width: 16rem;
	}
	.reason dt {
		margin-bottom: 1rem;
		line-height: 1.4;
	}
}



/* -------------------------------------------

profile

------------------------------------------- */
.profile {
	background: #F5F5F5;
}
/* ul */
.profile > ul > li {
	background: #fff;
	padding: 4rem;
	border: solid 0.25rem var(--navy);
}
.profile > ul > li:not(:last-child) {
	margin-bottom: 4rem;
}
.profile .wrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}
.profile .wrap > figure {
	width: 35%;
}
.profile .wrap > div {
	width: 62%;
}
@media screen and (max-width: 768px) {
	.profile > ul > li {
		padding: 2rem;
	}
	.profile > ul > li:not(:last-child) {
		margin-bottom: 2rem;
	}
	.profile .wrap {
		display: block;
	}
	.profile .wrap > figure {
		width: 100%;
		margin-bottom: 2rem;
	}
	.profile .wrap > div {
		width: 100%;
	}
}
/* figure */
.profile figure {
	box-shadow: -0.9rem -0.9rem 0 var(--navy);
}
@media screen and (max-width: 768px) {
	.profile figure {
		box-shadow: none;
	}
}
/* h3 */
.profile h3 {
	display: flex;
	align-items: flex-end;
	font-weight: 500;
	border-bottom: solid 0.25rem var(--navy);
	padding-bottom: 1rem;
	margin-bottom: 2rem;
}
.profile h3 > span:nth-child(1) {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: var(--navy);
	font-size: 2.4rem;
	margin-right: 2rem
}
.profile h3 > span:nth-child(1) i {
	font-size: 1.1rem;
}
.profile h3 > span:nth-child(2) {
	font-size: 1.7rem;
	margin-bottom: 0.4rem;
}
.profile h3 > span:nth-child(2)::before,
.profile h3 > span:nth-child(2)::after {
	color: var(--yel);
}
.profile h3 > span:nth-child(2)::before {
	content: "“";
}
.profile h3 > span:nth-child(2)::after {
	content: "”";
}
@media screen and (max-width: 768px) {
	.profile h3 {
		flex-direction: column;
		align-items: center;
	}
	.profile h3 > span:nth-child(1) {
		margin-right: 0;
		margin-bottom: 1rem;
		font-size: 3rem;
	}
	.profile h3 > span:nth-child(1) i {
		font-size: 1.2rem;
	}
	.profile h3 > span:nth-child(2) {
		font-size: 1.8rem;
		text-align: center;
		margin-bottom: 0;
	}
}
/* msg */
.profile-msg {
	margin-top: 2rem;
}
.profile-msg dt {
	display: inline-block;
	color: #fff;
	background: var(--navy);
	font-weight: 500;
	margin-bottom: 1rem;
	padding: 0.8rem 2rem 0.9rem 2rem;
}
@media screen and (max-width: 768px) {
	.profile-msg {
		margin-top: 3rem;
	}
}
/* works */
.profile-works {
	margin-top: -5rem;
}
@media screen and (max-width: 768px) {
	.profile-works {
		margin-top: 3rem;
	}
}
.profile-works > dt {
	color: var(--navy);
	font-size: 1.8rem;
	font-weight: 500;
	margin-bottom: 1rem;
}
.profile-works > dd > dl dt {
	display: inline-block;
	color: #fff;
	background: #6C6C70;
	font-weight: 500;
	margin-bottom: 1rem;
	padding: 0.8rem 2rem 0.9rem 2rem;
}
.profile-works > dd > dl dd:not(:last-of-type) {
	margin-bottom: 2rem;
}



/* -------------------------------------------

appeal

------------------------------------------- */
.appeal > div {
	border: solid 0.15rem var(--grey);
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 8rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.4;
	font-size: 2.0rem;
	padding-bottom: 0.15rem;
}
@media screen and (max-width: 768px) {
	.appeal > div {
		text-align: center;
		height: 14rem;
		font-size: 1.9rem;
		line-height: 1.7;
	}
}
.appeal > div::before,
.appeal > div::after,
.appeal > div > span::before,
.appeal > div > span::after {
	content: "";
	width: 3rem;
	height: 1.5rem;
	position: absolute;
	z-index: 10;
}
.appeal > div::before {
	border-top: solid 0.6rem var(--yel);
	border-left: solid 0.6rem var(--yel);
	left: -0.3rem;
	top: -0.3rem;
}
.appeal > div::after {
	border-right: solid 0.6rem var(--yel);
	border-bottom: solid 0.6rem var(--yel);
	right: -0.3rem;
	bottom: -0.3rem;
}
.appeal > div > span::before {
	border-top: solid 0.6rem var(--navy);
	border-right: solid 0.6rem var(--navy);
	right: -0.3rem;
	top: -0.3rem;
}
.appeal > div > span::after {
	border-left: solid 0.6rem var(--navy);
	border-bottom: solid 0.6rem var(--navy);
	left: -0.3rem;
	bottom: -0.3rem;
}




/* -------------------------------------------

course

------------------------------------------- */
.course {
	background: url(../img/course-bg-1.jpg) no-repeat center / cover;
}
/* ul */
.course > ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.course > ul > li {
	width: 31.5%;
	background: #fff;	
	border-radius: 2rem;
	box-shadow: 0 0.3rem 0.5rem rgba(0,0,0,0.15);
}
.course > ul > li:nth-child(1) {
	width: 100%;
	margin-bottom: 2.5rem;
}
.course dt {
	background: var(--navy);
	color: #fff;
	border-radius: 1.9rem 1.9rem 0 0;
	padding: 1.5rem 0 1.6rem 0;
	font-weight: 500;
	font-size: 1.8rem;
	text-align: center;
}
.course > ul > li:nth-child(1) dt {
	display: flex;
	align-items: center;
	justify-content: center;
}
.course > ul > li:nth-child(1) dt > span:nth-child(1) {
	margin-right: 2rem;
	font-size: 2.4rem;
	border: solid 0.15rem #fff;
	padding: 0 1.5rem;
}
.course > ul > li:nth-child(1) dt > span:nth-child(2) {
	text-align: left;
}
.course > ul > li:nth-child(1) dd {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-weight: 500;
	line-height: 1;
}
.course > ul > li:nth-child(1) dd span {
	color: var(--navy);
}
.course > ul > li:nth-child(1) dd > span:nth-child(1) {
	display: flex;
}
.course > ul > li:nth-child(1) dd > span:nth-child(1) {
	font-weight: 900;
	font-size: 7.2rem;
	line-height: 0.8;
}
.course > ul > li:nth-child(1) dd > span:nth-child(1) > span {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: 4.4rem;
	margin-left: -0.5rem;
	margin-top: -1.6rem;
}
.course > ul > li:nth-child(1) dd > span:nth-child(1) > span i {
	font-size: 1.6rem;
	margin-bottom: 0.6rem;
}
.course > ul > li:nth-child(1) dd > span:nth-child(2) {
	font-size: 2.2rem;
	margin-top: 2rem;
}
.course dd {
	padding: 2rem 3rem;
}
.course dd ul {
	margin-bottom: 2rem;
	font-weight: 500;
	font-size: 1.8rem;
}
.course dd ul li {
	display: flex;
	align-items: center;
}
.course dd ul li:not(:last-child) {
	margin-bottom: 0.8rem;
}
.course dd ul li i {
	color: var(--yel);
	font-size: 2rem;
	margin-right: 1rem;
}
.course dd span {
	font-size: 1.2rem;
	color: #4D4D4D;
}
.course dd span i {
	display: block;
	margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
	.course > ul {
		display: block;
	}
	.course > ul > li {
		width: 100%;
	}
	.course > ul > li:nth-child(1) {
		width: 100%;
		margin-bottom: 2rem;
	}
	.course > ul > li:not(:last-child) {
		margin-bottom: 2rem;
	}
	.course dt {
		font-size: 2rem;
	}
	.course > ul > li:nth-child(1) dt {
		flex-direction: column;
	}
	.course > ul > li:nth-child(1) dt > span:nth-child(1) {
		margin-right: 0;
		margin-bottom: 0.8rem;
		font-size: 2.2rem;
	}
	.course > ul > li:nth-child(1) dt > span:nth-child(2) {
		text-align: left;
		padding: 0;
		font-size: 1.3rem;
	}
	.course > ul > li:nth-child(1) dd > span:nth-child(1) {
		font-size: 5.6rem;
	}
	.course > ul > li:nth-child(1) dd > span:nth-child(1) > span {
		font-size: 3.2rem;
		margin-left: -0.7rem;
		margin-top: -1.7rem;
	}
}



/* -------------------------------------------

schedule

------------------------------------------- */
.schedule .wrap {
	background: #F2F6F5;
	padding: 4rem;
}
.schedule ul {
	display: flex;
	justify-content: space-between;
	background: url(../img/schedule-bg-1.png) no-repeat center top 16rem;
	background-size: 5.5rem auto;
}
.schedule ul li {
	width: 41.6%;
}
.schedule dt {
	line-height: 1;
	font-size: 2.4rem;
	font-weight: 500;
	margin-bottom: 1.5rem;
	text-align: center;
}
.schedule figcaption {
	background: var(--navy);
	color: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2rem;
	height: 7.2rem;
	margin-bottom: 1rem;
	padding-bottom: 0.15rem;
}
@media screen and (max-width: 768px) {
	.schedule .wrap {
		padding: 2rem;
	}
	.schedule ul {
		display: block;
		background: none;
	}
	.schedule ul li {
		width: 100%;
	}
	.schedule ul li:not(:last-child) {
		margin-bottom: 4rem;
	}
}



/* -------------------------------------------

access

------------------------------------------- */
.access {
	border: solid 0.25rem var(--navy);
	display: flex;
	align-items: center;
	padding: 3rem 3rem 3rem 6rem;
	margin-bottom: 6rem;
}
.access > div {
	width: 50%;
}
.access > figure {
	width: 50%;
}
.access h2 {
	align-items: flex-start;
	margin-bottom: 3rem;
}
.access address {
	margin-bottom: 2rem;
}
.access .list-group {
	font-size: 1.3rem;
}
.access .list-group li:not(:last-child) {
	margin-bottom: 0;
}
@media screen and (max-width: 768px) {
	.access {
		margin: 0 2rem 6rem 2rem;
		display: block;
		padding: 3rem;
	}
	.access > div {
		width: 100%;
		margin-bottom: 2rem;
	}
	.access > figure {
		width: 100%;
	}
	.access h2 {
		align-items: center;
	}
	.access address {
		margin-bottom: 2rem;
	}
}



/* -------------------------------------------

footer

------------------------------------------- */
footer {
	background: var(--navy);
	color: #fff;
	padding: 4rem 0 16rem 0;
}
footer a {
	color: #fff;
}
footer ul {
	margin-bottom: 1.5rem;
	display: flex;
	justify-content: center;
}
footer ul li:not(:last-child) {
	margin-right: 2rem;
}
footer small {
	display: block;
	font-size: 1.2rem;
	text-align: center;
}
@media screen and (max-width: 768px) {
	footer ul {
		flex-direction: column;
		align-items: center;
		margin-bottom: 4rem;
	}
	footer ul li:not(:last-child) {
		margin-right: 0;
		margin-bottom: 1.5rem;
	}
}



/* -------------------------------------------

fixed

------------------------------------------- */
.fixed {
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 999;
	width: 100%;
	background: #FFFCD6;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 12rem;
	padding-bottom: 0.8rem;
}
.fixed .cp {
	margin-bottom: 0.5rem;
}
.fixed .cv-btn li:not(:last-child) {
	margin-right: 2rem;
}
@media screen and (max-width: 768px) {
	.fixed {
		position: fixed;
		left: 0;
		bottom: 0;
		z-index: 999;
		width: 100%;
		height: 10.5rem;
		padding-bottom: 0.5rem;
	}
	.fixed .cp {
		margin-bottom: 0.2rem;
		font-size: 1.3rem;
	}
	.fixed .cp strong {
		font-size: 1.8rem;
	}
	.fixed .cp::before,
	.fixed .cp::after {
		height: 2.6rem;
	}
	.fixed .cv-btn li:not(:last-child) {
		margin-right: 0.8rem;
	}
	.fixed .cv-btn {
		line-height: 1.25;
	}
	.fixed .cv-btn span {
		height: 4.8rem;
		padding: 0 3rem 0.1rem 3rem;
	}

}