@charset "UTF-8";
/* ----------------------------------------------
	共通
---------------------------------------------- */
html {
	height: 100%;
	font-size: 10px;
	/* 1rem = 10px */
}

body {
	min-height: 100%;
	font-size: 1.6rem;
	color: #232323;
	font-weight: 400;
	background: #fafafa;
	line-height: 1.7;
}

a {
	color: #0277BD;
	text-decoration: underline;
}

a:hover {
	color: #0277BD;
	text-decoration: none;
}

a.rollover:hover img {
	opacity: 0.8;
}

button, input, textarea,
body {
	/*/
	font-family: 'UD Digi Kyokasho N-R', sans-serif;
/*/
	font-family: 'YakuHanJP_Noto','Noto Sans JP',YuGothic, "Yu Gothic Medium", "Yu Gothic", Meiryo, sans-serif;
}

.yakuhan,
h1, h2, h3, h4, h5, h6 {
	font-family: 'YakuHanJP_Noto', 'Noto Sans JP', sans-serif;
}

i {
	display: inline-block;
	font-family: "Font Awesome 5 Free";
	font-style: normal;
	font-weight: 700;
}

/* -------------------------------------
	各要素の初期設定
---------------------------------------- */
input {
	vertical-align: middle;
}

.ja {
	ime-mode: active;
}

.en {
	ime-mode: inactive;
}

.bold,
em,
strong {
	font-weight: 700;
}

.del,
del {
	text-decoration: line-through;
}

.underline {
	text-decoration: underline;
}

.left {
	text-align: left !important;
}

.right {
	text-align: right !important;
}

.center {
	text-align: center !important;
}

img {
	max-width: 100%;
}

/* -------------------------------------
	汎用パーツ
---------------------------------------- */
.pc {
	display: block !important;
}

.pc_inline {
	display: inline !important;
}

.pc_inline_block {
	display: inline-block !important;
}

.sp {
	display: none !important;
}

.sp_inline {
	display: none !important;
}

.sp_inline_block {
	display: none !important;
}

.red {
	color: #e60033;
}

/* -------------------------------------
	レイアウト初期設定
---------------------------------------- */
.container {
	min-height: 100vh;
	position: relative;
	display: flex;
	flex-direction: column;
}

.content_inner {
	max-width: 1180px;
	padding: 0 50px;
	margin: 0 auto;
}

.content_sub_inner {
	max-width: 1080px;
	padding: 0 35px;
	margin: 0 auto;
}

.section {
	padding-top: 80px;
	margin-bottom: 100px;
}

/* -------------------------------------
	header
---------------------------------------- */
/* -------------------------------------
	footer
---------------------------------------- */
body.scroll footer {
	bottom: 0;
}

.footer {
	z-index: 200;
	position: fixed;
	bottom: -100px;
	left: 0;
	height: 100px;
	border-top: 1px solid #232323;
	width: 100%;
	background-color: #fafafa;
	transition: 0.3s;
}

.footer .-inner {
	display: flex;
	align-items: center;
	height: 100%;
}

.footer .column {
	display: flex;
	max-width: 1080px;
	width: 100%;
	margin: 0 auto;
	justify-content: center;
	padding: 0 15px;
	align-items: center;
}

.footer .column .-txt {
	width: 23%;
	display: flex;
	justify-content: flex-end;
	padding-right: 20px;
	line-height: 1.35;
	font-weight: 700;
}

.footer .column .-btn {
	flex: 1;
}

.footer .column .-qr {
	width: 23%;
	text-align: right;
}

.footer .column .-qr img {
	max-width: 90px;
}

.cv_button {
	max-width: 516px;
	background: #06C755;
	color: #fafafa;
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	line-height: 1;
	height: 70px;
	font-size: 2.6rem;
	border-radius: 70px;
	font-weight: 700;
	margin: 0 auto;
	position: relative;
}

.cv_button:hover {
	color: #fafafa;
}

.cv_button:hover:after {
	right: 20px;
}

.cv_button:after {
	content: "";
	width: 19px;
	height: 19px;
	background: url(../images/arrow_right.svg) no-repeat center center;
	background-size: cover;
	display: block;
	position: absolute;
	right: 30px;
	top: 50%;
	transform: translateY(-50%);
	transition: 0.3s;
}

/* -------------------------------------
	slider
---------------------------------------- */
.main_visual {
	background: url(../images/bg_mainvisual.png) repeat #fafafa;
}

.main_visual .-inner {
	max-width: 1440px;
	margin: 0 auto;
}

.slide {
	background-size: cover;
}

.slide01 {
	background-image: url(../images/mainvisual_bg01.jpg);
}

.slide02 {
	background-color: #fafafa;
}

.slide03 {
	background-color: #fafafa;
}

.slick-dots {
	display: flex;
	position: absolute;
	right: 10px;
	bottom: 10px;
}

.slick-dots li {
	margin: 0 3px;
}

.slick-dots button {
	text-indent: -9999px;
	width: 10px;
	height: 10px;
	display: block;
	border-radius: 10px;
	background: #232323;
	border: 2px solid #232323;
	cursor: pointer;
}

.slick-dots .slick-active button {
	background: #fafafa;
}

.slide-arrow {
	background: rgba(110, 115, 115, 0.4);
	cursor: pointer;
	width: 40px;
	height: 80px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 10px;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

.prev-arrow {
	left: 10px;
}

.prev-arrow img {
	transform: rotate(180deg);
}

.next-arrow {
	right: 10px;
}

/* -------------------------------------
	content
---------------------------------------- */
main {
	padding-bottom: 100px;
}

strong {
	color: #CC145E;
}

.module-fadein {
	opacity: 0;
	transition: 0.8s;
	position: relative;
	bottom: -50px;
}

.module-fadein.is-active {
	opacity: 1;
	bottom: 0;
}

.first_area {
	background: url(../images/bg_first.jpg) center;
	background-size: cover;
	color: #fafafa;
	padding: 30px 20px;
}

.first_area .-title {
	max-width: 1080px;
	margin: 0 auto;
	border: 4px solid #fafafa;
	font-size: 3.6rem;
	line-height: 1.55;
	padding: 25px 0;
	text-align: center;
}

.first_area .-title span {
	font-size: 5.2rem;
	line-height: 1.2;
	display: inline-block;
	padding: 1px 3px;
}

.first_area .-title span.-line {
	background: linear-gradient(transparent 80%, #CC7A00 80%);
}

.main_title {
	max-width: 1244px;
	padding-top: 40px;
	margin: 0 auto 75px;
	text-align: center;
	position: relative;
	overflow: hidden;
	font-size: 4.8rem;
	background-position: center top;
	background-repeat: no-repeat;
	background-size: contain;
	line-height: 1;
}

.main_title.-title01 {
	background-image: url(../images/title_01.svg);
}

.main_title.-title02 {
	background-image: url(../images/title_02.svg);
}

.main_title.-title03 {
	background-image: url(../images/title_03.svg);
}

.main_title.-title04 {
	background-image: url(../images/title_04.svg);
}

.ribbon_title {
	font-size: 3.2rem;
	color: #fafafa;
	line-height: 1;
	padding: 18px 25px;
	margin-bottom: 20px;
	text-align: center;
	position: relative;
}

.ribbon_title span {
	position: relative;
	z-index: 1;
}

.ribbon_title.-auto {
	display: inline-flex;
}

.ribbon_title:before {
	content: "";
	display: block;
	position: absolute;
	z-index: 0;
	left: 0;
	top: 0;
	height: 100%;
	width: 0;
	transition: 0.3s;
	background-color: #CC145E;
}

.ribbon_title.is-active:before {
	animation: ribbon_black 2s ease forwards;
}

.ribbon_title.is-active.-blue:before {
	animation: ribbon_blue 2s ease forwards;
}

@keyframes ribbon_blue {
	0% {
		width: 0;
	}
	50% {
		width: 100%;
		background-color: #CC145E;
	}
	100% {
		background-color: #4D6D9D;
		width: 100%;
	}
}

@keyframes ribbon_black {
	0% {
		width: 0;
	}
	50% {
		width: 100%;
		background-color: #CC145E;
	}
	100% {
		background-color: #232323;
		width: 100%;
	}
}

@keyframes maintxtfade {
	0% {
		bottom: -50px;
		opacity: 0;
	}
	100% {
		bottom: 0px;
		opacity: 1;
	}
}

.number_block {
	max-width: 840px;
	margin: 0 auto 80px;
}

.number_block li {
	border: 3px #99ccd4 solid;
	font-weight: 700;
	display: flex;
	align-items: center;
	padding: 10px 20px;
	position: relative;
	bottom: -50px;
	opacity: 0;
	margin-top: -3px;
}

.number_block.is-active li {
	animation: maintxtfade 2s ease forwards;
}

.number_block.is-active li:nth-child(2) {
	animation-delay: 0.3s;
}

.number_block.is-active li:nth-child(3) {
	animation-delay: 0.8s;
}

.number_block .-num {
	color: #fafafa;
	text-stroke: 2px #99ccd4;
	-webkit-text-stroke: 2px #99ccd4;
	font-size: 4.8rem;
	letter-spacing: -2px;
	margin-right: 15px;
}

.number_block .-txt {
	font-size: 2.4rem;
}

.number_block strong {
	font-size: 4.8rem;
	line-height: 3.2rem;
	color: #CC145E;
}

.number_block strong .-sub {
	font-size: 3.2rem;
}

.number_block .-item02 strong {
	line-height: 2.4rem;
}

.border_box {
	padding: 35px;
	font-size: 4.2rem;
	font-weight: 700;
	text-align: center;
	line-height: 1.3;
	position: relative;
	z-index: 1;
	opacity: 0;
}

.border_box.-fs_m {
	font-size: 3.2rem;
}

.border_box strong {
	font-size: 5.6rem;
}

.border_box:before, .border_box:after {
	content: "";
	display: block;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	position: absolute;
}

.border_box p {
	position: relative;
	z-index: 1;
}

.border_box:before {
	border: 7px solid #99ccd4;
	z-index: 0;
	background: #fafafa;
}

.border_box:after {
	background: #99ccd4;
	z-index: -1;
	transition: 0.3s;
}

.border_box.-pink:before {
	border-color: #EEB3B3;
}

.border_box.-pink:after {
	background: #EEB3B3;
}

.border_box.is-active {
	animation: border_box_fade 2s ease forwards;
}

.border_box.is-active:after {
	animation: border_box_shadow 0.5s ease forwards;
	animation-delay: 2s;
}

@keyframes border_box_fade {
	0% {
		opacity: 0;
		bottom: -50px;
	}
	100% {
		opacity: 1;
		bottom: 0;
	}
}

@keyframes border_box_shadow {
	0% {
		left: 0;
		top: 0;
	}
	100% {
		left: 7px;
		top: 7px;
	}
}

.challenges_area .-txt01 {
	font-size: 2.4rem;
	line-height: 1.3;
}

.challenges_area .-txt01 span {
	font-size: 4.6rem;
}

.challenges_area .-txt02 {
	font-size: 2.2rem;
	line-height: 1.4;
	margin-bottom: 30px;
}

.challenges_area .-txt02 strong {
	font-size: 2.8rem;
}

.challenges_area .-txt03 {
	font-size: 3.6rem;
	line-height: 1;
	font-weight: 700;
	color: #CC145E;
	margin-bottom: 50px;
}

.challenges_area .-arrow {
	margin-bottom: 60px;
	text-align: center;
	padding-top: 40px;
}

.graph_box {
	display: flex;
	align-items: flex-start;
	width: 100%;
	margin-bottom: 35px;
}

.graph_box .-txt {
	font-weight: 700;
	flex: 1;
}

.graph_box .-img {
	width: 25%;
}

.gradient_box {
	background: linear-gradient(180deg, #4D6D9D 0%, #4D969E 52.08%, #564D9E 100%);
	padding: 40px 30px;
}

.gradient_box .-column {
	display: flex;
	align-items: center;
}

.gradient_box:nth-of-type(2n) .-column {
	flex-direction: row-reverse;
}

.gradient_box:nth-of-type(2n) .-main {
	margin-left: 30px;
	margin-right: 0px;
}

.gradient_box:not(:last-of-type) {
	margin-bottom: 40px;
}

.gradient_box .-main {
	width: 52%;
	min-width: 450px;
	margin-right: 30px;
}

.gradient_box .-img {
	flex: 1;
	text-align: center;
}

.gradient_box .-txt {
	color: #fafafa;
	font-size: 2rem;
	font-weight: 700;
}

.gradient_box .-title {
	font-size: 3.2rem;
	color: #fafafa;
	background: #232323;
	line-height: 1;
	padding: 14px 16px;
	margin-bottom: 20px;
	display: inline-flex;
	align-items: center;
}

.gradient_box .-mark {
	position: relative;
	padding-left: 70px;
	left: 14px;
}

.gradient_box .-mark span {
	font-size: 2.2rem;
	line-height: 1;
	vertical-align: middle;
	display: inline-block;
	margin-right: 3px;
}

.gradient_box .-mark:before {
	white-space: pre;
	content: '開講\A記念';
	font-size: 2rem;
	color: #fafafa;
	position: absolute;
	width: 75px;
	height: 75px;
	left: -15px;
	top: -7px;
	z-index: 1;
	padding-left: 2px;
	letter-spacing: 2px;
	line-height: 1.15;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gradient_box .-mark:after {
	content: "";
	display: block;
	width: 75px;
	height: 75px;
	border: 3px #fafafa solid;
	border-radius: 75px;
	background-color: #CC7A00;
	position: absolute;
	left: -15px;
	top: -7px;
	z-index: 0;
}

.price_table {
	max-width: 1000px;
	margin: 0 auto 25px;
	border-top: 2px solid #232323;
	border-left: 2px solid #232323;
	font-size: 2.0rem;
	width: 100%;
}

.price_table th, .price_table td {
	vertical-align: middle;
	line-height: 1.35;
}

.price_table th {
	font-weight: 700;
}

.price_table thead th, .price_table thead td {
	border-right: 2px solid #6E7373;
	border-bottom: 2px solid #232323;
	background: #232323;
	color: #fafafa;
	text-align: center;
	padding: 15px 20px;
}

.price_table thead th:last-of-type {
	border-right: 2px solid #232323;
}

.price_table thead span {
	font-size: 1.6rem;
}

.price_table tbody th, .price_table tbody td {
	padding: 15px 20px;
	border-right: 2px solid #232323;
	border-bottom: 2px solid #232323;
}

.price_table tbody th span {
	font-size: 1.6rem;
}

.price_table tbody th .-mark {
	font-size: 1.6rem;
	display: inline-block;
	color: #fafafa;
	background-color: #CC7A00;
	font-weight: 700;
	padding: 5px;
	line-height: 1;
	margin-bottom: 3px;
}

.price_table tbody td {
	text-align: center;
}

.price_table tbody td span {
	font-size: 1.4rem;
}

.price_table .recommend {
	background: rgba(153, 204, 212, 0.5);
}

.notes_list {
	max-width: 1000px;
	margin: 0 auto 20px;
	line-height: 1.5;
}

.notes_list li {
	margin-left: 1em;
	text-indent: -1em;
}

.hosho_area {
	text-align: center;
}

.copyright {
	text-align: center;
}

.copyright small {
	font-size: 1.4rem;
}

/* -------------------------------------
	ページトップ
---------------------------------------- */
.pagetop {
	display: none;
	position: fixed;
	right: 50px;
	bottom: 50px;
	z-index: 5;
}

.pagetop a {
	background: #212121;
	border-radius: 50%;
	color: #fff;
	display: block;
	font-size: 4rem;
	height: 50px;
	line-height: 45px;
	text-align: center;
	text-decoration: none;
	width: 50px;
}

/* -------------------------------------
	ellipsis
---------------------------------------- */
.ellipsis {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
