@charset "UTF-8";
/* CSS Document */

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}

img {
	width: 100%;
	border: none;
	vertical-align: bottom;
}

.pc { display: block !important; }
.sp { display: none !important; }
.sp-point { display: none !important; }


/*Setting***************************************************/
:root {
    --primary-color: #1e52a3;
    --secondary-color: #5583c0;
		--jp-primary-font: 'Noto Sans JP', sans-serif;
		--en-primary-font: 'Archivo Narrow', sans-serif;
  	--en-secondary-font: 'Inter', sans-serif;
  	--font-weight-Regular: 400;
  	--font-weight-Medium: 600;
  	--font-weight-Bold: 800;
		--text-color: #ebebeb;
		--text-color-secondary: #000;

}

::selection {
  background-color: #000;
}


body {
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
	font-family: var(--jp-primary-font);
	background: var(--primary-color);
  color: var(--text-color);
}

/*Loading*******/
.loader {
 position: fixed;
 width: 100%;
 height: 100vh;
 background-color: var(--primary-color);
 z-index: 999;
 top: 0;
 left: 0;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
}
.loader .txt {
	font-size: 15px;
	color:#fff;
	font-family: var(--en-primary-font);
	animation-name: fadeIn;
    animation-delay: 500ms;
    animation-duration: 1s;
    animation-fill-mode: forwards;
	opacity: 0;
}
.loader .anime {
	width: 5vw;
	margin: 0 0 20px 0;
}
/* ---------------------------- */
/* --- Animation --- */
/* ---------------------------- */
@keyframes fadeIn{
  0%{
    opacity: 0;
  }
  100%{
    opacity: 1;
  }
}

/*header*****/
header {
	width: 100%;
	height: 10vh;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.header-left {
	width:10%;
	margin: 0 0 0 2vw;
}
.header-left img {
	width:90px;
}
.header-right {
	width:65%;
	margin: 0 2vw 0 0;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.header-right li.h-txt {
	font-size: 1.3rem;
	color: var(--text-color-secondary);
	transition: 0.3s;
	margin: 0 0 0 2.3vw;
}
.header-right li.h-txt:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.header-right li.h-img {
	width: 18px;
	margin: 0 0 0 1.5vw;
	transition: 0.3s;
}
.header-right li.h-img:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.header-right li.contact {
	margin: 0 2vw 0 2.3vw;
}
.header-right li.contact::after {
	content:'';
  display: inline-block;
  width: 15px;
  height: 12px;
  background-image: url(../img/common/header_img_window_b.svg);
	background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
	margin: 0 0 0 0.3vw;
}

.header-right li.english-btn a {
	border-radius: 20px;
	display: flex;
  align-items: center;
  justify-content: center;
	padding: 1vh 2.5vw;
	font-size: 1.3rem;
	margin: 0 0 0 3vw;
}
.header-right li.english-btn a:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.header-right .eng-nav a {
	background: var(--primary-color);
}
.header-right .eng-nav a::after {
	content:'';
  display: inline-block;
  width: 15px;
  height: 12px;
  background-image: url(../img/common/header_img_window_w.svg);
	background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
	margin: 0 0 0 0.3vw;
}

/*header下層*****/
.header-right-under {
	width:60%;
	margin: 0 2vw 0 0;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.header-right-under li.h-txt {
	font-size: 1.3rem;
	color: #fff;
	transition: 0.3s;
	margin: 0 0 0 2.3vw;
}
.header-right-under li.h-txt:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.header-right-under li.h-img {
	width: 18px;
	margin: 0 0 0 1.5vw;
	transition: 0.3s;
}
.header-right-under li.h-img:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.header-right-under li.contact {
	margin: 0 2vw 0 2.3vw;
}
.header-right-under li.contact::after {
	content:'';
  display: inline-block;
  width: 15px;
  height: 12px;
  background-image: url(../img/common/header_img_window_w.svg);
	background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
	margin: 0 0 0 0.3vw;
}

.header-right-under li.english-btn a {
	border-radius: 20px;
	display: flex;
  align-items: center;
  justify-content: center;
	padding: 1vh 2.5vw;
	font-size: 1.3rem;
	margin: 0 0 0 3vw;
	transition: 0.3s;
	color: var(--primary-color);
}
.header-right-under li.english-btn a:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.header-right-under .eng-nav a {
	background: #fff;
}
.header-right-under .eng-nav a::after {
	content:'';
  display: inline-block;
  width: 15px;
  height: 12px;
  background-image: url(../img/common/header_img_window.svg);
	background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
	margin: 0 0 0 0.3vw;
}




/*fixd-header*****/
.fixed-header  {
	width: 100%;
	height: 8vh;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: rgba(255,255,255,0.8);
	z-index: 991;
	position: fixed;
	top: -10vh;
  left: 0;
	transition: 0.5s;
}
.fixed-header.is-show {
  top: 0;
  visibility: visible;
}
.fixed-header .header-left {
	width:10%;
	margin: 0 0 0 2vw;
}
.fixed-header .header-left img {
	width:90px;
}
.fixed-header .header-right {
	width:60%;
	margin: 0 2vw 0 0;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.fixed-header .header-right li.h-txt {
	font-size: 1.3rem;
	color: var(--text-color-secondary);
	transition: 0.3s;
	margin: 0 0 0 2.3vw;
}
.fixed-header .header-right li.h-txt:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.fixed-header .header-right li.h-img {
	width: 18px;
	margin: 0 0 0 1.5vw;
	transition: 0.3s;
}
.fixed-header .header-right li.h-img:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.fixed-header .header-right li.contact {
	margin: 0 2vw 0 2.3vw;
}
.fixed-header .header-right li.contact::after {
	content:'';
  display: inline-block;
  width: 15px;
  height: 12px;
  background-image: url(../img/common/header_img_window_b.svg);
	background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
	margin: 0 0 0 0.3vw;
}


.fixed-header .header-right li.english-btn a {
	border-radius: 20px;
	display: flex;
  align-items: center;
  justify-content: center;
	padding: 1vh 2.5vw;
	font-size: 1.3rem;
	margin: 0 0 0 3vw;
	transition: 0.3s;
	color:#fff;
}
.fixed-header .header-right li.english-btn a:hover {
	opacity: 0.6;
	transition: 0.3s;
}
.fixed-header .header-right .eng-nav a {
	background: var(--primary-color);
}
.fixed-header .header-right .eng-nav a::after {
	content:'';
  display: inline-block;
  width: 15px;
  height: 12px;
  background-image: url(../img/common/header_img_window_w.svg);
	background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
	margin: 0 0 0 0.3vw;
}

.hamburger-menu {
	display: none;
	}

/*kv*****/
.kv-area {
	width: 100%;
	height: 85vh;
	margin: -10vh auto 0;
	background-image: url(../img/index_kv_img_bg.png);
	background-size:  cover;
}
.kv-inner {
	width: 50%;
	margin: 0 auto;
	padding: 25vh 0 0 0;
}
.kv-inner .catch {
	width: 40vw;
	margin: 0 auto 3vh;
}
.kv-inner .caption {
	font-size: 2rem;
	line-height: 2;
	text-align: center;
	font-weight: 600;
	color: #1e52a2;
	/*text-shadow: 0px 1px 8px rgba(2, 11, 39, 0.5);*/
}

/*section01*****/
.movie-area {
	width: 100%;
	margin: -20vh auto 20vh;
}
.movie-area .innerbox {
	width: 100%;
	margin: 0 auto;
}
.movie-area .innerbox .image {
	width: 100%;
	margin: 0 auto 1.5vh;
}
.movie-area .innerbox .text {
	width: 100%;
	margin: 0 auto;
	font-size: 1.4rem;
	text-align: left;
	text-align: justify;
	line-height: 1.8;
	font-weight: 300;
}
.movie-area .innerbox hr {
	border: none;
	border-bottom: 1px solid #FFF;
	margin: 2vh 0;
	width: 1.8vw;
}
.movie-area .innerbox .date {
	font-size: 1.3rem;
	text-align: left;
	font-weight: normal;
	font-family: var(--en-primary-font);
}
.swiper--wrapper {
  /* wrapperのサイズを調整 */
  width: 100%;
}
.swiper-slide {
  /* スライドのサイズを調整、中身のテキスト配置調整、背景色 */
  color: #ffffff;
  width: 30%;
  text-align: center;
}
.link-youtube {
	display: block;
	transition: 0.5s;
}
.link-youtube:hover {
	filter: brightness(0.5);
	transition: 0.5s;
}

/*section02**/
section.contents-initiative {
	width: 100%;
	margin: 10vh 0 25vh;
	background: url(../img/index_section02_img_title.svg) no-repeat;
	background-position: 0 0;
	background-size: 13vw;
}
.contents-initiative-inner {
	width: 87vw;
	margin: 0 0 0 13vw;
	padding: 10vh 0 5vh;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
.contents-initiative-inner .txtbox {
	width: 30%;
	margin: 0 0 0 auto;
}
.contents-initiative-inner .txtbox .title {
	font-size: 2.5vw;
	font-weight: 700;
	margin: 0 0 3vh 0;
	line-height: 1.5;
}
.contents-initiative-inner .txtbox .txt {
	font-size: 1.2vw;
	font-weight: 400;
	line-height: 2.2;
}
.contents-initiative-inner .imgbox {
	width: 40%;
	margin: 0 10vw 0 5vw;
}
/*section03**/
section.contents-release {
	width: 100%;
	margin: 0;
	background:var(--secondary-color) url(../img/index_section03_img_title.svg) no-repeat;
	background-position: right 0 top 10vh;
	background-size: 13vw;
}
.contents-release-inner {
	width: 70vw;
	margin: 0 0 0 10vw;
	padding: 15vh 0;
}
.contents-release-inner .title {
	font-size: 3.0rem;
	font-weight: 700;
	margin: 10vh 0 3vh 0;
	line-height: 1.5;
}
.contents-release-inner .txt {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 2.2;
}
.release-box {
	width: 100%;
	margin: 5vh 0;
	display: flex;
	justify-content: space-between;
	flex-wrap:wrap;
}
.release-box .box {
	width: 47%;
	margin: 0 0 8vh 0;
}
.link-wrapper {
	display: block;
	transition: 0.5s;
}
.link-wrapper:hover {
	opacity: 0.5;
	transition: 0.5s;
}

.release-box .box .thumb {
	margin: 0;
}
.release-box .box .title {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 1.2vh 0 2vh 0;
	text-align: justify;
}
.release-box .box .title span {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 1.2vh 0 0 0;
	text-align: justify;
}
.release-box .box .categorybox {
	width: 100%;
	display: flex;
	justify-content: flex-start;
	margin: 2vh 0 1.2vh;
}
.release-box .box .categorybox p {
	background: #ebebeb;
	padding: 6px 10px;
	color: var(--primary-color);
	font-size: 1.4rem;
	margin: 0 10px 0 0;
	font-weight: 600;
}
.release-box .box .date {
	font-size: 1.3rem;
	margin: 0;
	font-weight: 500;
	font-family: var(--en-primary-font);
}
.btn_list_release {
	display: inline-block;
	margin: 0 0 150px;
}
.btn_list_release .btn-txt {
	font-weight: var(--font-weight-Bold);
	font-size: 1.5rem;
}
.btn_list_release .btn-txt::after {
		content: "";
    display: inline-block;
    width: 57px;
		height: 10px;
    background-image: url(../img/common/btn_object_img01.svg);
    background-position: center;
    background-size: contain;
		margin: 0 0 5px 10px;
}
.btn-link {
	background: #fff;
	padding: 23px 30px;
	transition: 0.8s;
	color: var(--primary-color);
}
.btn-link:hover {
	background: var(--primary-color);
	color: #fff;
	transition: 0.8s;
}


/*section04**/
section.contents-technology {
	width: 100%;
	margin: 0;
	background:#2B63B2 url(../img/index_section04_img_title.svg) no-repeat;
	background-position: left 0 top 10vh;
	background-size: 13vw;
}
.contents-technology-inner {
	width: 77vw;
	margin: 0 0 0 18vw;
	padding: 10vh 0;
}
.contents-technology-inner .title {
	font-size: 3.0rem;
	font-weight: 700;
	margin: 10vh 0 3vh 0;
	line-height: 1.5;
}
.contents-technology-inner .txt {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 2.2;
}
.technology-box {
	display: grid;
	grid-template-columns: repeat(4, 1fr); /* 4列レイアウト */
	gap: 1.2vh 0.7vw;
	width: 100%;
	margin: 5vh 0 10vh 0;
	grid-auto-rows: 1fr; /* 高さを均等に揃える */
}
.technology-box .box {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%; /* 高さを揃える */
}
.technology-box .box-icon {
	margin: 0 0 2.5vh 0;
}
.technology-box .box-title {
	font-size: 1.8rem;
	color: var(--text-color-secondary);
	font-weight: var(--font-weight-Medium);
	margin: 0 0 0.7vh 0;
}
.technology-box .box-txt {
	font-size: 1.2rem;
	color: var(--text-color-secondary);
	line-height: 1.6;
	margin: 0 0 2.5vh 0;
	text-align: justify;
}
.technology-box .box-detail {
	font-size: 1.2rem;
	color: var(--primary-color);
	font-weight: var(--font-weight-Medium);
	margin: 0;
}
.technology-box .box-detail::after {
		content: "";
    display: inline-block;
    width: 20px;
		height: 20px;
    background-image: url(../img/common/btn_object_img02.svg);
    background-position: center;
    background-size: contain;
		margin: 0 0 -5px 5px;
}
.link-wrapper-technology {
	display: block;
	transition: 0.5s;
	padding: 2.5vh 1.3vw;
	background: #fff;
	height: 100%; /* box 全体に広げる */
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.link-wrapper-technology:hover {
	opacity: 0.6;
	transition: 0.5s;
}


/*footer*****/
.footer-area {
	width: 100%;
	background: #3E3A39;
	padding: 10vh 0 0;
}
.footer-area-inner {
	width: 90%;
	display: flex;
	justify-content: space-between;
	margin: 0 auto 10vh;
	align-items: center;
}
.footer-area-inner .logo {
	width: 90px;
}
.footer-area-inner .link-area {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.footer-area-inner .link-area li.official {
	color: #3E3A39;
	font-size: 1.4rem;
	font-family: var(--en-primary-font);
}
.footer-area-inner .link-area a.hp-link {
	background: #fff;
	padding: 0.6vh 2vw;
	border-radius: 5em;
	transition: 0.8s;
}
.footer-area-inner .link-area a.hp-link:hover {
	opacity: 0.6;
	transition: 0.8s;
}
.footer-area-inner .link-area li.sns {
	width: 25px;
	margin: 0 0 0 3vw;
}

.footer-area .cw-area {
	font-size: 1.1rem;
	font-family: var(--en-primary-font);
	letter-spacing: 0.2em;
	width: 100%;
	background: #333;
	text-align: center;
	padding: 1.7vh 0;
}

@media screen and (max-width: 1160px) {/* 1160px以下に適用されるCSS */
	/*header*****/
	header {
		width: 100%;
		height: 10vh;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.header-left {
		width:10%;
		margin: 0 0 0 2vw;
	}
	.header-left img {
		width:90px;
	}
	.header-right {
		display: none;
	}
	/*header下層*****/
	.header-right-under {
		display: none;
	}

	/*fixd-header*****/
	.fixed-header  {
		width: 100%;
		height: 8vh;
		display: flex;
		justify-content: space-between;
		align-items: center;
		background: rgba(255,255,255,0.8);
		z-index: 991;
		position: fixed;
		top: -10vh;
		left: 0;
		transition: 0.5s;
	}
	.fixed-header.is-show {
		top: 0;
		visibility: visible;
	}
	.fixed-header .header-left {
		width:10%;
		margin: 0 0 0 2vw;
	}
	.fixed-header .header-left img {
		width:90px;
	}
	.fixed-header .header-right {
		display: none;
	}

	/******Hambergar-nav**********/
.hamburger-menu {
	display: block;
	}
	.menu-btn {
			 display: flex;
			 height: 80px;
			 width: 80px;
			 justify-content: center;
			 align-items: center;
			 z-index: 90;
			 position: relative;
	 }

	 .menu-btn span,
	 .menu-btn span::before,
	 .menu-btn span::after {
			 content: '';
			 display: block;
			 height: 2px;
			 width: 20px;
			 border-radius: 3px;
			 background-color: #000;
			 position: absolute;
	 }
	 .menu-btn span::before {
	top: -10px;
	width: 25px;
	}
	.menu-btn span::after {
	bottom: -10px;
	width: 25px;
	}
	input[type="checkbox"]:checked + .menu-btn span {
	background-color: transparent;
	}
	input[type="checkbox"]:checked + .menu-btn span::before {
	top: 0;
	transform: rotate(45deg);
	}
	input[type="checkbox"]:checked + .menu-btn span::after {
	transform: rotate(-45deg);
	bottom: 0;
	}
	/*menuボタンチェック時****************************************************/

	 #menu-btn-check:checked ~ .menu-btn span {
			 background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
			 transition: transform 0.8s;
	 }
	 #menu-btn-check:checked ~ .menu-btn span::before {
			 bottom: 0;
			 transform: rotate(45deg);
			 transition: transform 0.8s;
	 }
	 #menu-btn-check:checked ~ .menu-btn span::after {
			 top: 0;
			 transform: rotate(-45deg);
			 transition: transform 0.8s;
	 }
	 #menu-btn-check {
		 display: none;
	}
	/*menu中身****************************************************/

	.menu-content {
		 width: 100%;
		 height: 100%;
		 position: fixed;
		 top: 0;
		 left: 0;
		 z-index: 80;
		 transition: all 0.5s;/*アニメーション設定*/
		 background-color: var(--primary-color);
		 padding: 30vh 0 0 0;
	}
	.menu-content .sp-menu-title {
	 font-size: 3.5rem;
	 font-family: var(--en-primary-font);
	 font-weight: var(--font-weight-Medium);
	 margin: 0 auto 8vh;
	 width: 70%;
	}
	.menu-content ul {
		 width: 70%;
		 margin: 0 auto;
		 font-weight: var(--font-weight-Regular);
		 font-style: normal;
		 text-align: left;
		 font-size: 1.5rem;
	}
	.menu-content ul li.m-txt {
		 list-style: none;
		 padding: 0 0 20px 0;
		 color: #FFF;
		 margin: 0 0 30px 0;
	}
	.menu-content li.contact {
	}
	.menu-content li.contact::after {
	content:'';
	 display: inline-block;
	 width: 15px;
	 height: 12px;
	 background-image: url(../img/common/header_img_window_w.svg);
	background-repeat: no-repeat;
	 background-size: contain;
	 vertical-align: middle;
	margin: 0 0 0 0.5vw;
	}
.menu-content {
		 width: 100%;
		 height: 100%;
		 position: fixed;
		 top: 0;
		 left: 100%;/*leftの値を変更してメニューを画面外へ*/
		 z-index: 80;
		 background-color: var(--primary-color);
		 transition: all 0.5s;/*アニメーション設定*/
	}
	.menu-content ul.sns-btn {
		 width: 70%;
		 display: flex;
		 justify-content: flex-start;
		 margin-top: 7vh;
	}
	.menu-content ul.sns-btn li {
		 width: 5vw;
		 margin: 0 10vw 0 0;
	}
	#menu-btn-check:checked ~ .menu-content {
		 left: 0;/*メニューを画面内へ*/
	}
	.technology-box {
		display: grid;
		grid-template-columns: repeat(2, 1fr); /* 4列レイアウト */
		gap: 1.5vh 0;
		width: 100%;
		margin: 5vh 0 10vh 0;
		grid-auto-rows: 1fr; /* 高さを均等に揃える */
	}
	.technology-box .box {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		height: 100%; /* 高さを揃える */
	}
	.technology-box .box-icon {
		margin: 0 auto 2.5vh;
		width: 70%;
	}



}

@media screen and (max-width: 767px) {/* 767px以下に適用されるCSS（スマホ用） */

	.pc { display: none !important; }
	.sp { display: block !important; }
	.sp-point { display: inline !important; }

/*Loading*******/
	.loader {
	 position: fixed;
	 width: 100%;
	 height: 100vh;
	 background-color: var(--primary-color);
	 z-index: 999;
	 top: 0;
	 left: 0;
	 display: flex;
	 flex-direction: column;
	 align-items: center;
	 justify-content: center;
	 padding: 0 0 40vh 0;
	}
	.loader .txt {
		font-size: 15px;
		color:#fff;
		font-family: var(--en-primary-font);
		animation-name: fadeIn;
	    animation-delay: 500ms;
	    animation-duration: 1s;
	    animation-fill-mode: forwards;
		opacity: 0;
	}
	.loader .anime {
		width: 15vw;
		margin: 0 0 3vh 0;
	}

	/*header*****/
	header {
		width: 100%;
		height: 10vh;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.header-left {
		width:10%;
		margin: 0 0 0 2vw;
	}
	.header-left img {
		width:90px;
	}
	.header-right {
		display: none;
	}
	/*header下層*****/
	.header-right-under {
		display: none;
	}

	/*fixd-header*****/
	.fixed-header  {
		width: 100%;
		height: 8vh;
		display: flex;
		justify-content: space-between;
		align-items: center;
		background: rgba(255,255,255,0.8);
		z-index: 991;
		position: fixed;
		top: -10vh;
	  left: 0;
		transition: 0.5s;
	}
	.fixed-header.is-show {
	  top: 0;
	  visibility: visible;
	}
	.fixed-header .header-left {
		width:10%;
		margin: 0 0 0 2vw;
	}
	.fixed-header .header-left img {
		width:90px;
	}
	.fixed-header .header-right {
		display: none;
}

/******Hambergar-nav**********/
  .menu-btn {
       display: flex;
       height: 80px;
       width: 80px;
       justify-content: center;
       align-items: center;
       z-index: 90;
			 position: relative;
   }

   .menu-btn span,
   .menu-btn span::before,
   .menu-btn span::after {
       content: '';
       display: block;
       height: 2px;
       width: 20px;
       border-radius: 3px;
       background-color: #000;
       position: absolute;
   }
   .menu-btn span::before {
  top: -10px;
  width: 25px;
}
.menu-btn span::after {
  bottom: -10px;
  width: 25px;
}
input[type="checkbox"]:checked + .menu-btn span {
  background-color: transparent;
}
input[type="checkbox"]:checked + .menu-btn span::before {
  top: 0;
  transform: rotate(45deg);
}
input[type="checkbox"]:checked + .menu-btn span::after {
  transform: rotate(-45deg);
  bottom: 0;
}
 /*menuボタンチェック時****************************************************/

   #menu-btn-check:checked ~ .menu-btn span {
       background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
       transition: transform 0.8s;
   }
   #menu-btn-check:checked ~ .menu-btn span::before {
       bottom: 0;
       transform: rotate(45deg);
       transition: transform 0.8s;
   }
   #menu-btn-check:checked ~ .menu-btn span::after {
       top: 0;
       transform: rotate(-45deg);
       transition: transform 0.8s;
   }
   #menu-btn-check {
     display: none;
 }
 /*menu中身****************************************************/

 .menu-content {
     width: 100%;
     height: 100%;
     position: fixed;
     top: 0;
     left: 0;
     z-index: 80;
		 transition: all 0.5s;/*アニメーション設定*/
     background-color: var(--primary-color);
		 padding: 15vh 0 0 0;
 }
 .menu-content .sp-menu-title {
	 font-size: 3.5rem;
	 font-family: var(--en-primary-font);
	 font-weight: var(--font-weight-Medium);
	 margin: 0 auto 8vh;
	 width: 70%;
 }
 .menu-content ul {
		 width: 70%;
		 margin: 0 auto;
     font-weight: var(--font-weight-Regular);
     font-style: normal;
     text-align: left;
		 font-size: 1.5rem;
 }
 .menu-content ul li {
     list-style: none;
     color: #FFF;
     margin: 0 0 2vh 0;
 }
 .menu-content li.contact {
 }
 .menu-content li.contact::after {
 	content:'';
   display: inline-block;
   width: 15px;
   height: 12px;
   background-image: url(../img/common/header_img_window_w.svg);
 	background-repeat: no-repeat;
   background-size: contain;
   vertical-align: middle;
 	margin: 0 0 0 0.5vw;
 }
 .menu-content {
     width: 100%;
     height: 100%;
     position: fixed;
     top: 0;
     left: 100%;/*leftの値を変更してメニューを画面外へ*/
     z-index: 80;
     background-color: var(--primary-color);
     transition: all 0.5s;/*アニメーション設定*/
 }
 #menu-btn-check:checked ~ .menu-content {
     left: 0;/*メニューを画面内へ*/
 }

 /*kv*****/
 .kv-area {
 	width: 100%;
 	height: 110vh;
 	margin: -10vh auto 0;
 	background-image: url(../img/index_kv_img_bg.png);
 	background-size:  cover;
 }
 .kv-inner {
 	width: 90%;
 	margin: 0 auto;
 	padding: 28vh 0 0 0;
 }
 .kv-inner .catch {
 	width: 80vw;
 	margin: 0 auto 3vh;
 }
 .kv-inner .caption {
 	font-size: 1.6rem;
 	line-height: 1.8;
 	text-align: center;
 	font-weight: 600;
 	color: #1e52a2;
 	/*text-shadow: 0px 1px 8px rgba(2, 11, 39, 0.5);*/
 }

 /*section01*****/
 .movie-area {
 	width: 90%;
 	margin: -20vh auto 20vh;
 }
 .movie-area .innerbox {
 	width: 100%;
 	margin: 0 auto;
 }
 .movie-area .innerbox .image {
 	width: 100%;
 	margin: 0 auto 1.5vh;
 }
 .movie-area .innerbox .text {
 	width: 100%;
 	margin: 0 auto;
 	font-size: 1.4rem;
 	text-align: left;
 	text-align: justify;
 	line-height: 1.5;
 	font-weight: 300;
 }

 .swiper--wrapper {
   /* wrapperのサイズを調整 */
   width: 100%;
 }

 .swiper-slide {
   /* スライドのサイズを調整、中身のテキスト配置調整、背景色 */
   color: #ffffff;
   width: 30%;
   text-align: center;
 }

 /*section02**/
 section.contents-initiative {
 	width: 100%;
 	margin: 0 auto;
 	background: url(../img/index_section02_img_title_sp.svg) no-repeat;
 	background-position: -0.5vw 0;
 	background-size: 85%;
 }
 .contents-initiative-inner {
 	width: 95%;
 	margin: 0 auto;
 	padding: 20vh 0;
 	display: flex;
	flex-direction: column;
 	align-items: center;
 }
 .contents-initiative-inner .txtbox {
 	width: 90%;
 	margin: 0 auto;
 }
 .contents-initiative-inner .txtbox .title {
 	font-size: 2.5rem;
 	font-weight: 700;
 	margin: 0 0 1.5vh 0;
 	line-height: 1.5;
 }
 .contents-initiative-inner .txtbox .txt {
 	font-size: 1.4rem;
 	font-weight: 400;
 	line-height: 2;
	text-align: justify;
 }
 .contents-initiative-inner .imgbox {
 	width: 90%;
 	margin: 5vh auto 3vh;
}

/*section03**/
section.contents-release {
	width: 100%;
	margin: 0 auto;
	background:var(--secondary-color) url(../img/index_section03_img_title_sp.svg) no-repeat;
	background-position: -0.5vw 10vh;
	background-size: 85%;
}
.contents-release-inner {
	width: 85%;
	margin: 0 auto;
	padding: 20vh 0;
}
.contents-release-inner .title {
	font-size: 2.5rem;
	font-weight: 700;
	margin: 10vh 0 1.5vh 0;
	line-height: 1.5;
}
.contents-release-inner .txt {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2;
	text-align: justify;
}
.release-box {
	width: 100%;
	margin: 5vh 0;
	display: flex;
	flex-direction: column;
	flex-wrap:wrap;
}
.release-box .box {
	width: 100%;
	margin: 0 0 7vh 0;
}
.link-wrapper {
	display: block;
	transition: 0.5s;
}
.link-wrapper:hover {
	opacity: 0.5;
	transition: 0.5s;
}

.release-box .box .thumb {
	margin: 0;
}
.release-box .box .title {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 1.2vh 0 1vh 0;
	text-align: justify;
}
.release-box .box .title span {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 1.2vh 0 0 0;
	text-align: justify;
}
.release-box .box .categorybox {
	width: 100%;
	display: flex;
	justify-content: flex-start;
	margin: 2vh 0 1.2vh;
}
.release-box .box .categorybox p {
	background: #ebebeb;
	padding: 6px 10px;
	color: var(--primary-color);
	font-size: 1.4rem;
	margin: 0 10px 0 0;
	font-weight: 600;
}
.release-box .box .date {
	font-size: 1.3rem;
	margin: 0;
	font-weight: 500;
	font-family: var(--en-primary-font);
}
.btn_list_release {
	display: inline-block;
	margin: 0;
}

/*section04**/
section.contents-technology {
	width: 100%;
	margin: 0;
	background:#2B63B2 url(../img/index_section04_img_title_sp.svg) no-repeat;
	background-position: -0.5vw 10vh;
	background-size: 85%;
}
.contents-technology-inner {
	width: 85%;
	margin: 0 auto;
	padding: 20vh 0;
}
.contents-technology-inner .title {
	font-size: 2.5rem;
	font-weight: 700;
	margin: 10vh 0 1.5vh 0;
	line-height: 1.5;
}
.contents-technology-inner .txt {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2;
	text-align: justify;
}
.technology-box {
	grid-template-columns: 1fr; /* 1列表示にする */
	gap: 2vh 0;
	width: 100%;
	margin: 5vh 0 10vh 0;
}
.technology-box .box {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	letter-spacing: 0;
}
.technology-box .box-icon {
	margin: 0 auto 1.5vh;
	width: 50%;
}
.technology-box .box-title {
	font-size: 1.8rem;
	color: var(--text-color-secondary);
	font-weight: var(--font-weight-Medium);
	margin: 0 0 0.7vh 0;
}
.technology-box .box-txt {
	font-size: 1.3rem;
	color: var(--text-color-secondary);
	line-height: 1.6;
	margin: 0 0 2.5vh 0;
	text-align: justify;
}
.technology-box .box-detail {
	font-size: 1.2rem;
	color: var(--primary-color);
	font-weight: var(--font-weight-Medium);
	margin: 0;
}
.technology-box .box-detail::after {
		content: "";
    display: inline-block;
    width: 20px;
		height: 20px;
    background-image: url(../img/common/btn_object_img02.svg);
    background-position: center;
    background-size: contain;
		margin: 0 0 -5px 5px;
}
.link-wrapper-technology {
	display: block;
	transition: 0.5s;
	padding: 1vh 4vw 2.5vh;     /* 内側余白調整 */
	background: #fff;
}
.link-wrapper-technology:hover {
	opacity: 0.6;
	transition: 0.5s;
}

/*footer*****/
.footer-area {
	width: 100%;
	background: #3E3A39;
	padding: 7vh 0 0;
}
.footer-area-inner {
	width: 90%;
	display: flex;
	flex-direction: column;
	margin: 0 auto 7vh;
	align-items: center;
}
.footer-area-inner .logo {
	width: 90px;
	margin: 0 0 5vh 0;
}
.footer-area-inner .link-area {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:5px 35px;
}

.footer-area-inner .link-area li.official {
	font-size: 1.2rem;
	width: 100%;
	margin: 0 auto 2vh;
	text-align: center;
}
.footer-area-inner .link-area a.hp-link {
	background: #fff;
	padding: 0.6vh 4vw;
	border-radius: 5em;
	transition: 0.8s;
	width: 100%;
}
.footer-area-inner .link-area a.hp-link:hover {
	opacity: 0.6;
	transition: 0.8s;
}
.footer-area-inner .link-area li.sns {
	width: 25px;
	margin: 0;
}


}/* 767px以下に適用されるCSS（スマホ用） */
