@charset "utf-8";


/* ---------------------------------------
* common
------------------------------------------ */

.btn.sp,.sp{
	display: none;
}

svg{
	width: 100%;
	height: 100%;
}

:root {
	--primary: #000;
	--secondary: #FFFFFF;
	--border: #EBEBEB;
	--font-gray: #B2B1B1;
}

.tac{
	text-align: center;
}

.t-news,.t-platform,.t-nature,.t-instrument,.t-program,.t-entry{
	background-color: #fff;
}

.platformPara p,.naturePara p,.insTxt p,.programexplain p,.program-listTxt p,.entryexplain p,.entryrecommend-listItem{
	font-weight: 300;
	line-height: 1.8;
	font-size: clamp(14px,1.4rem,16px);
}

/* ---------------------------------------
* TOP
------------------------------------------ */

.fvVideo{
	--fv-overlay-opacity: .2;
	width: 100%;
	height: calc(var(--vh, 1vh) * 100);
	position: fixed;
	left: 0;
	top: 0;
	z-index: -1;
}

.fvVideo video{
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.fvOverlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: #000;
	opacity: .2;
	pointer-events: none;
}

/* .fvVideo::before{
content: "";
display: block;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,var(--fv-overlay-opacity));
position: absolute;
left: 0;
top: 0;
z-index: 1;
} */

.fvVideo video::-webkit-media-controls {
	display: none !important;
}

.fvVideo video::-webkit-media-controls-start-playback-button {
	display: none !important;
	-webkit-appearance: none;
}

.fv {
	width: 100%;
	height: calc(var(--vh, 1vh) * 100);
	min-height: 520px;
	position: relative;
	overflow: hidden;
}

.fvCont{
	width: 100%;
	padding: 0 clamp(2.4rem, 4vw, 6rem);
	position: absolute;
	left: 0;
	right: 0;
	bottom: clamp(3.2rem, 7vh, 8rem);
	z-index: 2;

	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 4rem;
}

.fvTtl h2{
	font-weight: 350;
	font-size: clamp(24px,4rem,48px);
	line-height: 1.4;
	padding-bottom: 2.4rem;
}

.fvTtl p{
	font-weight: 300;
	font-size: clamp(14px,1.4rem,16px);
}

.fvTxtWrap .btnWrap{
	padding-top: 3.2rem;
}

.fvTxtWrap .btnTxt{
	padding-right: 3rem;
}

.fvAward{
	width: 11.1%;
	position: absolute;
	right: 6rem;
	bottom: 0;
}

.fvAward-listItem{
	width: 40%;
}

.fvAward-listItem:last-of-type{
	width: 56.25%;
}

.t-about{
	padding: 20rem 0 16rem;
}

.t-aboutCont{
	opacity: 0;
	transform: translateY(10rem);
	filter: blur(20px);
	will-change: opacity, transform, filter;
}

.t-aboutPara p{
	line-height: 1.8;
	font-weight: 300;
}

.t-aboutPara p:not(:last-of-type){
	padding-bottom: 3.2rem;
}

.t-platform .ttlWrap,.t-nature .ttlWrap{
	padding-bottom: 4.8rem;
}

.platformImg{
	width: 48.86%;
}

.platformCont{
	width: 45.07%;
	position: relative;
	min-height: 100vh;  
}

.platformDetail{
	padding-top: 1rem;
	will-change: opacity, transform;
}

.number{
	position: relative;
}

.number::after{
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background-color: var(--border);
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.number p{
	position: relative;
	z-index: 2;
	background-color: #fff;
	padding-right: 1.6rem;
	font-size: clamp(14px,1.6rem,18px);
	display: inline-block;
}

.platformPara,.naturePara{
	padding-top: 2.4rem;
}

.platformPara p:not(:last-of-type),.naturePara p:not(:last-of-type){
	padding-bottom: 2.4rem;
}

.natureCont{
	padding-right: 6rem;
}

.nature-listImg{
	width: 51.08%;
}

.nature-listTxt{
	width: 43.11%;
	padding-top: 1rem;
}

.natureTxt,.insTxt,.platformTxt{
	padding-top: 4rem;
}

.ins-l{
	width: 45%;
}

.ins-l .ttlWrap{
	position: sticky;
	left: 0;
	top: 10rem;
}

.ins-r,.programexplain p{
	width: 48.86%;
}

.ins-listItem:not(:last-of-type){
	padding-bottom: 10rem;
}

.insTxt p{
	padding-top: 2.4rem;
}

.insImg{
	padding-top: 3.2rem;
	width: 51.1%;
}

.programexplain p{
	padding-top: .4rem;
}

.program-list{
	padding-top: 4.8rem;
	column-gap: 3rem;
}

.program-listItem{
	height: 100%;
	position: relative;
	width: calc((100% - (3rem * 3)) / 4);
}

.program-listImg{
	border-radius: 5px;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	background-image: url(../img/top/p01new.png);
}

.program-listItem:nth-of-type(2) .program-listImg{
	background-image: url(../img/top/p02new.png);
}

.program-listItem:nth-of-type(3) .program-listImg{
	background-image: url(../img/top/p03new.png);
}

.program-listItem:last-of-type .program-listImg{
	background-image: url(../img/top/p04new.png);
}

.program-listImg::after{
	content: "";
	display: block;
	padding-top: 133%;
}

.program-listTxt{
	padding: 1.6rem 2rem;
	width: 100%;
	height: 100%;
	flex-direction: column;
	justify-content: space-between;
	position: absolute;
	left: 0;
	top: 0;
}

.program-listTxt h4{
	font-size: clamp(16px,1.8rem,20px);
	font-weight: 350;
}

.entry-l{
	width: 40.15%;
}

.entryTxt{
	position: sticky;
	top: 10rem;
}

.entryexplain{
	padding-top: 3.2rem;
}

.entryrecommend{
	padding: 2.4rem 0;
}

.entryrecommend p{
	padding-left: 1.4rem;
	position: relative;
	margin-bottom: 1rem;
}

.entryrecommend p::before{
	content: "";
	display: block;
	width: 0.8rem;
	height: 0.8rem;
	background-color: var(--primary);
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.entryrecommend-list{
	width: 79.24%;
	background-color: #F2F2F2;
	padding: 2.4rem 2rem;
	border-radius: 5px;
}

.entry-r{
	background-color: #F2F2F2;
	width: 57.3%;
	padding: 4rem 3rem;
	border-radius: 5px;
}

/* ---------------------------------------
* Company
------------------------------------------ */

.p-company{
	padding-top: 20rem;
}

.p-company .pageHeading{
	padding-top: 0;
	width: 30%;
}

.outlineCont{
	width: 65.8%;
}

.outline-defList{
	padding: 3rem 0;
	border-bottom: solid 1px var(--border);
}

.outline-defList:first-of-type{
	border-top: solid 1px var(--border);
}

.outline-defTtl,.outline-defDesc{
	font-size: clamp(12px,1.4rem,16px);
	font-weight: 300;
}

.outline-defTtl{
	flex: 0 0 22.4%;
	width: 22.4%;
	font-weight: 350;
}

.outline-defDesc{
	flex: 1 1 auto;
}

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

	/* ---------------------------------------
	* common
	------------------------------------------ */

	.btn.sp,.sp{
		display: block;
	}

	.btn.pc,.pc{
		display: none;
	}


	.platformPara p,.naturePara p,.insTxt p,.programexplain p,.program-listTxt p,.entryexplain p,.entryrecommend-listItem{
		font-size: 1.4rem;
	}

	/* ---------------------------------------
	* TOP
	------------------------------------------ */

	.fv,
	.fvVideo {
		height: 100svh;
		min-height: unset;
	}

	.fv {
		position: relative;
		overflow: hidden;
	}



	.fvCont{
		padding: 0 2.4rem;
		bottom: 4rem;
		display: block;
	}

	.fvTtl h2{
		font-size: 2.4rem;
		padding-bottom: 1rem;
	}

	.fvTtl p{
		font-size: 1.2rem;
	}

	.fvTxtWrap .btnWrap{
		padding-top: 2.4rem;
	}

	.fvTxtWrap .btn{
		margin: 0;
	}

	.fvTxtWrap .btnTxt{
		padding-right: 3rem;
	}

	.fvAward{
		width: 19.2%;
		right: 2.4rem;
		bottom: unset;
		top: .4rem;
	}

	.t-about{
		padding: 16rem 0 10rem;
	}

	.t-aboutCont{
		opacity: 0;
		transform: translateY(10rem);
		filter: blur(20px);
		will-change: opacity, transform, filter;
	}

	.t-aboutPara p{
		line-height: 1.8;
		font-weight: 300;
	}

	.t-aboutPara p:not(:last-of-type){
		padding-bottom: 3.2rem;
	}

	.t-platform .platformScroll > .ttlWrap,
	.t-nature .natureScroll > .ttlWrap ,.t-instrument .ins-l{
		position: sticky;
		top: calc(var(--sp-sticky-ttl-top, 0px) + -.1rem);
		z-index: 30;
		width: 100%;
		pointer-events: none;
		padding: 2rem 0 2rem;
		background-color: #fff;
		transition: opacity .35s ease;
	}

	.platformScroll .ttlWrap.is-stuck,
	.t-nature .ttlWrap.is-stuck,.t-instrument .ins-l.is-stuck{
		opacity: .8;
		transition: opacity .35s ease;
	}

	.t-nature .natureScroll > .ttlWrap{
		width: calc(100% - 4.8rem);
		margin: 0 auto;
	}

	.platformWrap,.natureCont{
		padding-top: 2rem;
	}

	.platformDetail:not(:last-of-type){
		margin-bottom: 4.8rem;
	}

	.platformImg{
		width: 100%;
	}

	.platformCont{
		width: 100%;
		padding-top: 4rem;
	}

	.platformDetail{
		padding-top: 0;
	}

	.number{
		position: relative;
		padding-top: 1rem;
	}

	.number::after{
		height: 1px;
		top: 0;
		transform: unset;
	}

	.number p{
		padding-right: 0;
		font-size: 1.4rem;
	}

	.platformTxt{
		padding-top: 3rem;
	}

	.platformPara,.naturePara{
		padding-top: 2rem;
	}

	.platformPara p:not(:last-of-type),.naturePara p:not(:last-of-type){
		padding-bottom: 2.4rem;
	}

	.natureCont{
		padding: 0 2.4rem 0;
	}

	.nature-listItem:not(:last-of-type){
		padding-bottom: 6rem;
	}

	.nature-listImg{
		width: 100%;
	}

	.nature-listTxt{
		width: 100%;
		padding-top: 3.2rem;
	}

	.natureTxt,.insTxt,.platformTxt{
		padding-top: 3rem;
	}

	.ins-l{
		width: 100%;
	}


	.ins-r,.programexplain p{
		width: 100%;
	}

	.ins-r{
		padding-top: 2rem;
	}

	.ins-listItem:not(:last-of-type){
		padding-bottom: 6rem;
	}

	.insTxt p{
		padding-top: 2.4rem;
	}

	.insImg{
		padding-top: 3rem;
		width: 100%;
	}

	.programexplain p{
		padding-top: 1.6rem;
	}

	.program-listItem{
		width: 100%;
	}

	.program-listItem:not(:last-of-type){
		margin-bottom: 1rem;
	}

	.program-listImg::after{
		padding-top: 100%;
	}

	.program-listTxt{
		padding: 1.6rem 2rem;
		width: 100%;
	}

	.program-listTxt h4{
		font-size: 1.8rem;
	}

	.program-listTxt p{
		font-size: 1.4rem;
	}

	.entry-l{
		width: 100%;
	}

	.entryTxt{
		position: unset;
	}

	.entryexplain{
		padding-top: 3.2rem;
	}

	.entryrecommend{
		padding: 2.4rem 0;
	}

	.entryrecommend-list{
		width: 100%;
		padding: 1.6rem;
	}

	.entry-r{
		width: 100%;
		margin-top: 4rem;
		padding: 3rem 1.6rem;
	}

	/* ---------------------------------------
	* Company
	------------------------------------------ */

	.p-company{
		padding-top: 14rem;
	}

	.p-company .pageHeading{
		padding-top: 0;
		width: 100%;
	}

	.outlineCont{
		width: 100%;
		padding-top: 4rem;
	}

	.outline-defList{
		padding: 1.6rem 0;
	}

	.outline-defList:first-of-type{
		padding-top: 0;
		border-top: unset;
	}

	.outline-defTtl,.outline-defDesc{
		font-size: 1.4rem;
	}

	.outline-defTtl{
		width: 100%;
		font-size: 1.2rem;
		color: var(--font-gray);
	}

	.outline-defDesc{
		padding-top: 1rem;
	}


}


