@charset "utf-8";
:root {
	--c_bk:#000000;
	--c_wh:#ffffff;
	--c_bl:#184DC4;
	--c_aq:#00A7EA;
	--tr_cb: cubic-bezier(.68,.03,.31,.94);
}
.clr-bk {color: var(--c_bk)!important;}
.clr-wh {color: var(--c_wh)!important;}
.clr-bl {color: var(--c_bl)!important;}
.clr-aq {color: var(--c_aq)!important;}
.bg-bk {background-color: var(--c_bk)!important;}
.bg-wh {background-color: var(--c_wh)!important;}
.bg-bl {background-color: var(--c_bl)!important;}
.bg-aq {background-color: var(--c_aq)!important;}

.fo-mincho {
	font-family: "Shippori Mincho", serif;
	font-weight: 400;
	font-style: normal;
}
.fo-figtree {
	font-family: "Figtree", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	line-height: 1;
}
.txt-lh {
	line-height: 2;
}
.no-link {
	text-decoration: none;
	pointer-events: none;
}
.tit {
	font-size: 4.2rem;
	margin-bottom: 4rem;
}

/*lorder
---------------------------------------------------------*/
.loader-bg {
	width: 100vw;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
	background: #fff url(../img/page_bg.jpg) top center no-repeat;
	background-size: cover;
	display: flex;
	justify-content: center;
	align-items: center;
}
.loader-bg .logo {
	max-width: 32rem;
	margin-bottom: 2rem;
	text-align: left;
	animation: blinking .8s infinite alternate;
}
.loader-bg .logo span {
	display: block;
	margin-top: 0.5rem;
}
@keyframes blinking {
	0% {opacity: .2;}
	100% {opacity: 1;}
}
.loader {
	width: 4.5rem;
	margin: 0 auto;
	aspect-ratio: 4/3;
	--c: no-repeat linear-gradient(var(--c_bl) 0 0);
	background: 
		var(--c) 0%   50%,
		var(--c) 50%  50%,
		var(--c) 100% 50%;
	background-size: 20% 100%;
	animation: l1 1s infinite linear;
}
@keyframes l1 {
	0%  {background-size: 20% 100%,20% 100%,20% 100%}
	33% {background-size: 20% 10% ,20% 100%,20% 100%}
	50% {background-size: 20% 100%,20% 10% ,20% 100%}
	66% {background-size: 20% 100%,20% 100%,20% 10% }
	100%{background-size: 20% 100%,20% 100%,20% 100%}
}
#index .loader-bg {
	display: none!important;
}
/*header
---------------------------------------------------------*/
#header {
	background: #fff;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 990;
}
.hWrap {
	max-width: 120rem;
	padding: 1.5rem 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.hLogo {
	text-align: left;
	width: 26rem;
}
.logoBox .txt {
	margin-top: 0.5rem;
}
.globalnav {
	display: flex;
	justify-content: flex-end;
	gap: 2rem 1rem;
}
.globalnav a {
	border: 1px solid var(--c_bl);
	background: #fff;
	color: var(--c_bl);
	text-align: center;
	white-space: nowrap;
	width: 18rem;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: .5rem;
}
.globalnav ._02 a {
	background: var(--c_bl);
	color: #fff;
}
.nav {
	margin-top: 1rem;
	display: flex;
	justify-content: flex-end;
	gap: 0 3rem;
	white-space: nowrap;
}
.nav a {
	display: inline-block;
	position: relative;
	position: relative;
}
.nav a::before {
	content: "";
	display: block;
	background: var(--c_bl);
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.3rem;
	height: 0.1rem;
	transition: .4s var(--tr_cb);
	clip-path: inset(0 100%);
}
.nav a:hover:before {
	clip-path: inset(0 0 0 0);
}
.menuIconWrap,.navClose {
	display: none;
}

/*footer
---------------------------------------------------------*/
#footer {
	background: url(../img/footer_bg.jpg) top center no-repeat;
	background-size: cover;
}
.fWrap {
	padding: 6rem 0;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 2rem;
}
.fLft {
	text-align: left;
}
.fLft address {
	text-decoration: none;
	pointer-events: none;
	margin-top: 2rem;
}
.fRht {
	display: flex;
	justify-content: flex-end;
	flex-direction: row-reverse;
	gap: 3rem 5rem;
}
.fRht .globalnav {
	justify-content: flex-start;
	flex-direction: column;
}
.fRht .globalnav ._01 a {
	border-color: #fff;
}
.fNav {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(3, auto);
	gap: 2rem 6rem;
	text-align: left;
}
.fNav a {
	display: inline-flex;
	align-items: center;
}
.fNav a::before {
	content: "";
	display: inline-block;
	background: url(../img/arrow_nav.svg) center center no-repeat;
	background-size: contain;
	width: 1.5rem;
	aspect-ratio: 1;
	margin-right: 1rem;
	margin-bottom: -.1em;
}

/*toppage
---------------------------------------------------------*/
html#indexhtml, body#index {
  overflow: hidden;
  height: 100%;
}
html#indexhtml.load, body#index.load {
	overflow: auto;
	height: auto;
}
.mainArea {
	position: relative;
	overflow: hidden;
	height: 100vh;
	min-height: 70rem;
	transition: .8s .1s;
}
.mainMovie {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	z-index: -1;
	transition: .8s .1s var(--tr_cb);
	transform: translateY(100%);
}
.mainMovie.act {
	transform: translateY(0);
}
.mainMovie video {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	min-width: 100vw;
	min-height: 100vh;
	width: auto;
	height: auto;
	z-index: -1;
}
@media (aspect-ratio: 16/9), (min-aspect-ratio: 16/9) {
.mainMovie video {
	width: 100%;
	}
}
@media (max-aspect-ratio: 16/9) {
	.mainMovie video {
		height: 100vh;
		left: 50%;
		transform: translateX(-50%);
	}
}
@media screen and (max-width: 1400px) and (min-width: 780px) {
	.mainArea {
		height: auto!important;
		min-height: auto;
		aspect-ratio: 16/9;
	}
}
.mainMovieSp {
	display: none;
}
.mainWrap {
	height: 100%;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9995;
}
.act.mainWrap {
	position: absolute;
	pointer-events: none;
}
.mask {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: #fff;
	z-index: 999;
	transition: .8s 0s var(--tr_cb);
}
.mask.act {
	transform: translateY(-100%);
	z-index: -999;
	opacity: 0;
	pointer-events: none;
}
.mainTtl {
	transition: 1.2s .6s;
	position: absolute;
	left: 20%;
	bottom: 40%;
	color: #000;
	opacity: 0;
	text-align: left;
	filter: blur(10px);
	transition: 1s 0s var(--tr_cb);
}
.load .mainTtl {
	opacity: 1;
	filter: blur(0);
}
.act .mainTtl {
	animation: fv .8s 0s var(--tr_cb) forwards;
}
@keyframes fv {
	0% {}
	85% {
		left: 0;
		bottom: 6rem;
	}
	100% {
		left: 0;
		bottom: 6rem;
		color: #fff;
	}
}
.mainTtl h1 {
	font-size: 2rem;
	font-weight: 400;
	white-space: nowrap;
}
.mainTtl h1 strong {
	display: block;
	font-size: 381.25%;
	font-weight: 700;
	line-height: 1.15;
	margin-top: 1.5rem;
}
.topContArea {
	padding: 13rem 0;
	position: relative;
}
.topContArea .tri {
	position: absolute;
	width: 60%;
	height: 100%;
	left: 0;
	bottom: 0;
	background: url(../img/tri01.png) bottom left no-repeat;
	background-size: 100% 100%;
	z-index: 1;
	transition: 1.2s 1.1s var(--tr_cb);
	transform: translate(-100%,100%);
}
.act .tri {
	transform: translate(0,0);
}
#top-lab .tri {
	background-image: url(../img/tri02.png);
}
#top-facility {
	background: url(../img/top/bg01.jpg) bottom right no-repeat;
	background-size: cover;
}
#top-skill {
	background: url(../img/top/bg02.jpg) top center no-repeat;
	background-size: cover;
}
.topWrap {
	position: relative;
	align-items: center;
	justify-content: space-between;
	z-index: 5;
	gap: 3rem 6rem;
}
.topWrap .img {
	flex: 1;
	overflow: hidden;
	margin-left: calc(-50vw + 50%);
	position: relative;
}
.topWrap .img img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transform: scale(1.1);
	transition: 2.2s .8s;
}
.act .topWrap .img img {
	transform: scale(1);
}
.topBox {
	width: 40rem;
	text-align: left;
}
._reverse .topWrap {
	flex-direction: row-reverse;
}
._reverse .topWrap .img {
	margin-left: 0;
	margin-right: calc(-50vw + 50%);
}
.topBox h2 {
	font-size: 6.8rem;
	white-space: nowrap;
	margin-bottom: 6rem;
}
#topMovie {
	background: url(../img/top/bg03.jpg) top center no-repeat;
	background-size: cover;
}
.moviewBox video {
	width: 100%;
}
.btnbox {
	margin-top: 4rem;
	text-align: center;
}
.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	position: relative;
	border: 1px solid #000;
	padding: 1rem 3rem;
	text-align: center;
	border-radius: 10rem;
	gap: 1.5rem;
	min-width: 21.5rem;
	transition: .4s;
	overflow: hidden;
	z-index: 1;
}
.btn::after {
	content: "";
	display: block;
	background: url(../img/arrow.svg) center center no-repeat;
	background-size: contain;
	width: 1.1rem;
	aspect-ratio: 11/8;
	transition: .4s;
}
.btn:not(._360):not(._mail):before {
	content: "";
	display: block;
	position: absolute;
	top: -.1rem;
	left: -.1rem;
	bottom: -.1rem;
	right: -.1rem;
	background: var(--c_bl);
	z-index: -1;
	transition: .5s var(--tr_cb);
	clip-path: inset(0 100% 0 0);
}
.btn:hover {
	color: #fff;
	border-color: var(--c_bl);
}
.btn:hover::after {
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}
.btn:not(._360):not(._mail):hover:before {
	clip-path: inset(0 0 0 0);
}
.btn._wh {
	border-color: #fff;
	color: #fff;
}
.btn._wh::after {
	content: "";
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}
.btn._bl {
	background: var(--c_bl);
	border-color: var(--c_bl);
	color: #fff;
}
.btn._bl::after {
	content: "";
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}
.btn._bl:not(._360):not(._mail):before {
	background: var(--c_aq);
}
.btn._mail {
	font-size: 2rem;
	background: var(--c_bl);
	border-color: var(--c_bl);
	color: #fff;
	margin-top: 5rem;
}
.btn._mail::after {
	content: "";
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}
.btn._mail::before {
	content: "";
	display: block;
	background: url(../img/icon_mail.svg) center center no-repeat;
	background-size: contain;
	width: 2.6rem;
	margin-bottom: -0.1em;
	aspect-ratio: 3/2;
}
.btn._mail:hover {
	background: #000;
	border-color: #000;
}
#linkArea {
	padding: 0;
}
.linkNav li {
	width: 50%;
	aspect-ratio: 7/3.7;
}
.linkNav li a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	color: #fff;
	width: 100%;
	height: 100%;
	position: relative;
	background: rgba(0,0,0,.3);
}
.linkNav li a h2 {
	font-size: 7.4rem;
}
.linkNav li a figure {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	z-index: -1;
}
.linkNav li a figure img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transition: .6s;
	transform: scale(1.01);
}
.linkNav li a:hover {
	background: rgba(0,0,0,.1);
}
.linkNav li a:hover figure img {
	opacity: 1;
	transform: scale(1.1);
}
.imgSlideWrap {
	display: flex;
	overflow: hidden;
}
.imgSlideWrap + .imgSlideWrap {
	margin-top: 3rem;
}
.imgSlider {
	display: flex;
	animation: imgloop 50s linear infinite;
}
.imgSlider figure {
	margin-right: 3rem;
	width: 46rem;
	width: calc(100vw/4.25);
}
.imgSlideWrap._reverse .imgSlider {
	animation-direction:reverse
}
@keyframes imgloop {
	from {transform: translateX(0);}
	to {transform: translateX(-100%);}
}

/*subPage
---------------------------------------------------------*/
#subPage {
	background: url(../img/page_bg.jpg) top center no-repeat;
	background-size: 100% auto;
}
.pageTtlArea {
	overflow: hidden;
}
.pageTtlWrap {
	display: flex;
	align-items: center;
}
.pageTtl {
	position: relative;
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 50%;
	height: 24rem;
	z-index: 10;
}
.pageTtl h1 {
	color: #fff;
	font-size: 3.8rem;
	font-weight: 500;
	opacity: 0;
	transform: translateY(1rem);
	transition: .5s .75s;
}
.act .pageTtl h1 {
	opacity: 1;
	transform: translateY(0);
}
.pageTtl::before {
	content: "";
	display: block;
	background: var(--c_bl);
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: calc(-50vw + 50%);
	z-index: -1;
	transition: .75s .1s var(--tr_cb);
	clip-path: inset(0 100% 0 0);
}
.pageImg {
	flex: 1;
	height: 36rem;
	overflow: hidden;
	margin-left: -25rem;
	margin-right: calc(-50vw + 50%);
	transition: .5s .1s var(--tr_cb);
	clip-path: inset(0 0 0 100%);
}
.pageImg img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.act .pageTtl::before,
.act .pageImg {
	clip-path: inset(0 0 0 0);
}


/*about
---------------------------------------------------------*/
.pageTxtArea h2 {
	font-size: 3.6rem;
	margin-bottom: 3rem;
}
.pageTxtArea .txt-lh {
	line-height: 2.2;
}
#aboutContents {
	padding: 0 0 15.5rem;
	background: url(../img/about/bg01.png) left bottom no-repeat;
	background-size: 100% auto;
}
.pageContWrap {
	position: relative;
	align-items: center;
	justify-content: space-between;
	z-index: 5;
	gap: 3rem 5%;
}
.pageContWrap .topBox {
	width: 45%;
}
.pageContWrap .topBox h2 {
	font-size: 4.2rem;
}
.pageContWrap .topBox .txt-lh {
	text-align: justify;
}
.pageContWrap .img {
	flex: 1;
	overflow: hidden;
	margin-left: calc(-50vw + 50%);
	position: relative;
	height: 60rem;
}
.pageContWrap .img img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transform: scale(1.1);
	transition: 2.2s .8s;
}
.act .pageContWrap .img img {
	transform: scale(1);
}
.pageContArea + .pageContArea {
	margin-top: 10rem;
}
.pageContArea:nth-of-type(even) .pageContWrap {
	flex-direction: row-reverse;
}
.pageContArea:nth-of-type(even) .pageContWrap .img {
	margin-left: 0;
	margin-right: calc(-50vw + 50%);
}
.overviewImg {
	overflow: hidden;
	height: 40rem;
	margin-bottom: 8rem;
}
.overviewImg img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transform: scale(1.1);
	transition: 2.5s .0s;
}
.overviewImg.act img {
	transform: scale(1);
}
.overviewArea h2 {
	font-size: 4.2rem;
	margin-bottom: 4rem;
}
.overviewTbl {
	display: grid;
	grid-template-columns: 23rem 1fr;
}
.overviewTbl dt,
.overviewTbl dd {
	display: flex;
	align-items: center;
	justify-content: start;
	flex-wrap: wrap;
	padding: 2rem 2rem 2rem 5rem;
	text-align: left;
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
}
.overviewTbl dt {
	background: #EAF6FD;
	border-left: 1px solid #000;
}
.overviewTbl dt:first-of-type,
.overviewTbl dt:first-of-type + dd {
	border-top: 1px solid #000;
}
#aboutMovie {
	background: url(../img/about/bg02.jpg) center center no-repeat;
	background-size: cover;
}
.gmap {
	height: 36rem;
	margin-bottom: 8rem;
}
.gmap iframe {
	width: 100%;
	height: 100%;
}
.accessWrap,.traffic {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 3rem 12rem;
	text-align: left;
}
.accessBox {
	display: grid;
	grid-template-columns: 9rem 1fr;
}
.accessBox dt,.accessBox dd {
	padding: 2rem 0;
	border-top: 1px solid #fff;
}
.accessBox dt:first-of-type,.accessBox dd:first-of-type {
	border-top: none;
}
.traffic {
	margin-top: 10rem;
}
.traffic dt {
	border-bottom: 1px solid var(--c_bl);
	color: var(--c_bl);
	font-size: 2rem;
	font-weight: 600;
	padding-bottom: 0.5rem;
	margin-bottom: 3rem;
}
.traffic dd strong {
	display: block;
	font-size: 125%;
	font-weight: 600;
}
.traffic dd .txt + .txt {
	margin-top: 3rem;
}

/*research
---------------------------------------------------------*/
.pageAnc {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 2.5rem;
	margin-top: 6rem;
}
.pageAnc a {
	width: 22rem;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2.4rem;
	font-weight: 600;
	gap: 1rem;
	padding-bottom: 1rem;
	position: relative;
	letter-spacing: .05em;
}
.pageAnc a::before {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 0.2rem;
	background: var(--c_bl);
	transition: .8s var(--tr_cb);
	clip-path: inset(0 0 0 0);
}
.pageAnc a::after {
	content: "";
	display: block;
	background: url(../img/arrow_nav.svg) center center no-repeat;
	background-size: contain;
	width: 1.7rem;
	aspect-ratio: 1;
	margin-bottom: -0.1em;
	transform: rotate(90deg);
}
.pageAnc a:hover {
	color: var(--c_bl);
}
.pageAnc a:hover::before {
	clip-path: inset(0 40%);
}
.kankyoWrap {
	gap: 9rem
}
.kankyoWrap dl {
	text-align: left;
	flex: 1;
}
.kankyoWrap h2 {
	font-size: 5.8rem;
	line-height: 1.2;
	margin-bottom: 4rem;
}
.worksAnchor {
	width: 56rem;
	aspect-ratio: 5.6/5.5;
	position: relative;
	position: relative;
	z-index: 5;
}
.worksAnchor::before {
	content: "";
	display: block;
	width: 70%;
	aspect-ratio: 1;
	border: .3rem solid #fff;
	border-radius: 50%;
	z-index: -1;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.worksAnchor h3 {
	font-size: 3.6rem;
	font-weight: 500;
	position: absolute;
	top: 56%;
	left: 50%;
	transform: translate(-50%,-50%);
	transition: .8s 1.3s var(--tr_cb);
	opacity: 0;
}
.worksAnchor.act h3 {
	opacity: 1;
	top: 53%;
}
.worksAnchor li {
	width: 32%;
	aspect-ratio: 1;
	position: absolute;
	z-index: 10;
	opacity: 0;
	transition: 1s .5s var(--tr_cb);
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.worksAnchor.act li {
	opacity: 1;
	transform: none;
}
.worksAnchor.act li._01 {
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.worksAnchor.act li._02 {
	right: 0;
	top: 27.2727%;
	left: auto;
}
.worksAnchor.act li._03 {
	left: auto;
	top: auto;
	bottom: 0;
	right: 11.53%;
}
.worksAnchor.act li._04 {
	bottom: 0;
	top: auto;
	left: 11.53%;
}
.worksAnchor.act li._05 {
	left: 0;
	top: 27.2727%;
}
.worksAnchor.act li a:hover {
	transform: scale(1.075);
}
.worksAnchor li a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: .7rem;
	width: 100%;
	height: 100%;
	background: #fff;
	border: .3rem solid var(--c_aq);
	border-radius: 50%;
	font-size: 2rem;
	font-weight: 500;
	position: relative;
}
.worksAnchor li a::after {
	content: "";
	display: block;
	background: url(../img/arrow_nav.svg) center center no-repeat;
	background-size: contain;
	width: 1.7rem;
	aspect-ratio: 1;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1rem;
	margin: 0 auto;
	transform: rotate(90deg);
}
.worksAnchor li a h4 {
	font-size: 2rem;
}
.worksAnchor li figure {
	max-width: 9.3rem;
	height: 6.6rem;
	display: flex;
	justify-content: center;
	align-items: center;
}
.worksAnchor li figure img {
	max-height: 100%;
}
.secWrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 3rem 6rem;
}
.secWrap:nth-of-type(even) {
	flex-direction: row-reverse;
}
.secWrap+.secWrap {
	margin-top: 5rem;
}
.secWrap > .img {
	width: 52rem;
}
.secBox {
	text-align: left;
	flex: 1;
	padding-left: 2rem;
}
.secBox dt {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-bottom: 3rem;
}
.secBox dt figure img {
	max-height: 7.5rem;
}
.secBox dt .num {
	background: var(--c_bl);
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	margin-bottom: -0.1em;
	color: #fff;
	font-size: 1.2rem;
	width: 5.4rem;
	aspect-ratio: 1;
}
.secBox dt .num strong {
	display: block;
	font-size: 283%;
}
.secBox h2 {
	font-size: 4.2rem;
	font-feature-settings: "palt";
}
.secNav {
	width: fit-content;
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(5, auto);
	gap: 1.3rem 4rem;
}
.secNav li {
	display: flex;
	align-items: flex-start;
	gap:.5rem;
	font-weight: 500;
	max-height: 2.4rem;
}
.secNav .num {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: var(--c_bl);
	text-align: center;
	color: #fff;
	font-size: 1.9rem;
	width: 2.4rem;
	aspect-ratio: 1;
	transition: .4s;
}
.secNav a:hover {
	color: var(--c_bl);
}
#works {
	background: url(../img/research/bg01.png) center bottom no-repeat;
	background-size: 100% auto;
}
.floorSec {
	background: var(--c_bl);
	color: #fff;
}
.floorTtl {
	text-align: left;
	gap: 1rem 1.5rem;
	margin-bottom: 4rem;
}
.floorTtl h2 {
	font-size: 4rem;
	line-height: 1.2;
	font-weight: 500;
}
.floorNav {
	width: fit-content;
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(2, auto);
	gap: 1.5rem 3.5rem;
	position: relative;
	z-index: 50;
}
.floorNav a {
	text-align: left;
	display: flex;
	align-items: center;
	color: #fff;
	font-weight: 500;
	font-size: 1.8rem;
	gap: 1rem;
}
.floorNav a:hover {
	color: var(--c_aq);
}
.floorNav .num {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: #fff;
	color: var(--c_bl);
	text-align: center;
	font-size: 1.5rem;
	width: 2rem;
	border-radius: 50%;
	aspect-ratio: 1;
}
.floorMapArea {
	margin-top: -7rem;
}
.floorMapWrap {
	position: relative;
	z-index: 1;
	text-align: center;
	max-width: 109rem;
	margin: 0 auto;
}
.pin li {
	position: absolute;
	z-index: 10;
	width: 3.8rem;
	aspect-ratio: 1.9/2.2;
	transition: .5s .9s var(--tr_cb);
	opacity: 0;
	transform: translateY(1rem);
}
.pin li.act {
	opacity: 1;
	transform: translateY(0);
	animation: floating 1.8s ease-in-out infinite alternate-reverse;
}
.pin li a {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: url(../img/pin.svg) top center no-repeat;
	background-size: contain;
	color: var(--c_bl);
	font-size: 2.8rem;
	font-weight: 700;
	padding: 0 .1rem .8rem 0;
}
@keyframes floating {
	0% {
		transform: translateY(-10%);
	}
	100% {
		transform: translateY(10%);
	}
	}
.pin li a:hover {
	transform: translateY(-1rem);
}
.pin li._01-1 {
	left: 9.5%;
	bottom: 43.4%;
}
.pin li._01-2 {
	left: 9.5%;
	bottom: 32%;
}
.pin li._01-3 {
	left: 21.23%;
	bottom: 44.75%;
}
.pin li._01-4 {
	left: 17.8%;
	bottom: 24.7%;
}
.pin li._02-1 {
	left: 21.7%;
	bottom: 13.25%;
}
.pin li._03-1 {
	left: 34.4%;
	bottom: 60%;
}
.pin li._04-1 {
	left: 49.1%;
	bottom: 75%;
}
.btn360Box {
	width: 37.5rem;
	color: #fff;
	text-align: center;
	font-size: 1.8rem;
	margin-left: auto;
	margin-top: -10rem;
	position: relative;
	z-index: 50;
}
.btn._360 {
	margin-top: 1rem;
	font-size: 2rem;
	font-weight: 500;
	border-color: #fff;
	background: #fff;
	color: var(--c_bl);
}
.btn._360::before {
	content: "";
	display: block;
	background: url(../img/icon_360.svg) center center no-repeat;
	background-size: contain;
	width: 4.7rem;
	aspect-ratio: 47/36;
}
.btn._360::after {
	width: 1.4rem;
	filter: invert(19%) sepia(77%) saturate(2514%) hue-rotate(214deg) brightness(98%) contrast(98%);
}
.btn._360._under::after {
	transform: rotate(90deg);
}
.btn._360:hover {
	transform: translateY(-.7rem);
	box-shadow: 0 .7rem 0 rgba(0,0,0,.1);
}
#researchFloor .commonFloorWrap .floorNav {
	grid-template-columns: repeat(4, 1fr);
}
.facContArea {
	padding: 0;
}
.facArea {
	padding: 6rem 0;
}
.facArea h3 {
	font-size: 2.4rem;
	background: var(--c_bl);
	color: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-bottom: 3rem;
	padding: 1rem;
}
.facArea h3 .num {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: #fff;
	color: var(--c_bl);
	text-align: center;
	font-size: 1.9rem;
	width: 2.4rem;
	border-radius: 50%;
	aspect-ratio: 1;
}
.facTxt {
	max-width: 90rem;
	margin: 0 auto 3rem;
	text-align: left;
	line-height: 2;
}
.facTxt a {
	color: var(--c_bl);
	font-feature-settings: "palt";
	border-bottom: 1px solid var(--c_bl);
	margin-right: 0.5rem;
}
.facTxt a:hover {
	border-bottom: none;
}
section .slick-dots button::before {
	content: "";
	width: 1rem;
	height: 1rem;
	border: 1px solid var(--c_bl);
	border-radius: 50%;
}
section .slick-dots li.slick-active button::before {
	background: var(--c_bl);
}
section .slick-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -3.5rem;
	margin: 0 auto;
}
section .slick-dots > li:first-child:last-child {
	display: none;
}
.facSliderArea {
	max-width: 72rem;
	margin: 0 auto 8rem;
}
.fac {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 2.5rem 3.333333%;
}
.fac li {
	width: 30%;
}
.facSlider .img:not(:first-of-type) {
	display: none;
}
.facSlider.slick-initialized .img:not(:first-of-type) {
	display: block;
}
.fac li .txt {
	padding-left: 2.2rem;
	color: var(--c_bl);
	font-weight: 600;
	margin-top: 1rem;
	text-align: left;
	position: relative;
}
.fac li .txt .num {
	position: absolute;
	top: .5rem;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: var(--c_bl);
	color: #fff;
	text-align: center;
	font-size: 1.2rem;
	width: 1.6rem;
	border-radius: 50%;
	aspect-ratio: 1;
}
.fac li .img {
	position: relative;
	aspect-ratio: 9/5;
	overflow: hidden;
}
.fac li .img img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transform: scale(1.01);
	transition: .4s;
}
.fac li .img::after {
	content: "";
	display: block;
	background: url(../img/zoom.svg) center center no-repeat;
	background-size: contain;
	width: 3rem;
	height: 3rem;
	position: absolute;
	bottom: 1.2rem;
	right: 1.2rem;
	z-index: 1;
	animation: zoom 1.8s ease-in-out infinite alternate-reverse;
}
@keyframes zoom {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.2);
	}
}
.fac li .img:hover img {
	opacity: 1;
	transform: scale(1.07);
}
.fac li {
	display: none;
}
.fac li.visible {
	display: block;
}
.moreBtn {
	cursor: pointer;
	margin-top: 6rem;
}
.moreBtn::after {
	transform: rotate(90deg);
}
.moreBtn.viewall::after {
	transform: rotate(-90deg);
}
.moreBtn:hover {
	background: #f1f1f1;
}
.popupArea {
	width: 100%;
	max-width: 90rem;
	background: #fff;
	padding: 6rem;
	overflow: auto;
}
.puImg {
	margin-bottom: 2rem;
}
.facSliderArea .puImg {
	margin-bottom: 0;
}
.puImg.grid p {
	overflow: hidden;
}
.puImg.grid img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.puImg.grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2,1fr);
	height: 41.6rem;
}
.puImg.grid.col-6 {
	grid-template-columns: repeat(3,1fr);
}
.puImg.grid.col-3 {
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
}
.puImg.grid.col-3 p:nth-of-type(1) { grid-area: 1 / 1 / 3 / 2; }
.puImg.grid.col-3 p:nth-of-type(2) { grid-area: 1 / 2 / 2 / 3; }
.puImg.grid.col-3 p:nth-of-type(3) { grid-area: 2 / 2 / 3 / 3; }
.popupArea dl {
	text-align: left;
}
.popupArea dt {
	padding-left: 3rem;
	position: relative;
	padding-bottom: 1rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid #000;
}
.popupArea dt h2 {
	font-weight: 500;
	color: var(--c_bl);
	line-height: 1.2;
	font-weight: 600;
}
.popupArea dt h2 small {
	display: inline-block;
	font-size: 65%;
}
.popupArea dt .num {
	position: absolute;
	top: .2rem;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: var(--c_bl);
	color: #fff;
	text-align: center;
	font-size: 1.9rem;
	width: 2.4rem;
	border-radius: 50%;
	aspect-ratio: 1;
}
.cont02 {
	margin-top: 2rem;
}
.cont02 dt {
	color: var(--c_bl);
	font-size: 2rem;
	font-weight: 600;
	padding-left: 2.5rem;
	border-bottom: none;
	padding-bottom: 0;
}
.cont02 dt::before {
	content: "";
	display: block;
	background: url(../img/research/icon_doc.svg) center center no-repeat;
	background-size: contain;
	width: 1.6rem;
	aspect-ratio: 16/20;
	position: absolute;
	top: .5rem;
	left: 0;
}
.lity .lity-close {
	background: url(../img/close.svg) center center no-repeat!important;
	background-size: contain!important;
	width: 6.3rem;
	height: 6.3rem;
	position: absolute;
	top: -3rem!important;
	right: -3rem;
	transition: .4s;
}
.lity .lity-close:hover {
	opacity: .8;
}

/*training
---------------------------------------------------------*/
.trainingFloorLft {
	flex: 1;
}
.commonFloorWrap .floorNav {
	width: 100%;
	gap: 2.5rem;
	grid-auto-flow: row;
	grid-template-columns: repeat(3,1fr);
	grid-template-rows: none;
}
.commonFloorWrap .floorNav a {
	font-size: 2rem;
}
.commonFloorWrap .floorNav a::after {
	content: "";
	display: block;
	background: url(../img/arrow.svg) center center no-repeat;
	background-size: 50% auto;
	border-radius: 50%;
	border: 1px solid #fff;
	width: 1.7rem;
	aspect-ratio: 1;
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
	transform: rotate(90deg);
}
.commonFloorWrap .floorNav .num {
	width: 3.2rem;
	font-size: 2.3rem;
}
.commonFloorWrap .btn360Box {
	margin: 4rem auto 0;
}
.trainingFloorMap .floorMapArea {
	margin-top: 0;
}
.trainingFloorMap {
	margin-top: -1rem;
}
.floorNum {
	position: absolute;
	left: 5%;
	top: 38%;
	font-size: 3rem;
}
.floorImg {
	pointer-events: none;
}
.floorMapWrap._training {
	width: 59.7rem;
	margin: 0;
}
.floorMapWrap._training._02 {
	max-width: 52.2rem;
	padding-left: 2rem;
}
.floorMapWrap._training._03 {
	max-width: 51.2rem;
	padding-left: 2rem;
}
.floorMapWrap._training .pin li {
	aspect-ratio: 1;
}
.floorMapWrap._training .pin a {
	background: #fff;
	font-weight: 500;
	border-radius: 50%;
	padding-bottom: 0;
}
.pin li._01_A-1 {
	top: 30%;
	left: 21%;
}
.pin li._01_A-2 {
	top: 39%;
	left: 37%;
}
.pin li._01_B-1 {
	bottom: 27.2%;
	left: 38%;
}
.pin li._01_E-1 {
	right: 26%;
	top: 10%;
}
.pin li._01_F-1 {
	bottom: 36%;
	left: 52%;
}
.pin li._01_F-2 {
	right: 34.5%;
	top: 20%;
}
.pin li._02_B-1 {
	top: 42%;
	left: 27.5%;
}
.pin li._02_C-1 {
	left: 12.2%;
	bottom: 29.5%;
}
.pin li._02_D-1 {
	top: 14%;
	right: 24.5%;
}
.pin li._02_F-1 {
	bottom: 27%;
	left: 48%;
}
.pin li._03_A-1 {
	left: 26%;
	bottom: 35%;
}
.pin li._03_A-2 {
	bottom: 33%;
	left: 48%;
}
.pin li._03_F-1 {
	bottom: 15.5%;
	left: 20%;
}
.pin li._03_F-2 {
	top: 24%;
	left: 54.5%;
}
.trainingFloorMap > * + * {
	margin-top: -6.5rem;
}
.trainingFac h4 {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 1rem;
}
.trainingFacWrap {
	background: #EAF6FD;
	padding: 2.5rem 1rem;
}
.trainingFac ul {
	gap: 1.5rem 6rem;
}
#facA .trainingFac ul {
	display: grid;
	grid-template-columns: .8fr .9fr .9fr .5fr .8fr;
	gap: 1.5rem .8%;
}
#facD .trainingFac ul {
	display: inline-grid;
	grid-template-columns: 1fr 1fr 13rem 1fr;
	gap: 1.5rem;
}
.trainingFac li a {
	width: fit-content;
	display: flex;
	align-items: center;
	text-align: left;
	font-size: 1.8rem;
	gap: 0.5rem;
	font-weight: 500;
	padding-bottom: 0.5rem;
	position: relative;
}
.trainingFac li a::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	width: 100%;
	background: var(--c_bl);
	z-index: 1;
	transition: .6s;
	clip-path: inset(0 0 0 0);
}
.trainingFac li a .num {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: var(--c_bl);
	color: #fff;
	text-align: center;
	font-size: 1.2rem;
	width: 1.6rem;
	border-radius: 50%;
	aspect-ratio: 1;
	margin-bottom: -.1em;
}
.trainingFac li a:hover {
	color: var(--c_bl);
}
.trainingFac li a:hover:before {
	clip-path: inset(0 100% 0 0);
}
#trainingMovie {
	background: url(../img/about/bg02.jpg) top center no-repeat;
	background-size: cover;
}
#trainingImgs {
	background: url(../img/page_bg.jpg) bottom center no-repeat;
	background-size: cover;
}
.trainingImgsArea h2 {
	color: var(--c_bl);
	text-align: left;
	display: flex;
	align-items: end;
	font-size: 4.6rem;
	gap: 1rem 3rem;
	line-height: 1.2;
	margin-bottom: 4rem;
}
.trainingImgsArea h2:not(:first-of-type) {
	margin-top: 8rem;
}
.trainingImgsArea .txt {
	font-size: 1.6rem;
	color: #000;
	font-weight: 400;
}
.trainingImgs {
	display: grid;
	grid-template-columns: 76rem 1fr;
	grid-template-rows: repeat(2, 1fr);
	gap: 2rem;
}
.trainingImgs._02 {
	grid-template-columns: 1fr 62rem;
}
.trainingImgs li {
	overflow: hidden;
	position: relative;
}
.trainingImgs li._01 { grid-area: 1 / 1 / 3 / 2; }
.trainingImgs li._02 { grid-area: 1 / 2 / 2 / 3; }
.trainingImgs li._03 { grid-area: 2 / 2 / 3 / 3; }
.trainingImgs li._04 { grid-area: 1 / 1 / 2 / 2; }
.trainingImgs li._05 { grid-area: 2 / 1 / 3 / 2; }
.trainingImgs li._06 { grid-area: 1 / 2 / 3 / 3; }
.trainingImgs li img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.trainingImgs + .trainingImgs {
	margin-top: 2rem;
}
.trainingMovies {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 3.5rem;
}
.trainingMovies .txt {
	font-size: 2rem;
	font-weight: 500;
	margin-top: 1rem;
}
.trainingMovies a {
	display: block;
	position: relative;
}
.play {
	display: block;
	border-radius: 50%;
	background: var(--c_bl);
	width: 5.2rem;
	aspect-ratio: 1;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 5;
	cursor: pointer;
	transition: .4s;
}
.play::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 5;
	background-color: #fff;
	clip-path: polygon(100% 50%, 0% 0%, 0% 100%);
	width: 25%;
	aspect-ratio: 3/4;
}
a:hover .play {
	background: var(--c_aq);
	box-shadow: 0 0 .5rem rgba(0,0,0,.5);
}
.training-movieArea {
	width: 100%;
	max-width: 110rem!important;
}

/*floormap
---------------------------------------------------------*/
.floortab {
	display: grid;
	grid-template-columns: repeat(5,1fr);
	gap: 1rem 2rem;
	margin-bottom: 4rem;
}
.publicFloorWrap .floortab {
	grid-template-columns: repeat(3,1fr);
}
.floortab li {
	display: block;
	background: var(--c_bl);
	text-align: center;
	color: #fff;
	position: relative;
	border: 1px solid #fff;
	font-size: 2rem;
	font-weight: 700;
	padding: 1rem 0;
	cursor: pointer;
	transition: .4s;
	z-index: 50;
}
.floortab li::after {
	content: "";
	display: block;
	background: url(../img/arrow_nav_wh.svg) center center no-repeat;
	background-size: contain;
	width: 2rem;
	aspect-ratio: 1;
	transform: rotate(90deg) translate(-50%);
	position: absolute;
	right: 1rem;
	top: 50%;
}
.floortab li.current {
	background: #fff!important;
	color: var(--c_bl);
}
.floortab li.current::after {
	background-image: url(../img/arrow_nav.svg);
}
.floortab li:hover {
	background: rgba(0,0,0,.3);
}
.floorPanel {
	display: none;
	transition: .1s;
}
.floorPanel.current {
	display: block;
}
.floorPanel .floorMapWrap {
	max-width: 109.4rem;
}
.floorNav.row-3 {
	grid-template-rows: repeat(3, auto);
}
.floorPanel .floorMapArea {
	margin-top: -5.8rem;
}
.floorPanel .floorNav.row-3 + .floorMapArea {
	margin-top: -10rem;
}
#floor04 .floorMapArea {
	margin-top: 4rem;
}
.pin li._vr {
	width: 4.7rem;
	aspect-ratio: 1;
}
.pin li._vr::before {
	content: "";
	display: block;
	width: 60%;
	aspect-ratio: 7/2;
	background: rgba(0,0,0,.2);
	position: absolute;
	left: 0;
	right: 0;
	margin: 0 auto;
	bottom: -12%;
	border-radius: 50%;
	z-index: -1;
}
.pin li._vr a {
	padding: 0;
	background: none;
}
.pin li._vr a:hover img {
	opacity: 1;
}
.pin li._f1-01-1 {
	top:39%;
	left:22%;
}
.pin li._f1-01-2 {
	top:42%;
	left:40.5%
}
.pin li._f1-02-1 {
	top:24.1%;
	right:35.6%;
}
.pin li._f1-03-1 {
	bottom:31%;
	left:39%;
}
.pin li._f1-04-1 {
	top:15%;
	right:29.3%;
}
.pin li._f1-05-1 {
	top:22%;
	right:15%;
}
.pin li._f1-vr1 {
	top:36%;
	left:26.8%;
}
.pin li._f1-vr2 {
	top:53%;
	left:29.4%;
}
.pin li._f1-vr3 {
	top:36%;
	left:50%;
}
.pin li._f1-vr4 {
	top:25%;
	right:24.5%;
}
.pin li._f2-01-1 {
	bottom:42%;
	left:10%;
}
.pin li._f2-02-1 {
	bottom:55.5%;
	left:27.8%;
}
.pin li._f2-03-1 {
	top:30%;
	left:45.8%;
}
.pin li._f2-04-1 {
	top:13.5%;
	right:28.2%;
}
.pin li._f2-vr1 {
	bottom:29%;
	left:9.3%;
}
.pin li._f2-vr2 {
	bottom:40%;
	left:22%;
}
.pin li._f2-vr3 {
	top:9.6%;
	right:34%;
}
.pin li._f2-vr4 {
	top:29%;
	right:31.5%;
}
.pin li._f2-vr5 {
	top:12.7%;
	right:17.8%;
}
.pin li._f3-01-1 {
	bottom:43%;
	left:10%;
}
.pin li._f3-01-2 {
	bottom:31.2%;
	left:10%;
}
.pin li._f3-01-3 {
	bottom:43.5%;
	left:21.5%;
}
.pin li._f3-01-4 {
	bottom:23.8%;
	left:18.2%;
}
.pin li._f3-02-1 {
	bottom:13.2%;
	left:22%;
}
.pin li._f3-03-1 {
	top:34%;
	left:34.6%;
}
.pin li._f3-04-1 {
	top:19.7%;
	left:49.3%;
}
.pin li._f3-05-1 {
	top:13%;
	right:26.3%;
}
.pin li._f3-vr1 {
	bottom:34.2%;
	left:2.5%;
}
.pin li._f3-vr2 {
	bottom:22%;
	left:9.3%;
}
.pin li._f3-vr3 {
	bottom:44%;
	left:15.5%;
}
.pin li._f3-vr4 {
	bottom:12.5%;
	left:26.8%;
}
.pin li._f3-vr5 {
	bottom:33.5%;
	left:27.8%;
}
.pin li._f3-vr6 {
	bottom:49.5%;
	left:40%;
}
.pin li._f3-vr7 {
	top:24.5%;
	right:41.5%;
}
.pin li._f5-01-1 {
	bottom:43%;
	left:23.8%;
}
.pin li._f5-01-2 {
	bottom:41.5%;
	left:47.6%;
}
.pin li._f5-02-1 {
	bottom:23.2%;
	left:20%;
}
.pin li._f5-03-1 {
	top:24.5%;
	right:42.5%;
}
.pin li._f5-vr1 {
	bottom:35.5%;
	left:29.7%;
}
.pin li._f5-vr2 {
	bottom:23.4%;
	left:43.5%;
}
.pin li._f5-vr3 {
	top:26.5%;
	right:34.5%
}
.pin li._f5-vr4 {
	top:41%;
	right:35%;
}
#floor360 .container {
	padding: 0 7rem;
}
section[id*="floor"] .puImg.grid.col-3 {
	grid-template-columns: 54.5% 1fr;
}
.panoramaPanel {
	display: none;
	opacity: 0;
	transition: opacity .2s .8s;
}
.panoramaPanel.current {
	display: block;
	opacity: 1;
}
.panorama-imgs {
	margin-bottom: 4rem;
}
.panorama-imgs .txt {
	font-size: 112.5%;
	margin-top: 1rem;
}
.slick-arrow {
	display: block;
	width: 3rem;
	height: 3rem;
	background: url(../img/arrow_nav.svg) center center no-repeat;
	background-size: contain;
	position: absolute;
	top: 50%;
	right: -4rem;
	transform: translateY(-50%);
	filter: grayscale(1);
	opacity: .8;
	cursor: pointer;
	transition: .2s;
}
.slick-arrow.prev {
	right: auto;
	left: -4rem;
	transform: translateY(-50%) rotate(180deg);
}
.slick-arrow:hover {
	opacity: .5;
}

.pano {
	position: relative;
	padding-bottom: 46%;
	width: 100%;
	height: 0;
	overflow: hidden;
	margin-inline: auto;
}
.pano iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.panoramaImgWrap {
  width:92rem;
  aspect-ratio: 370/185;
}
.panoramaImg {
  width: 100%;
  height: 100%;
}
.panorama-navs {
  list-style: none;
  display: flex;
  justify-content: center;
  padding-left: 0;
  margin-left: -3px;
  margin-right: -3px;
	opacity: 0;
	transition: .2s;
}
.panoramaPanel.current .panorama-navs.slick-initialized {
	opacity: 1;
}
.panorama-navs li {
  width: calc(100% / 7);
  padding: 0 1.5rem;
}
.panorama-navs li > a {
  display: inline-block;
  background-color: #000;
  position: relative;
}
.panorama-navs li > a > img {
  width: 100%;
  opacity: .8;
  height: auto;
}
.panorama-navs li > a:hover img {
  opacity: 1;
  cursor: pointer;
}
.panorama-navs li .txt {
	text-align: left;
	font-size: 112.5%;
}


@media(max-width: 599px) {
  .panorama-navs li {
    width: calc(100% / 4);
  }
}
#floormapFloor .commonFloorWrap .floorNav a::after {
	display: none;
}
.floorCont dl {
	background: #fff;
	color: #000;
	padding: 2rem 3rem;
	text-align: left;
}
.floorCont dl + dl {
	margin-top: 3rem;
}
.floorCont dt {
	position: relative;
	padding-bottom: 1rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid #000;
}
.floorCont dt h2 {
	font-weight: 500;
	color: var(--c_bl);
	line-height: 1.2;
	font-weight: 600;
}
.floorCont dt h2 small {
	display: inline-block;
	font-size: 65%;
}
.floorCont dt .num {
	position: absolute;
	top: .2rem;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 500;
	background: var(--c_bl);
	color: #fff;
	text-align: center;
	font-size: 1.9rem;
	width: 2.4rem;
	border-radius: 50%;
	aspect-ratio: 1;
}
.floorCont .btnbox {
	margin-top: 2rem;
}













/*ieハック*/
@media screen\0  {
}

/*********************************/
/* タブレット用のスタイル記述 */
/*********************************/
@media screen and (max-width: 1150px) {
	html {
		font-size: .8vw;
	}
}

/*********************************/
/* スマートフォン用のスタイル記述 */
/*********************************/
@media screen and (max-width: 780px) {
/*全体レイアウト
---------------------------------------------------------*/
	html {
		font-size: 2.7777777vw;
	}
	body {
		padding-top: 6.6rem;
		font-size: 1.4rem;
		line-height: 1.5
	}
	body.active {
		overflow: hidden;
	}
	article > section {
		padding: 4rem 0;
	}
	.tit {
		font-size: 3rem;
		margin-bottom: 3rem;
	}
	/*header
	-------------------------------------------------------*/
	#header {
		position: fixed!important;
		z-index: 990;
	}
	#header.active {
			z-index: 9999;
	}
	.hWrap {
		height: 6.6rem;
		padding: 1rem 0;
		background: #fff;
	}
	.logoBox {
		max-width: 21rem;
	}
	.logoBox .txt {
		margin-top: 0.2rem;
		font-size: 1.2rem;
	}
	.menuIconWrap {
		display: block;
		position: fixed;
		top: .5rem;
		right: 0;
		width: 5.6rem;
		height: 5.6rem;
		z-index: 99999;
		cursor: pointer;
		border-left: 1px solid rgba(0,0,0,.1);
		transition: .4s;
		margin-left: auto;
	}
	.menuIcon span {
		position: absolute;
		left: 0;
		right: 0;
		margin: 0 auto;
		width: 3rem;
		height: 2px;
		background: var(--c_aq);
		z-index: 10;
		transition: .2s;
		transform-origin: center;
	}
	.menuIcon span:nth-of-type(1) {top: 1.7rem;}
	.menuIcon span:nth-of-type(2) {bottom: 2.7rem;}
	.menuIcon span:nth-of-type(3) {bottom: 1.7rem;}
	.menuIconWrap.active span:nth-of-type(1) {
		-webkit-transform: translateY(1rem) rotate(45deg);
		transform: translateY(1rem) rotate(45deg);
	}
	.menuIconWrap.active span:nth-of-type(2) {
		opacity: 0;
	}
	.menuIconWrap.active span:nth-of-type(3) {
		-webkit-transform: translateY(-1.1rem) rotate(-45deg);
		transform: translateY(-1.1rem) rotate(-45deg);
	}
	#nav {
		position: fixed;
		top: 0;
		bottom: 0;
		right: 0;
		z-index: 10;
		width: 100%;
		transition: 0.2s 0s ease-in-out;
		overflow-y: auto;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		display: block;
		padding: 0;
		background: #f1f1f1;
		opacity: 0;
		pointer-events: none;
		z-index: -1;
	}
	#nav.active {
		top: 6.6rem;
		opacity: 1;
		pointer-events: all;
		z-index: 999999;
	}
	.globalnav {
		flex-direction: column;
		gap: 0;
	}
	.globalnav a {
		width: 100%;
		padding: 1.2rem;
		border-left: none!important;
		border-right: none!important;
	}
	.nav {
		width: 90%;
		margin: 2rem auto 0;
		display: block;
		border: 1px solid rgba(0,0,0,.1);
	}
	.nav li:not(:first-of-type) {
		border-top: 1px solid rgba(0,0,0,.1);
	}
	.nav a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		text-align: left;
		padding: 1.2rem 3rem;
	}
	.nav a:not(.blank)::after {
		content: "";
		display: block;
		background: url(../img/arrow.svg) center center no-repeat;
		background-size: contain;
		width: 1.1rem;
		height: 0.8rem;
	}
	.nav a::before {
		display: none;
	}
	.navClose {
		display: block;
		margin: 3rem auto 0;
		max-width: 15rem;
		background: var(--c_bl);
		border-radius: 10rem;
		text-align: center;
		color: #fff;
		padding: 1rem;
		position: relative;
	}
	.navClose::after {
		content: "";
		display: block;
		background: #fff;
		width: 1.3rem;
		aspect-ratio: 1;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		right: 2rem;
		clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
	}

	/*footer
	------------------------------------------------------*/
	.fWrap {
		display: block;
		padding: 4rem 0;
	}
	.fLft {
		margin-bottom: 3rem;
	}
	.fRht {
		display: block;
	}
	.fLogo .logoBox {
		max-width: 30rem;
	}
	.fLogo .logoBox .txt {
		font-size: 1.4rem;
		margin-top: 0.5rem;
	}
	.fRht .globalnav {
		gap: 1rem 0;
		margin-bottom: 3rem;
	}
	.fNav {
		grid-template-columns: auto 1fr;
		gap:1rem;
		white-space: nowrap;
	}
	.fNav a::before {
		margin-right: 0.2rem;
	}

	/*toppage
	------------------------------------------------------*/
	.mainArea {
		opacity: 1;
		aspect-ratio: auto;
		min-height: auto;
		/* height: auto!important; */
	}
	.mainMovie video {
		/* position: relative;
		top: 0;
		left: 0;
		transform: none;
		width: 100%;
		min-height: auto;*/
		height: auto; 
	}
	.mainMovieSp {
		display: block;
		position: relative;
		overflow: hidden;
	}
	.mainMovieSp video {
		position: absolute;
		top: 50%;
		margin: auto;
		min-width: 100vw;
		min-height: 100%;
		width: auto;
		height: auto;
		z-index: -1;
		left: 50%;
		transform: translate(-50%,-50%);
	}
	.mainTtl {
		left: 5%;
		bottom: 40%;
	}
	.act .mainTtl {
		animation: fv2 .8s 0s var(--tr_cb) forwards;
	}
	@keyframes fv2 {
		0% {}
		85% {
			left: 0;
			bottom: 3rem;
		}
		100% {
			left: 0;
			bottom: 3rem;
			color: #fff;
		}
	}
	.mainTtl h1 {
		font-size: 1.4rem;
		white-space: nowrap;
	}
	.mainTtl h1 strong {
		font-size: 3.2rem;
	}
	.topContArea {
		padding: 6rem 0;
	}
	.topContArea .tri {
		width: 100%;
		height: 75%;
	}
	.topWrap {
		display: block;
	}
	.topWrap .img {
		height: 22.5rem;
		margin-bottom: 2rem;
	}
	.topBox {
		width: 100%;
	}
	.topBox h2 {
		font-size: 3rem;
		margin-bottom: 2rem;
	}
	.btnbox {
		margin-top: 3rem;
	}
	.btn._mail {
		font-size: 1.6rem;
		margin-top: 0;
	}
	.linkNav {
		display: block;
	}
	.linkNav li {
		width: 100%;
	}
	.linkNav li a h2 {
		font-size: 3rem;
	}
	.imgSlider figure {
		margin-right: 1.5rem;
		width: 14.4rem;
		width: calc(100vw / 2.5);
	}
	.imgSlideWrap + .imgSlideWrap {
		margin-top: 1.5rem;
	}
	.btn:not(._360):not(._mail):before {
		display: none!important;
	}

	/*subpage
	------------------------------------------------------*/
	#subPage {
		background-size: 400% auto;
	}
	.pageTtlWrap {
		position: relative;
		padding-bottom: 3.5rem;
	}
	.pageTtl {
		width: 100%;
		height: 6rem;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	.pageTtl h1 {
		font-size: 2rem;
	}
	.pageImg {
		margin-left: 0;
		height: 15rem;
	}

	/*about
	------------------------------------------------------*/
	.pageTxtArea h2 {
		font-size: 1.8rem;
		margin-bottom: 2rem;
	}
	.pageTxtArea .txt-lh {
		text-align: left;
	}
	.pageContWrap {
		display: block;
	}
	.pageContWrap .img {
		height: 22.5rem;
		margin-bottom: 2rem;
	}
	.pageContWrap .topBox {
		width: 100%;
	}
	.pageContWrap .topBox h2 {
		font-size: 3rem;
	}
	#aboutContents {
		padding-bottom: 10rem;
		background-size: 400% auto;
	}
	.overviewImg {
		height: 12rem;
		margin-bottom: 6rem;
	}
	.overviewArea h2 {
		font-size: 3rem;
	}
	.overviewTbl {
		display: grid;
		grid-template-columns: repeat(1,1fr);
	}
	.overviewTbl dt, .overviewTbl dd {
		padding: 1rem 3rem;
	}
	.overviewTbl dt {
		border-bottom: none;
	}
	.overviewTbl dd {
		border-left: 1px solid #000;
	}
	.overviewTbl dt:first-of-type + dd {
		border-top: none;
	}

	/*access
	------------------------------------------------------*/
	.gmap {
		height: 20rem;
	}
	.accessWrap, .traffic {
		grid-template-columns: repeat(1,1fr);
	}
	.traffic {
		margin-top: 6rem;
	}
	.traffic dt {
		font-size: 1.8rem;
		margin-bottom: 1rem;
	}
	.traffic dd strong {
		font-size: 1.6rem;
	}
	.traffic dd .txt + .txt {
		margin-top: 1rem;
	}


	/*research
	------------------------------------------------------*/
	.pageAnc {
		margin-top: 4rem;
	}
	.pageAnc {
		gap: 1rem 2%
	}
	.pageAnc li {
		width: 49%;
	}
	.pageAnc a {
		width: 100%;
		font-size: 1.6rem;
	}
	.kankyoWrap {
		display: block;
	}
	.kankyoWrap h2 {
		font-size: 3rem;
		margin-bottom: 2rem;
	}
	.worksAnchor {
		width: 32rem;
		margin: 4rem auto 0;
	}
	.worksAnchor li {
		width: 34.5%;
	}
	.worksAnchor li a {
		gap: .5rem;
		padding-bottom: 0.7rem;
	}
	.worksAnchor li figure {
		max-width: 6rem;
		height: 3.5rem;
	}
	.worksAnchor li a h4 {
		font-size: 1.3rem;
		white-space: nowrap;
	}
	.worksAnchor h3 {
		font-size: 1.8rem;
		font-weight: 600;
	}
	.worksAnchor li a::after {
		width: 1.3rem;
		bottom: 0.7rem;
	}
	.secWrap {
		display: block;
	}
	.secWrap > .img {
		width: 100%;
	}
	.secBox {
		margin-top: 2rem;
	}
	.secBox dt {
		margin-bottom: 2rem;
	}
	.secBox h2 {
		font-size: 3rem;
	}
	.secBox dt figure img {
		max-height: 4.5rem;
	}
	.secNav {
		grid-auto-flow: row;
	}
	.secNav li {
		max-height: none;
	}
	#works {
		background-size: 400% auto;
	}
	.floorTtl {
		display: block;
	}
	.floorTtl h2 {
		font-size: 3rem;
		margin-bottom: 1rem;
	}
	.floorNav {
		gap:1rem
	}
	.floorNav a {
		font-size: 1.4rem;
		gap: .5rem
	}
	.floorMapWrap {
		width: 75rem;
	}
	.floorMapArea {
		margin-top: 3rem;
		overflow: auto;
	}
	.pin li {
		width: 3.2rem;
	}
	.pin li a {
		font-size: 2.2rem;
		padding-bottom: 0.5rem;
	}
	.pin li._01-2 {
		left: 8.5%;
		bottom: 28%;
	}
	.btn360Box {
		width: 100%;
		margin-top: 3rem;
	}
	.btn._360 {
		font-size: 1.6rem;
		padding: 1rem 2rem;
	}
	.btn._360::before {
		width: 4rem;
	}
	.researchFloorWrap .floorNav {
		width: 100%;
		grid-auto-flow: row;
		grid-template-columns: repeat(2,1fr);
		gap: 1.5rem .5rem;
	}
	.researchFloorWrap .floorNav a {
		font-size: 1.4rem;
	}
	.researchFloorWrap .floorNav .num {
		width: 1.6rem;
		min-width: 1.6rem;
		font-size: 1.3rem;
	}
	.researchFloorWrap .floorNav a::after {
		display: none;
	}
	#researchFloor .commonFloorWrap .floorNav {
    grid-template-columns: repeat(2, 1fr);
	}
	section .slick-dots {
		right: 1rem;
	}
	.slick-dots li {
		margin: 0 1rem!important;
	}
	.facArea h3 {
		font-size: 1.8rem;
	}
	.fac li {
		width: 49%;
	}
	.fac li .txt .num {
		top: .25rem;
	}
	.fac li .img::after {
		width: 2.5rem;
		height: 2.5rem;
		right: 1rem;
		bottom: 1rem;
	}
	.fac {
		gap: 2rem 2%;
	}
	.moreBtn {
		margin-top: 3rem;
	}
	.facArea {
		padding: 4rem 0;
	}
	.popupArea {
		padding: 3rem 2rem;
	}
	.popupArea dt h2 {
		font-size: 1.6rem;
	}
	.popupArea dt .num {
		top: -.2rem;
	}
	.popupArea dd {
		line-height: 1.6;
	}
	.cont02 dt {
		font-size: 1.6rem;
	}
	.cont02 dt::before {
		width: 1.4rem;
	}
	.lity .lity-close {
		width: 5rem;
		height: 5rem;
		top: -3rem !important;
		right: -1rem;
	}
	.popupArea .puImg.grid.col-6  {
		/* grid-template-columns: repeat(2,1fr); */
	}
	.puImg.grid {
		height: 17.28rem;
	}
	

	/*training
	------------------------------------------------------*/
	.featuresArea .secBox {
		padding-left: 0;
	}
	.secBox dt .num {
		width: 5rem;
	}
	.secBox dt .num strong {
		font-size: 200%;
	}
	.commonFloorWrap {
		display: block;
	}
	.commonFloorWrap .floorNav {
		grid-auto-flow: row;
		grid-template-columns: 12.5rem 1fr;
		gap: 1.5rem .5rem;
	}
	.commonFloorWrap .floorNav a {
		font-size: 1.4rem;
		height: 100%;
		white-space: nowrap;
	}
	.commonFloorWrap .floorNav .num {
		width: 1.6rem;
		min-width: 1.6rem;
		font-size: 1.3rem;
	}
	.commonFloorWrap .floorNav a::after {
		width: 1.4rem;
		display: none;
	}
	.trainingFloorMap {
		margin-top: 8rem;
	}
	.trainingFloorMap > * + * {
		margin-top: 2rem;
	}
	.floorMapWrap._training {
		width: 45rem;
	}
	.trainingFac ul,
	#facA .trainingFac ul,
	#facD .trainingFac ul {
		margin: 0 auto;
		width: fit-content;
		display: grid;
		grid-template-columns: repeat(2,1fr);
		gap: 1.2rem 2rem;
	}
	.trainingFac li a {
		width: 100%;
		font-size: 1.4rem;
		line-height: 1.2;
		height: 100%;
		gap: .8rem;
	}
	#facA .trainingFac ul {
		gap: 1.2rem 4rem;
	}
	.trainingImgsArea h2 {
		font-size: 3rem;
		flex-direction: column;
		align-items: flex-start;
	}
	.trainingMovies {
		grid-template-columns: repeat(1, 1fr);
	}
	.trainingMovies .txt {
		font-size: 1.8rem;
		text-align: center;
	}
	.trainingImgs,.trainingImgs._02 {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: 1fr 10rem;
		gap: 1rem;
	}
	.trainingImgs li._01 { grid-area: 1 / 1 / 2 / 3; }
	.trainingImgs li._02 { grid-area: 2 / 1 / 3 / 2; }
	.trainingImgs li._03 { grid-area: 2 / 2 / 3 / 3; }
	.trainingImgs li._04 { grid-area: 1 / 1 / 2 / 3; }
	.trainingImgs li._05 { grid-area: 2 / 1 / 3 / 2; }
	.trainingImgs li._06 { grid-area: 2 / 2 / 3 / 3; }
	.trainingImgs + .trainingImgs {
		margin-top: 1rem;
	}

	/*floor-map
	------------------------------------------------------*/
	#researchFloor {
		margin-top: 2rem;
	}
	.floortab {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
		margin-bottom: 4rem;
	}
	.publicFloorWrap .floortab {
		grid-template-columns: repeat(2, 1fr);
	}
	.floortab li {
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 2rem;
		padding: .6rem 1.5rem .6rem 0;
		padding-right: 1.5rem;
	}
	.publicFloorWrap .floortab li {
		font-size: 1.4rem;
		min-height: 5.6rem;
	}
	.floortab li::after {
		width: 1.5rem;
	}
	.floorContentsArea .floorNav {
		grid-template-rows: none;
		grid-template-columns: 17.5rem 1fr;
		gap: 1.5rem .5rem;
		grid-auto-flow: row;
	}
	#floor02 .floorNav {
		grid-template-columns: 13.5rem 1fr;
	}
	.floorPanel .floorMapArea {
		margin-top: 1rem!important;
	}
	#floor04 .floorMapArea {
		margin-top: 0;
	}
	.pin li._vr {
		width: 3.2rem;
	}
	.floorPanel .floorMapWrap {
		width: 90rem;
	}
	#floor360 .container {
		padding: 0 2.5rem;
	}
	.play {
		width: 3.5rem;
	}
	.panorama-imgs {
		margin-bottom: 2rem;
	}
	.panorama-navs li {
		padding: 0 .5rem;
	}
	.slick-arrow {
		width: 2.2rem;
		right: -3rem;
		top: 43%;
	}
	.slick-arrow.prev {
		right: auto;
		left: -3rem;
	}
	.panorama-imgs .txt,
	.panorama-navs li .txt {
		font-size: 100%;
	}
	.panoramaImgWrap {
		width: 32rem;
	}
	.floorCont dl {
		padding: 2rem;
	}
	.floorCont dt h2 {
		font-size: 1.6rem;
	}
	.floorCont dt .num {
		top: -.2rem;
	}
	.floorCont dd {
		line-height: 1.6;
	}







}



