@charset "utf-8";
/* CSS Document */


.content.bgBlue, .content.bgBlue2, .content.bgBlue3, .content.bgBlue4 {
	margin-bottom: 45px;
}

.contentIn {
	padding: 0;
}

.content.bgBlue3 .contentIn {
    padding: 80px 0;
}

@media only screen and (max-width: 520px) {
.content.bgBlue3 .contentIn {
    padding: 80px 0 10px;
}
}

.content.bgBlue3:before, .content.bgBlue4:before {
    height: 300px;
}

/* =================================================================================

   classBtn
 
=================================================================================== */
.classBtnBox{
	max-width: 1140px;
	width: 85%;
	margin: 70px auto 0;
	}

.classBtn {
	display: flex;
	flex-wrap: wrap;
	}

.classBtn li {
	width: 32%;
	display: flex;
	align-items: stretch;
	margin-right: 2%;
	margin-bottom: 20px;
	position: relative;
	padding-top: 50px;
	}

.classBtn li:nth-child(3n) {
	margin-right: 0;
	}

.classBtn li a {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	background: #fff;
	color: #00B0EC;
	font-size: 1.6rem;
	text-align: center;
	padding: 40px 5px 32px 5px;
	transition: all .3s ease;
	filter: drop-shadow(1px 1px 4px rgba(0, 0, 0, .1));
	}

/* SVG */
.classBtn li a .classBtnIcon {
	display: block;
	position: absolute;
	width: 60px;
	height: auto;
	top: -15px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	filter: drop-shadow(4px 4px 3px rgba(0, 0, 0, 0.2));
	}

.classBtn li a:before {
	content: "";
	background: url(../newimages/common/arrow-blue4.svg) right center / 100% no-repeat;
	width: 12px;
	height: 7px;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 9px;
	transition: all .3s ease;
	margin: 0 auto;
	}

.classBtn li a span {
	width: 100%;
	}

@media only screen and (min-width: 961px) {

.classBtn li a:hover:before {
	bottom: 5px;
	}
}


/* 960px以下 */
@media only screen and (max-width: 960px) {

.classBtnBox {
	width: 90%;
	}

.classBtn {
	flex-wrap: nowrap;
	}

.classBtn li {
	width: calc((100% - 20px) / 3);
	margin-right: 10px;
	margin-bottom: 0;
	padding-top: 45px;
	}

.classBtn li:nth-child(3n) {
	margin-right: 0;
	}

.classBtn li a {
	width: 100%;
	font-size: 1.4rem;
	padding: 35px 5px 25px;
	}

.classBtn li a .classBtnIcon {
	width: 60px;
	top: -15px;
	}
}


@media only screen and (max-width: 520px) {

.classBtnBox {
	width: 90%;
	margin: 30px auto 0;
	}

.classBtn {
	display: flex;
	flex-wrap: nowrap;
	}

.classBtn li {
	width: calc((100% - 20px) / 3);
	margin-right: 10px;
	margin-bottom: 0;
	padding-top: 40px;
	}

.classBtn li:nth-child(3n) {
	margin-right: 0;
	}

.classBtn li a {
	width: 100%;
	font-size: 1.2rem;
	padding: 30px 3px 25px;
	}

.classBtn li a .classBtnIcon {
	width: 45px;
	top: -20px;
	}
}
/* =================================================================================

   features
 
=================================================================================== */
.features {
	position: relative;
	margin-bottom: 100px;
	}

.features:last-child {
	margin-bottom: 0;
	}

.features .featuresImg {
    max-width: 977px;
    width: 100%;
	margin: 0 auto;
}

.features .featuresTxt {
	width: 100%;
	max-width: 1043px;
	box-sizing: border-box;
	background: #fff;
	filter: drop-shadow(1px 1px 4px rgba(0, 0, 0, .1));
	padding: 70px 76px;
	margin: 60px auto 20px;
}

.features .featuresTxt .number {
	width: 9%;
	max-width: 76px;
	position: absolute;
	top: -0.7%;
	left: 50%;
	transform: translateX(-50%);
	}

.features .featuresTxt .number.no1 {
    width: 8%;
    max-width: 67px;
}

.features .featuresTxt .midashi {
	position: relative;
	font-size: 2.2rem;
	text-align: center;
	margin-bottom: 50px;
	}

.features .featuresTxt .midashi span {
	font-size: 80%;
	}

.features .featuresTxt .midashi:before {
	content: "";
	background: #00b0ec;
	width: 35px;
	height: 1px;
	position: absolute;
	left: 0;
	right: 0;
	bottom: -25px;
	margin: 0 auto;
	}

.features .featuresTxt .f2.fs1.featuresRead {
	margin: 0 auto 40px;
	width: 100%;
	max-width: 779px;
}

@media only screen and (max-width: 960px) {
.features .featuresImg {
    position: relative;
	}

.features .featuresTxt {
    width: 90%;
	padding: 50px 38px;

	}
}

@media only screen and (max-width: 520px) {

.features .featuresTxt {
	width: 95%;
    padding: 40px 25px 40px;
	}

.features .featuresTxt .midashi {
    font-size: 2rem;
    margin-bottom: 35px;
	}

.features .featuresTxt .midashi:before {
    bottom: -18px;
	}
	
.features {
	margin-bottom: 60px;
	}
	
.features .featuresTxt .number {
    width: 17%;
    top: -2.2%;
}
	
.features .featuresTxt .number.no1 {
    width: 15%;
    top: -0.5%;
}

}

/* =================================================================================

   features2
 
=================================================================================== */
.features2 {
	position: relative;
	display: flex;
	justify-content: center;
	gap: 24px;
	margin-bottom: 80px;
	}

.features2:last-child {
	margin-bottom: 0;
	}


/*------- title -------*/
.content.bgBlue3 .title {
	margin-bottom: 80px;
	}


/*------- box -------*/
.features2 .featuresBox {
	position: relative;
	width: 245px;
	flex: 0 0 245px;
	background: #fff;
	box-sizing: border-box;
	padding: 60px 25px 30px;
	}


/*------- number -------*/
.features2 .featuresBox .featuresNumber {
	max-width: 63px;
	width: 26%;
	position: absolute;
	top: -25px;
	left: -15px;
	z-index: 1;
	margin: 0;
	}

.features2 .featuresBox .featuresNumber img {
	display: block;
	width: 100%;
	height: auto;
	}


/*------- contents -------*/
.features2 .featuresBox .featuresIn {
	position: relative;
	background: none;
	margin: 0;
	padding: 0;
	}

.features2 .featuresBox .featuresIn .midashi {
	position: relative;
	font-size: 1.7rem;
	text-align: center;
	margin-bottom: 44px;
	height: 7.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	}

.features2 .featuresBox .featuresIn .midashi:before {
	content: "";
	background: #00b0ec;
	width: 35px;
	height: 1px;
	position: absolute;
	left: 0;
	right: 0;
	bottom: -22px;
	margin: 0 auto;
	}

.features2 .featuresBox .featuresIn .txt {
	margin-bottom: 0;
	}


/*------- SP -------*/
@media only screen and (max-width: 960px) {

.features2 {
	display: block;
	margin-bottom: 80px;
	}

.features2 .featuresBox {
	width: auto;
	flex: none;
	margin-bottom: 80px;
	padding: 0;
	background: none;
	}

.features2 .featuresBox:last-child {
	margin-bottom: 0;
	}

.features2 .featuresBox .featuresNumber {
	width: 79px;
	top: -40px;
	left: 20px;
	}

.features2 .featuresBox .featuresIn {
	background: #fff;
	margin: 40px;
	padding: 60px;
	}

}


/*------- SP 520px -------*/
@media only screen and (max-width: 520px) {

.features2 {
	margin-bottom: 60px;
	}

.features2 .featuresBox {
	margin-bottom: 60px;
	}

.features2 .featuresBox .featuresNumber {
	width: 55px;
	top: -30px;
	left: 20px;
	}

.features2 .featuresBox .featuresIn {
	margin-left: 40px;
	padding: 25px;
	margin: 30px;
	}
	
.features2 .featuresBox .featuresIn .midashi {
	font-size: 2rem;
	letter-spacing: 0.08em;
	height: auto;
	min-height: 7.5rem;
	margin-top: 0;
	}

}

/* =================================================================================

   courseBtn
 
=================================================================================== */
.courseBtn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 26px;
}

.courseBtn li {
	width: 100%;
	max-width: 528px;
	background: #fff;
	box-shadow:
	1px 3px 4px rgba(0, 0, 0, 0.15),
	0 0 3px rgba(0, 0, 0, 0.08);
}

.courseBtn li:last-child {
	margin-right: 0;
}

.courseBtn li a {
	width: 100%;
	display: block;
	position: relative;
	font-size: 2rem;
	color: #00b0ec;
	padding: 30px 80px 30px 30px;
	text-align: center;
	box-sizing: border-box;
}

.courseBtn li a:before {
	content: "";
	background: #00b0ec;
	width: 40px;
	height: 40px;
	position: absolute;
	right: 20px;
	bottom: 22px;
}

.courseBtn li a:after {
	content: "";
	background: url(../newimages/common/arrow-white.svg) center / 100% no-repeat;
	width: 19px;
	height: 5px;
	position: absolute;
	right: 30px;
	bottom: 40px;
	transition: transform .3s ease;
}

.courseBtn li:hover a:after {
	transform: translateX(5px);
}

/* =========================================
   2列
========================================= */

.courseBtn.col2 {
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 26px 20px;
}

.courseBtn.col2 li {
	width: calc(50% - 10px);
	max-width: none;
	display: flex;
}

.courseBtn.col2 li a {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	text-align: center;
}

.courseBtn.col2 li a.long {
	font-size: 1.7rem;
}

.courseBtn.col2 li a:before {
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
}

.courseBtn.col2 li a:after {
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
}

/* ホバー */
.courseBtn.col2 li:hover a:after {
	transform: translate(5px, -50%);
}


@media only screen and (max-width: 960px) {
	.courseBtn {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.courseBtn li {
		width: 100%;
		max-width: 528px;
		margin-right: 0;
		margin-bottom: 0;
	}

	/* 2列もSPでは1列にする */
	.courseBtn.col2 {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.courseBtn.col2 li {
		width: 100%;
		max-width: 528px;
	}
}

@media only screen and (max-width: 520px) {
	
	.courseBtn li a {
		padding: 25px 65px 25px 20px;
	}

	.courseBtn li a.long2 {
	font-size: 1.7rem;
	}
}

/* =================================================================================

   vennImg
 
=================================================================================== */

.vennImg {
	max-width: 447px;
	width: 58%;
	margin: 0 auto;
	margin-bottom: 50px;
}

@media only screen and (max-width: 520px) {

.vennImg {
	width: 100%;
}

}

/* =================================================================================

   contentIn
 
=================================================================================== */

.contentIn {
	width: 100%;
}

/* =================================================================================

   anchor
 
=================================================================================== */

.anchor {
    padding-top: 75px;
    margin-top: -75px;
}

@media only screen and (max-width: 520px) {
.anchor {
    padding-top: 50px;
    margin-top: -50px;
}
}

/* =================================================================================

   case
 
=================================================================================== */
.case {
	}

.case .tit {
	font-size: 2.8rem;
	text-align: center;
	margin-bottom: 30px;
	}

.caseIn {
	margin-bottom: 50px;
	}

.caseIn:last-child {
	margin-bottom: 0;
	}

.caseIn .year {
	position: relative;
	margin-bottom: 30px;
	}

.caseIn .year:before {
	content: "";
	background: #00b0ec;
	width: 100%;
	height: 1px;
	position: absolute;
	top: 50px;
	margin: 0 auto;
	z-index: -1;
	}

.caseIn .year .icon {
	width: 100px;
	display: block;
	margin: 0 auto;
	}

.caseIn .midashi {
	font-size: 2.2rem;
	text-align: center;
	margin-bottom: 25px;
	}

.caseIn .caseTxt {
	text-align: center;
	}


/*------ class ------*/

.class {
	background: #ebf9fd;
	padding: 45px;
	}

.class .classTit {
	position: relative;
	font-size: 1.8rem;
	text-align: center;
	margin-bottom: 40px;
	}

.class .classTit:before {
	content: "";
	background: #00b0ec;
	width: 25px;
	height: 1px;
	position: absolute;
	left: 0;
	right: 0;
	bottom: -17px;
	margin: 0 auto;
	}


/*------- table -------*/
.swipe {
	display: none;
	}

.tableBox .swipeBox,
.tableBox .swipeBox2,
.tableBox .swipeBox3 {
	display: none;
	}

/* テーブル基本設定 */
.classTable {
	width: 100%;
	border-collapse: collapse;
	border-top: 1px solid #999;
	table-layout: fixed;
	}

.classTable th {
	text-align: center;
	font-weight: bold;
	padding: 12px;
	}

.classTable td {
	padding: 20px;
	vertical-align: top;
	text-align: center;
	font-weight: bold;
	line-height: 1.9;
	}

.classTable td > div {
	display: inline-block;
	text-align: left;
	vertical-align: top;
	}

.classTable th,
.classTable td {
	border-bottom: 1px solid #999;
	border-right: 1px solid #999;
	text-align: center;
	}

.classTable tr th:last-child,
.classTable tr td:last-child {
	border-right: none;
	}

.classTable .border {
	border-right: 1px solid #999 !important;
	}


/* 3列均等 */
.classTable .w1,
.classTable .w2,
.classTable .w3 {
	width: 33.333%;
	}

.tc {
	text-align: center;
	}

.tb {
	font-weight: bold;
	text-align: center;
	vertical-align: middle;
	}


a.txtLink {
	display: inline-block;
	position: relative;
	font-size: 1.4rem;
	color: #00b0ec;
	float: right;
	padding-right: 25px;
	margin-top: 10px;
	}

a.txtLink:after {
	position: absolute;
	bottom: 2px;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: #00b0ec;
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
	}

a.txtLink:before {
	content: "";
	background: url(../newimages/common/arrow-blue2.svg) center right / 100% no-repeat;
	width: 20px;
	height: 3px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
	}


.caution {
	color: #606060;
	text-indent: -1.4rem;
	margin-left: 1.4rem;
	margin-top: 8px;
	}

.caution:before {
	content: '※';
	}


ul.photo {
	max-width: 786px;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 30px auto 0;
	}

ul.photo li {
	width: 47%;
	margin-right: 6%;
	}

ul.photo li:last-child {
	margin-right: 0;
	}

ul.photo li p {
	text-align: center;
	margin-top: 10px;
	}


/*------ hover ------*/
@media only screen and (min-width: 961px) {

	a.txtLink:hover:after {
		transform-origin: left top;
		transform: scale(1, 1);
		}

}


/*------ tablet ------*/
@media only screen and (max-width: 960px) {

	/* テーブル部分だけ横スクロール */
	.tableBox {
		width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		position: relative;
		}

	.tableBox .swipeBox,
	.tableBox .swipeBox2,
	.tableBox .swipeBox3 {
		content: "";
		display: flex;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,176,236,.5);
		vertical-align: middle;
		z-index: 100;
		}

	.tableBox .swipeBox img,
	.tableBox .swipeBox2 img,
	.tableBox .swipeBox3 img {
		width: 55%;
		height: auto;
		display: block;
		margin: auto;
		}

	/* 960px以下は900px幅にして横スクロール */
	.tableBox .classTable {
		width: 900px;
		min-width: 900px;
		table-layout: fixed;
		}

	.swipe {
		display: block;
		background: #d4edff;
		border-radius: 3px;
		font-size: 1.1rem;
		line-height: 1.7rem;
		text-align: center;
		padding: 5px 6px;
		margin-bottom: 15px;
		}

}


/*------ SP ------*/
@media only screen and (max-width: 520px) {

	.tableBox .swipeBox img,
	.tableBox .swipeBox2 img,
	.tableBox .swipeBox3 img {
		width: 80%;
		display: block;
		margin: auto;
		}

	.case .tit {
		font-size: 2.6rem;
		}

	.caseIn .year .icon {
		width: 70px;
		}

	.caseIn .year:before {
		top: 35px;
		}

	.caseIn .midashi {
		font-size: 2rem;
		margin-bottom: 15px;
		}

	.caseIn .caseTxt {
		text-align: left;
		}

	.class {
		padding: 25px;
		}

	ul.photo {
		display: block;
		}

	ul.photo li {
		width: 100%;
		margin-right: 0;
		margin-bottom: 15px;
		}

	ul.photo li:last-child {
		margin-bottom: 0;
		}

	a.txtLink {
		float: inherit;
		}

}

/* =================================================================================

   classPageTop
 
=================================================================================== */

.classPageTop {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	position: relative;
	width: 100%;
	max-width: 1043px;
	box-sizing: border-box;
	margin: 0 auto;
	padding-right: 20px;
	font-size: 1.4rem;
	}

.classPageTop.f2 {
	color: #00b0ec;
	}

.classPageTop:before {
	content: "";
	background: url(../newimages/common/arrow-blue4.svg) center / 100% no-repeat;
	width: 12px;
	height: 10px;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) scaleY(-1);
	}

#class3 .classPageTop.f2 {
	margin-bottom: 60px;
}

@media only screen and (max-width: 960px) {
.classPageTop {
    width: 90%;
}
	
}