@charset "UTF-8";
@keyframes bottom_to_top {
  0% {
    transform: translate3d(0, 3vw, 0);
    opacity: 0;
  }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
.bottom_to_top {
  opacity: 0;
}

.bottom_to_top.active {
  animation: bottom_to_top 0.6s cubic-bezier(0.4, 0.26, 0.15, 0.99) forwards;
}

.bottom_to_tops > * {
  opacity: 0;
}

.bottom_to_tops.active > * {
  animation: bottom_to_top 0.6s cubic-bezier(0.4, 0.26, 0.15, 0.99) forwards;
}
.bottom_to_tops.active > *:nth-child(2) {
  animation-delay: 0.2s;
}
.bottom_to_tops.active > *:nth-child(3) {
  animation-delay: 0.4s;
}
.bottom_to_tops.active > *:nth-child(4) {
  animation-delay: 0.6s;
}

@keyframes left_to_right {
  0% {
    transform: translate3d(-3vw, 0, 0);
    opacity: 0;
  }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
.left_to_right {
  opacity: 0;
}

.left_to_right.active {
  animation: left_to_right 0.6s cubic-bezier(0.4, 0.26, 0.15, 0.99) forwards;
}

@keyframes right_to_left {
  0% {
    transform: translate3d(3vw, 0, 0);
    opacity: 0;
  }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
.right_to_left {
  opacity: 0;
}

.right_to_left.active {
  animation: right_to_left 0.6s cubic-bezier(0.4, 0.26, 0.15, 0.99) forwards;
}

@keyframes top_to_bottom {
  0% {
    transform: translate3d(0, -3vw, 0);
    opacity: 0;
  }
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
.top_to_bottom {
  opacity: 0;
}

.top_to_bottom.active {
  animation: top_to_bottom 0.6s cubic-bezier(0.4, 0.26, 0.15, 0.99) forwards;
}

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

.bg_black_amin:before {
  background: #000;
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  transform: translateX(-100%);
  transition: all 0.8s 0s ease;
  width: 100%;
  z-index: 1;
}

.bg_black_amin img {
  opacity: 0;
  transition: all 0.8s 0s ease;
}

.bg_black_amin.active img {
  opacity: 1;
  transition: all 0.5s 0.3s ease;
}

.bg_black_amin.active:before {
  transform: translateX(100%);
}

html, body {
  padding: 0;
  margin: 0;
}

p {
  margin: 0;
}

body main {
  overflow: hidden;
  line-height: 1.5;
  position: relative;
  min-height: 100vh;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.3vw;
}
body main img {
  width: 100%;
  vertical-align: middle;
}
body main:before {
  content: " ";
  display: block;
  width: 100%;
  height: 100%;
  background: url("../img/bg.png");
  background-size: cover;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
}

.wrap {
  max-width: 68vw;
  margin: 0 auto;
}

.swrap {
  max-width: 65vw;
  margin: 0 auto;
}

@media screen and (max-width: 1000px) {
  .swrap {
    max-width: 80vw;
  }
}
.pt_san {
  font-family: "PT Sans", sans-serif;
  font-weight: normal;
  font-size: 1.17em;
  letter-spacing: 0.05rem;
}

.pt_sanL {
  font-family: "PT Sans", sans-serif;
  font-weight: normal;
  font-size: 230%;
  letter-spacing: 0.05rem;
}

.ll_f {
  font-size: 280%;
  font-weight: bold;
}

.l_f {
  font-size: 200%;
  font-weight: bold;
}

.m_f {
  font-size: 120%;
  font-weight: bold;
}

.mm_f {
  font-size: 140%;
  font-weight: bold;
  margin-bottom: 0.5vw;
}


.en {
  font-family: "Fjalla One", sans-serif;
}

h1, h2, h3 {
  margin: 0;
}

@media screen and (max-width: 1000px) {
  .wrap {
    max-width: none;
    padding: 0 5vw;
  }
  body main {
    font-size: 1.5vw;
  }
}
@media screen and (max-width: 700px) {
  body main {
    font-size: 2vw;
  }
}
@media screen and (max-width: 600px) {
  .l_f {
    font-size: 150%;
    font-weight: bold;
  }
}
.rwd_show {
  display: none;
}

@media screen and (max-width: 700px) {
  .rwd_show {
    display: inline;
  }
}
body main *, body main * {
  box-sizing: unset;
}

.show_text {
  position: relative;
  transition: -webkit-clip-path 1.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;
  transition: clip-path 1.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;
  transition: clip-path 1.5s cubic-bezier(0.19, 1, 0.22, 1) 0s, -webkit-clip-path 1.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;
  -webkit-clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
          clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
  overflow: hidden;
}

.show_text.active {
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
          clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

.growfadein {
  opacity: 0;
}

.growfadein.active {
  opacity: 0;
  animation: growfade 0.7s ease 0.2s forwards;
}

@keyframes growfade {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  40% {
    opacity: 1;
    filter: brightness(1330%);
  }
  70% {
    opacity: 1;
    filter: brightness(100%);
  }
  100% {
    opacity: 1;
    filter: brightness(100%);
  }
}

/*common*/
.inc_common_footer_wrap {
  margin: 0;
  padding: 0;
  outline: 0;
  border: 0;
  font-size: 18px;
  /* font-size: 1.8rem; */
  color: #111;
  line-height: 2;
  font-family: Meiryo, sans-serif;
  text-align: left;
  position: relative;
  z-index: 10;
}

@media screen and (max-width: 47.938em) {
  .inc_common_footer_wrap {
    line-height: 1.8;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 1000px) {
  html body main {
    font-size: 1.7vw;
  }
}
@media screen and (max-width: 600px) {
  html body main {
    font-size: 3.3vw;
  }
}
@media screen and (max-width: 1000px) {
  .wrap {
    max-width: none;
  }
  .swrap {
    max-width: none;
    padding: 0 3vw;
  }
}
body main {
  color: #fff;
  width: 100%;
}


.page_header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}
.page_header h1 {
  width: 11vw;
  position: absolute;
  top: 0.5vw;
  right: 2vw;
}
.page_header h1 a {
  display: flex;
  align-items: center;
  margin-top: 0.5em;
}

.mv {
  position: relative;
	background-image: url("../img/mv_bg.jpg");
	background-repeat: no-repeat;
    background-size: contain;
    padding-top: 72%;
    z-index: 2;
	margin-bottom: 4em;
}

.mv h1{
	position: absolute;
	width: 48%;
	top: 10vw;
	left: 10vw;
}

.mv ul {
  list-style: none;
  padding: 0;
  margin: 0;
display: flex;
	gap:6vw;
	position: absolute;
	bottom: 4vw;
	left: 8vw;
	align-items: flex-end;
	width: 85%;
}

@media screen and (max-width: 600px) {
	.page_header h1 {
  width: 20vw;
  position: absolute;
  top: 1vw;
  right: 4vw;
}
.mv {
  position: relative;
	background-image: url("../img/sp_mv_bg.jpg");
	background-size: cover;
	padding-top: 117%;
	margin-bottom: 4em;
	}
.mv h1 {
    width: 62%;
    top: 21vw;
    left: 5vw;
	}
.mv ul {
    display: block;
    left: 4vw;
	width: 90%;
}
	.mv ul li:nth-of-type(1)	{
		width: 100%;
	}
		.mv ul li:nth-of-type(2)	{
		width: 36%;
		position: absolute;
		right: -4vw;
		bottom: 23vw;
	}
}

.bgg {
  position: relative;
}
.bgg:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg.png);
  background-size: cover;
  position: fixed;
  left: 0;
  top: 0;
}
.bgg > * {
  position: relative;
  z-index: 2;
}


.topics{
	margin-bottom: 6em;
}

.topics header {
  margin-bottom: 2em;
}

.topics header h2{
	font-size: 260%;
}
.topics .topics_list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.topics .topics_list li {
  margin-bottom: 2em;
}
.topics .topics_list li a {
  display: block;
  display: flex;
  gap: 1em;
  align-items: center;
  color: #fff;
  font-size: 105%;
}
.topics .topics_list li a > figure {
  flex: 0 1 45%;
  overflow: hidden;
}
.topics .topics_list li a > figure img {
  transition: all ease 0.3s;
}
.topics .topics_list li a > div {
  flex: 1;
}
.topics .topics_list li a:hover {
  color: rgba(255, 255, 255, 0.7);
}
.topics .topics_list li a:hover > figure img {
  transform: scale(1.05);
}
@media screen and (max-width: 600px) {
.topics{
	margin-bottom: 12em;
}
  .topics .topics_list li a > div p {
    font-size: 100%;
  }
.topics .topics_list li a {
  display: block;
}
	.topics .topics_list li a > figure {
	margin-bottom:1em;
}
}

.technology {
  margin-bottom: 6em;
position: relative;
}
.technology .en {
    width: 9.25rem;
    position: absolute;
    top: 0.5em;
    left: 6.1875rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top left;
    z-index: 2;
    height: 100vw;
}
.technology header {
  margin-bottom: 3em;
}
.technology header h2 {
  font-size: 180%;
}
.technology .technology_ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.technology .technology_ul > li {
  display: flex;
  align-items: center;
  margin-bottom: 5em;
  gap: 1em;
}
.technology .technology_ul > li:last-child {
  margin-bottom: 0;
}
.technology .technology_ul > li > ul {
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 0 1 75%;
}
.technology .technology_ul > li > ul > li {
	width: 110%;
  gap: 1em;
  align-items: center;
  margin-bottom: 3em;
	border: 1px solid #fff;
	padding: 2rem;
}
.technology_ul_f{
	z-index: 0;
}

/*.technology .technology_ul > li > ul > li:nth-child(2) {
  margin-top: -0.5em;
}
.technology .technology_ul > li > ul > li:last-child {
  margin-bottom: 0;
}*/
.technology .technology_ul > li > ul > li .technology_ul_t {
  display: flex;
  flex: 0 1 53%;
  align-items: center;
}
.technology .technology_ul > li > ul > li .technology_ul_t figure {
  flex: 0 1 50%;
}
.technology .technology_ul > li > ul > li .technology_ul_t > div {
  flex: 1;
}
.technology .technology_ul > li > ul > li .technology_ul_t > div h3 {
  font-size: 180%;
  margin-bottom: 0.1em;
color: #f0e900;
}
.technology .technology_ul > li > ul > li .technology_ul_t > div p {
  font-size: 100%;
}

@media screen and (max-width: 1000px) {
.technology .en {
        transform: rotate(-90deg);
        width: 8.25rem;
        transform-origin: 0vw 6vw;
        z-index: 0;
}
	
}

@media screen and (max-width: 600px) {
    .technology .en {
        width: 6.25rem;
        left: 3em;
        top: -3em;
	}
	
  .technology header h2 {
    font-size: 150%;
  }
	.technology .technology_ul{
		margin-bottom: 14em;
	}	
	.technology .technology_ul > li > ul > li .technology_ul_t > div h3{
		font-size: 190%;
	}
	
  .technology .technology_ul > li {
    flex-direction: column;
    height: auto;
  }
  .technology .technology_ul > li > ul {
    gap: 0.5em;
  }
  .technology .technology_ul > li > ul > li {
    flex-direction: column;
	 width: 88%;
	 height: auto;
  }
.technology .technology_ul > li > ul > li .technology_ul_t > div p {
  font-size: 110%;
}
.technology .technology_ul > li {
  gap: 0em;
}
}


.spin{
	margin-bottom:8em;
}
.spin .en {
    width: 9.25rem;
    position: absolute;
    top: 0.5em;
    right: 8.1875rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top right;
    z-index: 2;
    height: 100vw;
}

.spin header {
  margin-bottom: 3em;
}

.spin h2,.distance h2{
	color: #000;
	background-color: #f0e900;
	font-size: 200%;
	display: inline;
	line-height: 1.8;
	padding-left: 0.1em;
}

.spin h3, .distance h3{
	color: #f0e900;
	font-size: 150%;	
}

.spin_ul , .distance_ul{
	display: flex;
	gap: 6em;
}

.spin_figure{
	margin-bottom: 3em;
}

.spin_figure figure{
	margin-left: -16vw;
}

@media screen and (max-width: 1000px) {
	.spin .en{
	transform: rotate(-90deg);
	width: 8rem;
    top: -26.5em;
	right: -20em;
    z-index: 0;
	}
.spin_figure figure{
	margin-left: -5vw;
}
}
@media screen and (max-width: 600px) {	
	.spin{
		margin-bottom:14em;
	}
	.spin h2{
		font-size: 170%;
		letter-spacing:-0.01rem;
	}
	.spin .en{
    top: -18.5em;
	left: 14.4em;
	width:6.25rem;
	}
	.spin_ul{
		display: block;
	}
	
	.spin_ul li figure{
		width: 88%;
	}
	.spin_ul li figure:first-child{
		margin-bottom: 3em;
	}

}

.distance{
	position: relative;
	margin-bottom:8em;
}

.distance header{
	margin-bottom: 3em;
}

.distance .en{
    width: 9.25rem;
    position: absolute;
    top: 0.5em;
    left: 6.1875rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top left;
    z-index: 2;
    height: 100vw;
}

.distance_figure h4,.distance_figure_against h4{
	font-size: 180%;
	margin-bottom: 0.5em;
}

.distance_figure h5 , .distance_figure_against h5{
	font-size: 120%;
}

.distance_figure_against{
	margin-bottom: 5em;
}

.distance_figure_against figure{
	margin-bottom: 0.5em;
}

.distance_figure_graph{
	position: relative;
	z-index: -1;
}

.distance_figure_graph figure{
	margin-left: -16vw;
	margin-top: -10vw;
	width: 110%;
}

@media screen and (max-width: 1000px) {
	.distance .en{
	transform: rotate(-90deg);
    top: -15.5em;
    left: 62em;
    z-index: 0;
	width: 8rem;
}
}

@media screen and (max-width: 600px) {
	.distance{
		margin-bottom: 14em;
	}
	
	.distance .en{
	transform: rotate(-90deg);
	width: 6.25rem;
	top: -19em;
    left: 14.5em;
    z-index: 0;
}	
	
	.distance h2{
		font-size: 170%;
	}
	
	.distance header h2 br{
		display: none;
	}
.distance_figure_graph figure{
	margin-left: -34vw;
	margin-top: -10vw;
	width: 136%;
}
	.distance_ul{
		display: block;
	}
	
	.distance_ul li figure{
		width: 88%;
	}
	.distance_ul li figure:first-child{
		margin-bottom: 3em;
	}
}

.sbb {
  padding: 2em 0;
}
.sbb .wrap {
  max-width: 75vw;
}
.sbb header {
  margin-bottom: 0.5em;
}
.sbb header h2 {
  font-size: 180%;
}
.sbb header p {
  font-size: 120%;
  font-weight: bold;
}

@media screen and (max-width: 600px) {
  .sbb .wrap {
    max-width: none;
  }
  .sbb header h2 {
    font-size: 160%;
  }
}


.select .select_in {
  padding-top: 1em;
}
.select .select_in > div {
  margin-bottom: 2em;
  display: flex;
  gap: 2em;
  align-items: center;
}

@media screen and (max-width: 600px) {
  .select .select_in > div {
    flex-direction: column;
  }
}

.links{
	position: relative;
}

.links .en{
    width: 9.25rem;
    position: absolute;
    top: 0.5em;
    right: 8.1875rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top right;
    z-index: 0;
    height: 100vw;
}

@media screen and (max-width: 1000px) {
	.links .en{
	transform: rotate(-90deg);
    top: -27em;
	right: 3em;
	width: 8rem;
    z-index: 0;
}
}
@media screen and (max-width: 600px) {
	.links .en{
	transform: rotate(-90deg);
	width: 5.6rem;
	top: -19em;
    left: 14.5em;
    z-index: 0;
}
}

.links .wrap {
  /*max-width: 68vw;*/
}
.links .links_item {
  margin-bottom: 5em;
}
.links .links_item h2 {
  margin-bottom: 1em;
}
.links .links_item h2 img {
  height: 3em;
  width: auto;
	margin-bottom: 1em;
}
.links .links_item .links_flex {
  display: flex;
  gap: 2em;
  margin-bottom: 3em;
}
.links .links_item .links_flex ul {
  flex: 1;
  display: flex;
	flex-wrap:wrap;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 2em;
}
.links .links_item .links_flex ul li {
  flex: 0 1 calc((100% - 6em) / 3);
}
.links .links_item .links_flex ul li figure figcaption {
  margin-top: 0.5em;
  font-size: 80%;
}
.links .links_item .links_flex > div {
  flex: 0 1 23%;
}
.links .links_item .links_flex > div p {
  font-size: 80%;
}
.links .links_item .links_flex > div h3 {
  font-size: 120%;
  margin-bottom: 0.5em;
}

.links_navigate{
	width: 80%;
  	margin-bottom: 3em;
}


.links_spec{
	display: flex;
	gap:3em;
}

.links .links_spec figure:first-child{
	margin-bottom: 3em;
}

.links_outer{
	margin-top: 5vw;
    padding-bottom: 6vw;
    display: flex;
    align-items: center;
    justify-content: center;
}

.links_outer > a{
	margin: 0 3vw;
    background-color: #fff;
    color: #0a500e;
    /*border: 1px solid #0a500e;*/
    padding: 1.4rem;
    border-radius: 8px;
    font-weight: bold;
    width: 20em;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease-out;
}

.links_outer > a:hover{
	background-color: #f0e900;
	
}

.links_outer >a svg{
	width: 2em;
    /*height: 0.8em;
    margin-right: 0.5em;*/
}



@media screen and (max-width: 600px) {
  .links .links_item .links_flex {
    flex-direction: column;
  }
  .links .wrap {
    max-width: none;
  }
	.links .links_item .links_flex ul{
	gap: 1em;
	}
  .links .links_item > nav ul li {
    flex: 1;
  }
  .links .links_item .links_flex ul li {
    flex: 0 1 calc((100% - 1em) / 2);
  }
	.links_navigate{
		width: 100%;
	}
	.links_spec{
		display: block;
	}
	
	.links_spec{
		margin-bottom: 5em;
	}
	.links_spec div:nth-of-type(2) figure{
		width: 80%;
	}
	.links_outer{
		display: block;
		margin: 5vw;
	}
	.links_outer a:first-child{
		margin-bottom: 2em;
	}
	
}

.rwd_show {
  display: none;
}

@media screen and (max-width: 600px) {
  .rwd_show {
    display: inline;
  }
  .rwd_hide {
    display: none;
  }
}
.slide_gage {
  background-color: #333;
  height: 1vw;
  position: relative;
  margin-top: 1vw;
  display: none;
}
.slide_gage span {
  background-color: #fff;
  display: block;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  transition: all ease 0.3s;
}

@media screen and (max-width: 880px) {
  .slide_gage {
    display: block;
  }
}






/*# sourceMappingURL=style.css.map */