@charset "utf-8";

/* mv */
.mv {
	position: relative;
	z-index: 1;	
}

.mv img {
	width: 100%;
}

.mv h2 {
	width: 60%;
	position: absolute;
	top: 7%;
	left: 0;
	right: 0;
	margin: 0 auto;
}

.mv .mvTit {
	overflow: hidden;
}

.mv .mvTit img {
    opacity: 0;
    transform: translateY(20px);
    transition: all 1s 1s;
}

.mv .mvTit.is-view img {
	opacity: 1;
	transform: translateY(0);
}

@media screen and (max-width: 1000px) {
	.mv h2 {
		width: 75%;
		top: 10%;
	}
}

/* subway */
.subway {
	background: linear-gradient(90deg, #205b6b 0%, #377584 45%, #205b6b 100%);
	text-align: center;
	position: relative;
	z-index: 2;
}

.subway .container {
	padding: 0 0 4rem;
}

.subway img {
	width: 98%;
	margin: -6rem 0 0;
}

@media screen and (max-width: 1000px) {
	.subway img {
		margin: -3% 0 0;
		width: 100%;
	}

	.subway .container {
		padding: 0 0 3rem;
	}
}



/* highlight */
.highlight {
	background: #c2d5d7;
	color: #2b646c;
	padding: 40px 0;
}

.highlight .container {
	max-width: 845px;
}

.highlight ul {
	align-items: stretch;
}

.highlight ul li {
	line-height: 1.4;
	border-left: 1px solid #2b646c;
	text-align: center;
	flex: 1;
	font-size: 2rem;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: center;
}

.highlight ul li div {
	width: 100%;
}

.highlight ul li .cap {
	font-size: 1rem;
	font-weight: normal;
	margin: 0.5rem 0 0;
}

.highlight ul li:last-child {
	border-right: 1px solid #2b646c;
}

@media screen and (max-width: 1000px) {
	.highlight .container {
		width: calc(100% - 60px);
	}
	
	.highlight ul {
		display: block;
	}

	.highlight ul li {
		border: 0 !important;
		border-top: 1px solid #2b646c !important;
		padding: 2rem 0;
		letter-spacing: -0.05em;
		font-size: min(6vw, 2rem);
	}

	.highlight ul li:last-child {
		border-bottom: 1px solid #2b646c !important;:	
	}
	
}




/* box01 */
.box01 {
	background: #fff;
	text-align: center;
	padding: 9rem 0;
}

.box01 .txt01 {
	font-size: 2.1rem;
	font-weight: 500;
	margin: 0 0 1rem;
}

.box01 .txt01 span {
	font-size: 150%;
}

.box01 .txt02 {
	font-size: 4.4rem;
	line-height: 1;
	font-weight: 500;
	letter-spacing: -0.1em;
	margin: 0 0 2rem;
}

.box01 .txt03 {
	font-size: 6.3rem;
	line-height: 1;
	font-weight: 500;
	letter-spacing: -0.05em;
	margin: 0 0 5rem;
}

.box01 .listBtn {
	max-width: 700px;
	width: 100%;
	margin: 0 auto;
}

.box01 .listBtn li {
	width: 49%;
}
.box01 .listBtn a {
	display: block;
	color: #ffffff;
	font-size: 2.6rem;
	line-height: 1;
	padding: 2rem 0;
	position: relative;
}

.box01 .listBtn a .sm {
	font-size: 1.4rem;
	line-height: 1.4;
	margin: 0 0 1rem;
}

@media screen and (max-width: 1000px) {
	.box01 {
		padding: 4rem 0;
	}	

	.box01 .txt01 {
		font-size: min(3.5vw, 2.1rem);
		line-height: 1.4;
		margin: 0 0 2rem;
	}

	.box01 .txt02 {
		font-size: min(7vw, 4.4rem);
		line-height: 1.4;
	}

	.box01 .txt03 {
		font-size: min(10vw, 6.3rem);
	}

	.box01 .listBtn li {
		max-width: 440px;
		width: 100%;
		margin: 0 auto;
	}

	.box01 .listBtn li:not(:last-child) {
		margin: 0 auto 1rem;
	}
}




/* box02 */
.box02 {
	padding: 18rem 0 10rem;
	background: url(../img/top/concept-bg.webp) no-repeat center top / cover;
	text-align: center;
}

.box02 .container {
	position: relative;
}

.box02 .container .img01 {
	position: absolute;
	top: 62%;
	left: 0%;
}

.box02 .container .img02 {
	position: absolute;
	top: 39%;
	right: 5%;
}

.box02 .container .img03 {
	position: absolute;
	bottom: 0;
	right: -5%;
}

.box02 h2 {
	font-family: 'Playfair Display', sans-serif;
	color: #417a89;	
	font-size: 4rem;
	font-weight: 500;
	line-height: 1;
	margin: 0 0 6rem;
	position: relative;
}

.box02 h2::after {
	content: '';
	height: 2px;
	width: 136px;
	position: absolute;
	bottom: -10px;
	left: 0;
	right: 0;
	margin: 0 auto;
	background: linear-gradient(90deg, transparent 0%, #3E798A 15%, #3E798A 85%, transparent 100%);
}

.box02 h3 {	
	color: #417a89;
	font-size: 6.2rem;
	line-height: 1.4;
	font-weight: 500;
	margin: 0 0 4rem;
}

.box02 .tit01 {
	max-width: 1025px;
	width: 100%;
	margin: 4rem auto 0;
}

.box02 p {
	font-size: 1.8rem;
	line-height: 2.2;
	margin: 0 0 7rem;
	font-weight: 500;
}

@media screen and (max-width: 1000px) {
	.box02 {
		padding: 6rem 0;
	}

	.box02 h2 {
		font-size: min(8vw, 4rem);
	}

	.box02 h2::after {
		width: min(100px, 136px);
		bottom: -5vw;
	}


	.box02 h3 {
		font-size: min(8vw, 6.2rem);
		margin: 0 0 3rem;
	}

	.box02 p {
		font-size: min(3.5vw, 1.8rem);
		letter-spacing: -0.05em;
		margin: 0 0 4rem;
	}

	.box02 .container figure {
		width: 100%;
	}

	.box02 .container figure img {
		width: 100%;
	}
	.box02 .container figure .m-cap {
		font-size: min(2.5vw, 1.2rem);
		bottom: 5px;
		right: 5px;
	}

	.box02 .container .img01 {
		position: relative;
		/*width: 23%;*/
		width: 33%;
		margin: -5% 0 0 4%;
	}

	.box02 .container .img02 {
		position: relative;
		/*width: 20%;*/
		width: 30%;
		margin: 5% 0 0 54%;
	}

	.box02 .container .img03 {
		position: relative;
		/*width: 27%;*/
		width: 37%;
		margin: -5% 0 0 54%;
	}

	.box02 .tit01 {
		margin: 0 0 4rem;
	}


}







/* box03 */
.box03 {
	background: url(../img/top/bg-02.webp) no-repeat top center / cover;
	padding: 11rem 0;
}

.box03 .container {
	/*max-width: 1440px;*/
	max-width: 100%;
	width: 100%;
}

.box03 .child:not(:last-child) {
	margin: 0 0 12rem;
}

.box03 .child .childImg {
	width: 49%;
	position: relative;
	z-index: 2;
	margin: 50px 0 0;
}

.box03 .child .childImg .photo img {
	width: 100%;
}

.box03 .child .childDesc {
	position: relative;
	z-index: 1;
	right: 7%;
	width: 49%;
	background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.6) 58%, rgba(255,255,255,0) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem;
}

.box03 .child .childDesc .titVer {
	position: absolute;
	top: 20px;
	right: 20px;
}

.box03 .child .childDesc .titVer img {
	width: 12px;
}

.box03 .child .childTit {
	position: relative;
	margin: 0 0 10rem;
	text-align: center;
}

.box03 .child .childTit::after {
	content: '';
	height: 2px;
	width: 136px;
	position: absolute;
	bottom: -5rem;
	left: 0;
	right: 0;
	margin: 0 auto;
	background: linear-gradient(90deg, transparent 0%, #3E798A 15%, #3E798A 85%, transparent 100%);
}

.box03 .child .childTit .en {
	font-size: 5rem;
	font-family: 'Playfair Display', sans-serif;
	color: #417a89;
}

.box03 .child .txtComing {
	margin: 3rem auto 0;
	color: #ffffff;
	background: #000;
	width: 236px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "Archivo", sans-serif;
	letter-spacing: 0.2em;
}

.box03 .child:nth-child(2) {
	
}

.box03 .child:nth-child(2n) .childDesc {
	order: 1;
	right: 0;
	left: 7%
}

.box03 .child:nth-child(2n) .childImg {
	order: 2;
}

.box03 .child:nth-child(2n) .childDesc .titVer {
	right: auto;
	left: 20px;
}

@media screen and (min-width: 2560px) {
    .box03 .child .childTit img {
    	width: 10vw;
    }

    .box03 .child .childTit .en {
    	font-size: 3vw;
    }

    .box03 .child .childTit .jp {
    	font-size: 1vw;
    }

    .box03 .child .childDesc p {
    	font-size: 1vw;
    }

    .box03 .child .txtComing {
    	width: 13vw;
    	height: auto;
    	padding: 1vw 0;
    	margin: 1vw auto 0;
    }

    .box03 .child .txtComing img {
    	width: 8vw;
    }
}


@media screen and (max-width: 1000px) {
	.box03 {
		padding: 6rem 0;
		background-image: url(../img/top/bg-02_sp.webp);
	}

	.box03 .container {
		width: 100%;
	}

	.box03 .child {
		display: block;
	}

	.box03 .child:not(:last-child) {
		margin: 0 0 6rem;
	}

	.box03 .child .childTit {
		margin: 0 0 6rem;
	}

	.box03 .child .childTit .en {
		font-size: min(13vw, 5rem);
	}

	.box03 .child .childTit::after {
		bottom: -3rem;
	}

	.box03 .child .childImg {
		width: calc(100% - 30px);
		margin: 0;
	}

	.box03 .child .childDesc {
		width: calc(100% - 30px);
		margin: 0 auto;
		top: -15px;
		left: 0 !important;
		right: 0 !important;
		
	}

	.box03 .child .childDesc .inner {
		padding: 10rem 1rem 0;
	}

	.box03 .child .childDesc .inner p {
		font-size: min(3.5vw, 1.6rem);
		letter-spacing: -0.05em;
	}

	.box03 .child .childDesc .titVer {
		top: 30px;
		right: 13px;
		font-size: 1.6rem;
	}
	
	.box03 .child:nth-child(2n) .childImg {
		width: calc(100% - 30px);
		margin: 0 0 0 auto;
	}

	.box03 .child:nth-child(2n) .childDesc .titVer {
		right: auto;
		left: 13px;
	}
}






/* news */
.news {
	padding: 10rem 0 0;
}

.news h2 {
	color: #417a89;
	text-align: center;
	margin: 0 0 4rem;
}

.news h2 span {
	display: block;
	font-size: 1.4rem;
	margin: 8px 0 0;
}

.news .newsDate {
	margin: 0.8em 0 0.3em;
	font-family: "Archivo", sans-serif;
	font-size: 2rem;
}

.news .newsTxt {
	font-size: 1.4rem;
}

.news .newsThumb {
	overflow: hidden;
}

.news .newsList {
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
}

.news .newsList {
	display: flex;
	justify-content: center;
	justify-content: space-between;
}

.news .newsList .item {
	width: 24%;
}

.news .newsList .item:last-child {
	margin-right: 0;
}

.news .newsList .item img {
	transition: all 0.2s;
}

.news .newsList .item:hover {
	color: #0b2f51;
}

.news .newsList .item:hover img {
	transform: scale(1.1);
}

.news .newsList .item:hover .newsTxt {
	text-decoration: underline;
}

.news .newsReadMore {
	width: 235px;
	height: 46px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 4rem auto 0;
	background: #000;
	color: #ffffff;
	font-family: "Archivo", sans-serif;
	letter-spacing: 0.2em;
	position: relative;
	border: 1px solid transparent;
}

@media screen and (min-width: 1001px) {
	.news .newsReadMore:hover {
		background-color: #fff;
		color: #000;
		border-color: #000;
	}

	.news .newsReadMore:hover img {
		filter: brightness(0);
	}

	.news .newsReadMore:hover::after {
		background-image: url(../img/common/ic-arr-black.svg);
	}
}

@media screen and (max-width: 1000px) {
	.news {
		padding: 6rem 0 0;
	}

	.news .newsList {
		display: block;
	}

	.news .newsList .item {
		max-width: 500px;
		width: 100%;
		margin: 0 auto 4rem;
	}

	.news .newsList .item:last-child {
		margin: 0 auto;
	}

	.news .newsDate {
		font-size: 1.4rem;
		margin: 1rem 0 0;
	}
}


/* top news fix */
.newsFix {
	position: fixed;
	z-index: 8;
	bottom: 2rem;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	width: 500px;
	padding: 1em;
	background: linear-gradient(to right, #073960 0%, #0B2E4F 100%);
	box-shadow: 0 3px 5px rgba(0, 0, 0, 0.25);

	opacity: 0;
    transition: all 1s 0.5s;
}

.newsFix.is-view {
	opacity: 1;
}

.newsFix__title {
	display: none;
	border: solid #fff;
	border-width: 1px 0;
	font-family: "Archivo", sans-serif;
	font-size: 2em;
	color: #fff;
}

.newsFix__body a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: #fff;
}

.newsFix__body a::after {
	content: "";
	display: block;
	width: 10%;
	height: 2em;
	background: url("../img/common/news-arr.svg") center center/contain no-repeat;
}

.newsFix__body a:hover dd {
	text-decoration: underline;
}

.newsFix__thumb {
	width: 25%;
}

.newsFix__thumb img {
	width: 100%;
}

.newsFix__text {
	flex: 1;
	margin: 0 1em;
}

.newsFix__text dt {
	font-size: 1.8rem;
}

.newsFix__text dd {
	font-size: 1.2rem;
}

@media screen and (max-width: 1000px) {
	.newsFix {
		position: fixed !important;
		display: block;
		top: auto;
		bottom: 20vw;
		right: 10px;
		width:  calc(100% - 30px);
		max-width: unset;
		padding: 2vw;
	}

	.newsFix__title {
		display: none;
	}

	.newsFix__body a::after {
		width: 7%;
		height: 0.55em;
		background-position: right center;
		background-size: cover;
	}

	.newsFix__thumb {
		width: 7em;
	}

	.newsFix__text {
		width: calc(93% - 7em - 2em);
	}

	.newsFix__text dt {
		display: none;
	}
}



/* botCap */
.botCap {
	padding: 9rem 0;
}

@media screen and (max-width: 1000px) {
    .botCap {
        padding: 6rem 0;
    }
}