@charset "UTF-8";
/* CSS Document */
/* mainArea */
.mainArea {
	width: 100%;
	position: relative;
}
.mainArea:before {
	background-image: url("../img/top/main_bg.webp");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	content: "";
	height: 100vh;
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: -10;
}
/*.mainArea:after {
    background-color: rgba(255,255,255,1.00);
    content: "";
    width: 320px;
    height: 102vh;
    left: 0;
    position: absolute;
    top: 0;
    z-index: -5;
}*/
.mainArea .main_inner {
	max-width: 1900px;
    margin: 0 auto;
    padding: 0 5vw 150px;
    height: calc( var(--vh) * 100);
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    position: relative;
}
/*.mainArea .main_inner:before {
	background-image: url(../img/top/logo_mark.svg);
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: contain;
    content: "";
    width: 30rem;
    height: 30rem;
    position: absolute;
    bottom: 0;
    left: -8%;
    z-index: -1;
}*/
.mainArea .main_inner .main_txt {
	padding-bottom: 15px;
	font-size: min(5vw,47px);
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: .09em;
	text-align: left;
	color: #FFF;
}
/*.mainArea .main_inner .main_txt::first-letter {
	color: #FFF;
}*/
.mainArea .main_inner .main_txt span {
	display: block;
	padding-top: 20px;
	padding-left: 5px;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-weight: 500;
	font-size: min(3.1vw,19px);
	line-height: 1.5;
	letter-spacing: .15em;
	text-align: left;
	color: #FFF;
}
.on800 {
	display: none;
}
/*スクロールダウン*/
.scrolldown1{
	position:absolute;
	right: 5%;
	bottom: 0;
	z-index: -1;
	height: 200px;
}
.scrolldown1 span{
	width: 4em;
	height: auto;
	position: absolute;
	left: -10%;
	top: 0;
	color: #FFF;
	font-size: 13px;
	transform: rotate(90deg);
	letter-spacing: 0.05em;
	transform-origin: right top;
}

/* 線の描写 */
.scrolldown1::after{
	content: "";
	position: absolute;
	top: 0;
	left: 40px;
	width: 1px;
	height: 200px;
	background: #eee;
	animation: pathmove 1.4s ease-in-out infinite;
	opacity:0;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove{
  0%{
    height:0;
    top:0;
    opacity: 0;
  }
  30%{
    height: 90px;
    opacity: 1;
  }
  100%{
    height:0;
    top: 200px;
    opacity: 0;
  }
}

/* transparent_bg */
.transparent_bg {
	position: relative;
    z-index: 1;
	/*background: rgba(255,255,255,0);*/
	background: #F2F9FD;
}

/* newsArea */
.newsArea {
	margin-top: -90px;
	background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 55px, #FFF 55px, #FFF 100%);
	border-bottom: 1px solid #5AC2D7;
}
.newsArea .inner {
	background-color: #FFF;
    display: flex;
	flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
	max-width: 100%!important;
    margin: 0 0;
	padding: 15px 0;
}
.newsArea .inner .left {
	width: calc(20%);
	/*padding: 0 3vw;*/
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
}
.newsArea .inner .left .h2Area {
	width: 100%;
	padding: 0 0 0 5vw;
	text-align: left;
}
.newsArea .inner .left .h2Area h2 {
	padding-top: 35px;
	font-size: min(3.5vw,15px);
    line-height: 2;
    color: #3E3A39;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.19em;
	position: relative;
}
.newsArea .inner .left .h2Area h2:before {
	content: "News";
	position: absolute;
	top: -27px;
    left: 0;
	font-size: min(10vw,45px);
    line-height: 2;
    color: #5AC2D7;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.newsArea .inner .right {
	width: calc(80%);
	padding: 0 3vw;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	/*background-color: #FFF;*/
	/*min-height: 250px;*/
}
.newsArea .inner .right ul li {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	/*border-bottom: 1px dotted #acacad;*/
}
.newsArea .inner .right ul li .n_left {
	width: 130px;
	/*background-color: #eaeaea;*/
	/*text-align: center;*/
	/*border-radius: 30px;*/
}
.newsArea .inner .right ul li .n_left .date {
	color: #3E3A39;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: .1em;
    padding: 0px 1em;
    margin-bottom: 5px;
}
.newsArea .inner .right ul li .n_right {
	width: calc(100% - 130px);
}
.newsArea .inner .right ul li .n_right .badge {
	margin: 1px 0;
}
.newsArea .inner .right ul li .n_right .badge a {
	font-size: min(2.2vw,12px);
	padding: 0 2em;
	display: inline-block;
	border-radius: 20px;
	color: #FFF;
	background-color: #5AC2D7;
}
.newsArea .inner .right ul li .n_right .news a {
	background-color: #5AC2D7;
}
.newsArea .inner .right ul li .n_right .event a {
	background-color: #EE8D9E;
}
.newsArea .inner .right ul li .n_right .badge a:hover {
	color: #CCC;
	background-color: #888;
}
.newsArea .inner .right ul li .n_right .ttl {
	/*margin-top: 5px;*/
	padding-left: 0.5em;
}
.newsArea .inner .right ul li .n_right .ttl a {
	font-size: min(3.5vw,15px);
    line-height: 22px;
	font-weight: 700;
	color: #3E3A39;
}
.newsArea .inner .right ul li .n_right .ttl a:hover {
	color: #555;
}
.newsArea .inner .right .nopost {
	padding: 30px 0;
}
.newsArea .inner .right .btn {
	margin: 10px 0;
	text-align: right;
}
/* businessArea */
.businessArea {
	max-width: 2200px;
	margin: 0 auto;
	padding: 80px 0;
	position: relative;
	background-color: #F2F9FD;
	background-image: url("../img/top/business_img.webp");
	background-position: top 40px left;
	background-repeat: no-repeat;
	background-size: 55%;
	/*background: linear-gradient(180deg, #ebeef2 0%, #ebeef2 60%, #FFF 60%, #FFF 100%);*/
}
.businessArea .inner {
	width: 50%;
	margin-left: 50%;
	padding: 80px 8vw 50px;
	text-align: left;
	background-color: #5AC2D7;
	color: #FFF;
}
.businessArea .inner h2 {
	padding-top: 50px;
	font-size: min(3.5vw,15px);
    line-height: 2;
    color: #FFF;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.19em;
	position: relative;
}
.businessArea .inner h2:before {
	content: "Business";
	position: absolute;
	top: -32px;
    left: 0;
	font-size: min(10vw,50px);
    line-height: 2;
    color: #FFF;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.businessArea .inner h3 {
	padding-top: 30px;
	font-size: min(3.9vw,22px);
    line-height: 2;
    color: #FFF;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    letter-spacing: 0.19em;
}
.businessArea .inner .businessTxt {
	padding-top: 15px;
    padding-bottom: 25px;
    font-size: min(3.5vw,17px);
    line-height: 1.8;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.09em;
    display: block;
}
/* philosophyArea */
.philosophyArea {
	width: 100%;
	margin: 0 auto;
	padding: 80px 0;
	position: relative;
	background-color: #F2F9FD;
	background: linear-gradient(180deg, #F2F9FD 0%, #F2F9FD 53%, #FFF 53%, #FFF 85%, #F2F9FD 85%, #F2F9FD 100%);
}
.philosophyArea .inner {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 70px 3vw 30px;
	text-align: left;
}
.philosophyArea .inner h2 {
	font-size: min(3.5vw,15px);
    line-height: 2;
    color: #595757;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.19em;
	position: relative;
}
.philosophyArea .inner h2:before {
	content: "Philosophy";
	position: absolute;
	top: -75px;
    left: 0;
	font-size: min(10vw,50px);
    line-height: 2;
    color: #595757;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.philosophyArea .inner .desc {
	margin-top: 35px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}
.philosophyArea .inner .desc .left {
	width: 46%;
}
.philosophyArea .inner .desc .left h3 {
	font-size: min(4.4vw,27px);
    line-height: 1.3;
    color: #EE8D9E;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.philosophyArea .inner .desc .left .philosophyTxt01 {
    padding-bottom: 25px;
    font-size: min(3.2vw,14px);
    line-height: 1.8;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.09em;
    display: block;
}
.philosophyArea .inner .desc .left .img01 {
	margin-top: 25px;
    width: 100%;
	max-width: 550px;
	background-image: url("../img/top/philosophy_img01.jpg");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	aspect-ratio: 800 / 480;
}
.philosophyArea .inner .desc .right {
	width: 46%;
}
.philosophyArea .inner .desc .right ul.philosophyList li {
	margin-top: 30px;
    padding-left: 1.5em;
    font-size: min(3.9vw,22px);
    line-height: 1.2;
    color: #5AC2D7;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
    position: relative;
}
.philosophyArea .inner .desc .right ul.philosophyList li:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 25px;
	height: 25px;
	background-image: url("../img/top/heart_mark.svg");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.philosophyArea .inner .desc .right ul.philosophyList li span {
	display: block;
	font-size: .7em;
	color: #EE8D9E;
}
.philosophyArea .inner .desc .right .img02 {
	margin-top: 25px;
    width: 100%;
	max-width: 550px;
	background-image: url("../img/top/philosophy_img02.jpg");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	aspect-ratio: 800 / 480;
}
/*imgArea*/
.imgArea {
	width: 100%;
	height: 300px;
	background-image: url("../img/top/company_bg.webp");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
}
/* companyArea */
.companyArea {
	width: 100%;
	margin: -75px auto 0;
	padding: 0;
	position: relative;
}
.companyArea .inner {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 2vw 30px;
	text-align: left;
}
.companyArea .inner .desc {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	flex-direction: row-reverse;
}
.companyArea .inner .desc .right {
	width: 46%;
	padding-top: 75px;
}
.companyArea .inner .desc .right .h2Area h2 {
	font-size: min(3.5vw,15px);
    line-height: 2;
    color: #5AC2D7;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.19em;
	position: relative;
}
.companyArea .inner .desc .right .h2Area h2:before {
	content: "Company";
	position: absolute;
	top: -75px;
    left: 0;
	font-size: min(10vw,50px);
    line-height: 2;
    color: #5AC2D7;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.companyArea .inner .desc .right p {
	padding: 40px 0 20px;
    font-size: min(3.2vw,14px);
    line-height: 1.5;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.09em;
}
.companyArea .inner .desc .left {
	width: 46%;
}
.companyArea .inner .desc .left .companyList li {
	margin-bottom: 20px;
	padding: 20px 3em;
	background-color: #FFF;
	box-shadow: 2px 2px 10px #e7e7e7;
	position: relative;
}
.companyArea .inner .desc .left .companyList li:after {
	content: "";
	position: absolute;
	right: 1.5em;
	top: 5px;
	font-size: min(5vw,25px);
    line-height: 2;
    color: #EE8D9E;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.companyArea .inner .desc .left .companyList li.school:after {
	content: "school";
}
.companyArea .inner .desc .left .companyList li.cuu:after {
	content: "cuu";
}
.companyArea .inner .desc .left .companyList li h3 {
	margin-top: 20px;
	font-size: min(4.8vw,30px);
    line-height: 1.3;
    color: #5AC2D7;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.companyArea .inner .desc .left .companyList li h3 span {
	display: block;
	font-size: .6em;
}
.companyArea .inner .desc .left .companyList li p {
	padding: 20px 0;
    font-size: min(3.2vw,14px);
    line-height: 1.5;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.09em;
}
.companyArea .inner .desc .left .companyList li .btn {
	text-align: right;
}

/* contentArea */
.contentArea {
	width: 100%;
	margin: 0 auto;
	padding: 50px 3vw 20px;
	background-image: url("../img/top/navi_bg.webp");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.contentArea ul {
	width: 100%;
    max-width: 2000px;
    margin: 0 auto;
    padding: 0 0 30px;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
}
.contentArea ul li {
	margin: 0 10px;
	padding: 80px 5vw 40px;
	width: calc(100% / 3 - 20px);
	background-color: #FFF;
}
.contentArea ul li .h2Area h2 {
}
.contentArea ul li a h2:before {
	position: absolute;
    left: 50%;
    bottom: 5px;
    width: 100%;
    display: block;
    transform: translateX(-50%);
    font-size: min(6vw,45px);
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    letter-spacing: 0.09em;
    line-height: 1.4;
    word-break: break-word;
    color: #FFF;
}
.contentArea ul li a h2.company:before {
	content: "company";
}
.contentArea ul li a h2.works:before {
	content: "works";
}
.contentArea ul li a h2.contact:before {
	content: "contact";
}
.contentArea ul li a:hover h2 {
    color: #CCC;
}

.contentArea ul li .h2Area {
	width: 100%;
}
.contentArea ul li .h2Area h2 {
	font-size: min(3.5vw,15px);
    line-height: 2;
    color: #5AC2D7;
	font-family: 'Noto Sans JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.19em;
	position: relative;
}
.contentArea ul li .h2Area h2:before {
	content: "";
	position: absolute;
	top: -75px;
    left: 0;
	font-size: min(10vw,50px);
    line-height: 2;
    color: #5AC2D7;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    letter-spacing: 0.09em;
}
.contentArea ul li .h2Area h2.staff:before {
	content: "Staff";
}
.contentArea ul li .h2Area h2.contact:before {
	content: "Contact";
}
.contentArea ul li p {
	padding: 20px 0;
    font-size: min(3.2vw,14px);
    line-height: 1.5;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.09em;
}

@media screen and (max-width: 1400px) {
	.newsArea .inner .left {
		width: 230px;
	}
	.newsArea .inner .right {
		width: calc(100%);
	}
	.newsArea .inner .left .h2Area h2:before {
		letter-spacing: 0.01em;
	}
	.contentArea ul li {
		padding: 80px 5vw 40px;
		width: calc(100% / 2.5 - 20px);
	}
}
@media screen and (max-width: 1200px) {
	.newsArea .inner .right {
		width: 100%;
		padding: 0 5vw;
	}
	.businessArea {
		background-size: 65%;
	}
	.businessArea .inner {
		width: 60%;
		margin-left: 40%;
	}
}
@media screen and (max-width: 1000px) {
/*スクロールダウン*/
.scrolldown1{
	right: 8%;
}
/* footer */
	/*footer .fsubNav .f_inner .f_i a {
		background-color: #44618b;
		padding-top: 0;
		position: static;
		pointer-events: none;
		color: #44618b;
  }
	footer .fsubNav .f_inner .f_i a:before {
		display: none;
	}*/
	
/* newsArea */
	.newsArea {
		margin-top: -109px;
		background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 109px, #ebeef2 109px, #ebeef2 100%);
	}
	.newsArea .inner .left {
		width: calc(100%);
	}
	.newsArea .inner .right {
		width: calc(100%);
		margin-left: 10px;
		padding: 0 5vw;
	}
	.newsArea .inner .right ul li .n_right .ttl {
		 line-height: 1.4;
	}
/* businessArea */
	.businessArea {
		padding: 380px 0 50px 0;
		background-size: 90%;
	}
	.businessArea .inner {
		width: 85%;
		margin-left: 15%;
	}
/* philosophyArea */
	.philosophyArea {
		padding: 10px 5vw;
	}
	.philosophyArea .inner .desc .left,
	.philosophyArea .inner .desc .right {
		width: 100%;
	}
	.philosophyArea .inner .desc .right ul.philosophyList li {
		padding-left: 2.5em;
	}
	/* contentArea */
}	
@media screen and (max-width: 800px) {
/*スクロールダウン*/
.scrolldown1{
	right: 10%;
}
/*mainArea*/
	.mainArea .main_inner {
		padding: 0 5vw 50px;
	}
	.mainArea .main_inner .main_txt {
		letter-spacing: .02em;
		font-size: 8vw;
	}
	.mainArea:after {
		background-position: top -75px left 85%;
		background-size: cover;
		height: 115vh;
	}
	.on800 {
		display: block;
	}
	.mainArea:after {
		width: 35%;
	}
/*newsArea*/
	.newsArea {
		margin-top: 0;
		background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 90px, #FFF 90px, #FFF 100%);
	}
	.newsArea .inner .right {
        padding: 20px 5vw 0;
	}
	.newsArea .inner .right .btn {
		margin: 10px 2em 0 0;
		width: 100%;
		text-align: left;
	}
/*imgArea*/
	.imgArea {
		height: 100px;
		background-size: cover;
		background-attachment: inherit;
	}
/*companyArea*/
	.companyArea {
		margin: 0 auto;
	}
	.companyArea .inner {
		padding: 0 8vw 30px;
	}
	.companyArea .inner .desc {
		flex-direction: inherit;
	}
	.companyArea .inner .desc .right {
		width: 100%;
		padding-bottom: 40px;
	}
	.companyArea .inner .desc .right p {
		padding: 20px 0;
	}
	.companyArea .inner .desc .left {
		width: 100%;
	}
}

@media screen and (max-width: 767px) {
.mainArea:before {
    background-image: url(../img/top/main_bg_sp.webp);
}
	/* newsArea */
	.newsArea {
		/*padding-bottom: 60px;*/
	}
	.newsArea .inner {
		display: block;
		width: 100%;
		max-width: 100%;
		padding: 25px 0 10px;
	}
	.newsArea .inner .left {
		width: 100%;
		/*padding-bottom: 20px;*/
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
	}
	.newsArea .inner .right {
		width: 100%;
		margin-left: 0;
		padding: 20px 8vw 0;
	}
	.newsArea .inner .right .btn {
		margin: 20px auto 0;
	}
/* businessArea */
	.businessArea {
		padding: 300px 0 50px 0;
		background-size: 95%;
	}
	.businessArea .inner {
		width: 90%;
		margin-left: 10%;
	}
/*contentArea*/
	.contentArea {
		background-image: url(../img/top/navi_bg_sp.jpg);
		background-position: right;
	}
	.contentArea ul li {
		padding: 80px 20px 40px;
		width: 70%;
		margin-bottom: 25px;
	}
}	
@media screen and (max-width: 600px) {
/*mainArea*/
	.mainArea .main_inner {
		padding: 0 8vw 50px;
	}
	.mainArea:after {
		background-position: top -75px left 65%;
	}
/*スクロールダウン*/
	.scrolldown1{
		right: 15%;
	}
/* newsArea */
	.newsArea .inner .right ul li .n_left {
		width: 100%;
	}
	.newsArea .inner .right ul li .n_right {
		width: 100%;
		padding: 0 1em;
	}
	.newsArea .inner .left {
		padding: 0 2em 0;
	}
/* contentArea */
}
@media screen and (max-width: 500px) {
/* businessArea */
	.businessArea {
		padding: 250px 0 50px 0;
		background-size: 100%;
	}
}
@media screen and (max-width: 400px) {
/* businessArea */
	.businessArea {
		padding: 210px 0 50px 0;
	}
/*contentArea*/
	.contentArea ul li {
		width: 100%;
	}
}
