@charset "UTF-8";
* {
  margin: 0;
  padding: 0;
  border: none;
  list-style: none;
  text-decoration: none;
}
html{
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body{ 
  font-family: "Zen Old Mincho", serif;
  font-size: 1.6rem;
  min-width: 320px;
}
.en{
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}
.en2{
  font-family: "Monda", sans-serif;
  font-weight: 300;
  font-style: normal;
  letter-spacing: 0.02em;
}
.mincho{
  font-family: "Zen Old Mincho", serif;
}
.gothic{
  font-family: 'Noto Sans JP', sans-serif;
  font-style: normal;
}
.gothic2{
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-style: normal;
}

/* ------------------------------------------ */
/* ------------------------------------------ */
.tb{ display: none !important;}
.sp{ display: none !important;}
.tbsp{ display: none !important;}

/* ------------------------------------------ */
/* ------------------------------------------ */
.section-inner{ padding:90px 0;}
.section-inner-min{ padding:60px 0;}
.wrap-wide{ max-width: 1200px; margin:0 auto;}
.wrap-semiwide{ max-width: 1100px; margin:0 auto;}
.wrap-normal{ max-width: 1000px; margin:0 auto;}
.wrap-min{ max-width: 900px; margin:0 auto;}
.wrap-min2{ max-width: 800px; margin:0 auto;}
.bg-color-wht{ background-color: #fff;}
.bg-color-key{ background-color: #6b1b7e;}
.bg-color-blk{ background-color: #000;}
.bg-color-darkgray{ background-color: #72747f;}
.fc-wht{ color: #fff;}
.fc-key{ color: #6b1b7e;}
.v-t{ vertical-align: top;}
.v-m{ vertical-align: middle;}
.v-b{ vertical-align: bottom;}
.t-l{ text-align: left;}
.t-c{ text-align: center;}
.t-r{ text-align: right;}
.f-bold{ font-weight: 600;}
.m-t10{ margin-top: 10px;}
.m-t20{ margin-top: 20px;}
.m-t30{ margin-top: 30px;}
.m-t40{ margin-top: 40px;}
.m-t50{ margin-top: 50px;}
.p-t0{ padding-top: 0;}
.p-b0{ padding-bottom: 0;}
a{ color: #333;}
.txt{ line-height: 1.8em;}
.txt-semitall{ line-height: 2.2em;}
.txt-tall{ line-height: 2.5em;}
.fs-sml{ font-size: 80%;}
.fs-24{ font-size: 2.4rem;}
h1,h2,h3,h4,h5,h6{ font-weight: unset;}

/* ------------------------------------------ */
/* ------------------------------------------ */
@media  only screen and (min-width: 1025px){
.l-wrapper {
  position: relative;
  overflow: hidden;
}
.header {
  position: fixed;
  width: 100%;
  height: 70px;
  top: 0;
  left: 0;
  transform: translateZ(0);
  z-index: 10;
}
.header-menu{
  height: 100%;
}
.header-container{
  padding-inline: 3%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: end;
}
.header-logo{
  position: absolute;
  left: 3%;
  z-index: 3;
  width: 210px;
}
.header-logo a{
  display: flex;
  background-size: contain;
  background-repeat: no-repeat;
}
.header-logo a img {
  opacity: 1;
  transition: 200ms;
  width: 100%;
  height: auto;
  display: block;
}
.header-nav {
  width: max-content;
  margin-right: 87px;
}
.header-nav-list {
  display: flex;
  position: relative;
  z-index: 2;
  background-color: #6b1b7e;
  border-radius: 30px;
}
.header-nav-list .header-nav-item .header-nav-link {
  position: relative;
  padding: 0 17px;
  z-index: 2;
  color: #fff;
  display: block;
  background-color: #6b1b7e;
  line-height: 35px;
  height: 35px;
  font-size: 1.5rem;
  transition : .5s;
}
.header-nav-list .header-nav-item .header-nav-link:hover {
  transition : .5s;
}
.header-nav-list .header-nav-item:first-child .header-nav-link{
  padding-left: 30px;
  border-radius: 30px 0 0 30px;
}
.header-nav-link.bottom-arrow {
  position: relative;
  display: inline-block;
  color: #000;
  vertical-align: middle;
  text-decoration: none;
}
.header-nav-link.bottom-arrow::after{
  position: absolute;
  top: -3px;
  bottom: 0;
  right: 12px;
  margin: auto;
  content: "";
  vertical-align: middle;
  width: 6px;
  height: 6px;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.header-lang{
  position: absolute;
  right: 3%;
  z-index: 3;
  background-color: #6b1b7e;
  padding: 0 35px 0 20px;
  border-radius: 0 30px 30px 0;
  height: 35px;
  transition : .5s;
}
.header-lang select{
  appearance: none;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
  color: #fff;
  font-size: 1.5rem;  
  line-height: 35px;
  font-family: "Monda", sans-serif;
  font-weight: 300;
  transition : .5s;
}

@supports (-ms-ime-align: auto) {
  select:not(:-internal-list-box):not([multiple]) option{ color: #000 !important;}
  option{ color: #000 !important;}
  select:not(:-internal-list-box):not([multiple])::picker{ color: #000 !important;}
  select option{ color: #000 !important;}
}
.header-nav-hovermenu-content {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.header-nav-hovermenu-content ul{
  display: flex;
  gap: 30px;
}
.header-nav-hovermenu-content ul li a{
  font-weight: 500;
}
.header-nav-hovermenu-content ul li a.arrow_right{
  position: relative;
  display: inline-block;
  padding-right: 12px;
}
.header-nav-hovermenu-content ul li a.arrow_right:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-top: solid 1px #333;
  border-right: solid 1px #333;
  transform: rotate(45deg);
  position: absolute;
  top: 2px;
  right: 0;
  bottom: 0;
  margin: auto;
}
.header-nav-list .header-nav-item:nth-child(2){
  position: relative;
}
.header-nav-list .header-nav-item:nth-child(2) .header-nav-hovermenu-content {
  position: absolute;
  top: 72px;
  right: 460px;
}
.header-nav-list .header-nav-item:nth-child(3){
  position: relative;
}
.header-nav-list .header-nav-item:nth-child(3) .header-nav-hovermenu-content {
  position: absolute;
  top: 72px;
  right: 335px;
}
.header-nav-list .header-nav-item:nth-child(5){
  position: relative;
}
.header-nav-list .header-nav-item:nth-child(5) .header-nav-hovermenu-content {
  position: absolute;
  top: 72px;
  right: 140px;
}
@media only screen and (min-width: 1025px) {
  .header-nav-list .header-nav-item:nth-child(2) .header-nav-link,
  .header-nav-list .header-nav-item:nth-child(3) .header-nav-link,
  .header-nav-list .header-nav-item:nth-child(5) .header-nav-link{
    padding: 0 27px 0 17px;
  }
}
.header-nav-hovermenu {
  position: fixed;
  width: 100%;
  height: 100%;
  width: 100vw;
  top: 0;
  left: 0;
  z-index: 1;
  transition-duration: .5s;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  display: none;
}
.header-nav-hovermenu .header-nav-hovermenu-wrapper {
  position: relative;
  height: auto;
  z-index: 1;
  transition-duration: .5s;
}
.header-nav-hovermenu .header-nav-hovermenu-wrapper .header-nav-hovermenu-inner {
  padding-top: 70px;
  padding-bottom: 50px;
  margin-top: 0;
  background-color: rgba(200,200,200,0.9);
}
.header-nav-hovermenu:hover,
.header-nav-list li:hover .header-nav-hovermenu {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}
}

/*  top mv
--------------------------------------------- */
.top-mv {
	position: relative;
	z-index: 9;
	height: calc( 300dvh + 1200px);
}
.top-mv-container {
	position: sticky;
	top: 0;
	width: calc(100vw - calc(100vw - 100%));
	height: calc((100dvh / 100) * 100);
}
.top-mv-item {
	position: relative;
	z-index: 9;
	width: 100%;
	height: calc((100dvh / 100) * 100);
	padding: var(--gap);
	transition: opacity var(--transition-scale);
}
.top-mv-item .top-mv-txt{
	position: absolute;
  margin-top: 70px;
	top: 50%;
	left: 5%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}
.top-mv-txt {
	max-width: 800px;
	width: 50%;
}
.top-mv-txt img {
	width: 100%;
}
.top-mv-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: -webkit-transform var(--transition-scale);
	transition: transform var(--transition-scale);
	transition: transform var(--transition-scale), -webkit-transform var(--transition-scale);
}
.top-mv-video{
	overflow: hidden;
	width: 100%;
	height: 100dvh;
	background-color: #000;
}
.top-mv-video video{
	position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
@media  only screen and (max-width: 1024px){
	.top-mv-item .top-mv-txt{
		margin-top: unset;
		top: auto;
		bottom: 8%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
	}
	.top-mv-txt {
		width: 80%;
	}
}
/*  --------------------------------------------------- 
-------------------------------------------------------  
共通
------------------------------------------------------- 
---------------------------------------------------  */
/*  ttl
---------------------------------------------------  */
.ttl-box-max{
  margin-bottom: 60px;
}
.ttl-box{
  margin-bottom: 40px;
}
.ttl-box-min{
  margin-bottom: 20px;
}
.main-ttl .jp{
  font-size: 2.4rem;
}  
.sub-ttl .en{
  font-size: 8.5rem;
}
.sub-ttl .jp{
  font-size: 3.6rem;
}
.h3-ttl{
  font-size: 2.0rem;
}
.h4-ttl{
  font-size: 1.8rem;
}

/*  list
--------------------------------------------- */
.li2 ul , .li3 ul, .li4 ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.li2 ul{ gap: 4%;}
.li2 ul li{ width: 48%;}
.li3 ul{ gap: 3%;}
.li3 ul li{ width: 31.3333%;}
.li4 ul{ gap: 2.6%;}
.li4 ul li{ width: 23%;}

/*  button
--------------------------------------------- */
.btn-box{
  margin-top: 30px;
  width: fit-content;
}
.btn-box.btn-center{
  margin: 30px auto 0;
}
.btn-box.btn-right{
  margin: 30px 0 0 auto;
}
.btn-circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: max-content;
  padding: 7px 70px 7px 30px;
  border: 1px solid #343434;
  border-radius: 30px;
  color: #343434;
  position: relative;
}
.btn-circle:before,
.btn-circle:after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  height: 1px;
  background: #343434;
}
.btn-circle:before {
  width: 30px;
  transform: translateY(-50%);
  transition: 0.5s;
}
.btn-circle:after {
  width: 8px;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: right center;
  transition: 0.5s;
}
.btn-circle:hover:before {
    transition: 0.5s;
    width: 35px;
}
.btn-circle:hover:before,
.btn-circle:hover:after {
  right: 15px;
}
/*  btn-wht */
.btn-wht .btn-circle{
  color: #fff;
  border: 1px solid #fff;
}
.btn-wht .btn-circle:before,
.btn-wht .btn-circle:after {
  background: #fff;
}
.btn-blknuri .btn-circle{
  color: #fff;
  background: #000;
}
.btn-blknuri .btn-circle:before,
.btn-blknuri .btn-circle:after {
  background: #fff;
}
.btn-keynuri .btn-circle{
  color: #fff;
  background: #6b1b7e;
}
.btn-keynuri .btn-circle:before,
.btn-keynuri .btn-circle:after {
  background: #fff;
}
.btn-box.btn-box-hmin .btn-circle{
  padding: 3px 90px 5px 50px;
}
.btn-box.btn-box-hmin .btn-circle:before,
.btn-box.btn-box-hmin .btn-circle:after {
  right: 45px;
}
.btn-box.btn-box-hmin .btn-circle:hover:before,
.btn-box.btn-box-hmin .btn-circle:hover:after {
  right: 40px;
}

/*  scroll overlap
--------------------------------------------- */
.overlap-body{
  height: max-content;
}
.js-scroll-overlap:not(.is-disabled) {
  --sticky-offset: -1px;
  position: sticky;
  top: var(--sticky-offset);
  z-index: 0;
}
.js-scroll-overlap.overlap-bottom:not(.is-disabled) {
  --sticky-offset: -1px;
  position: sticky;
  top: unset;
  bottom: var(--sticky-offset);
  z-index: 1;
}
.no-overlap {
  position: relative;
}

/*  ----------------------------------------  */
/*  ----------------------------------------  */
/*  ----------------------------------------  */
/*  ----------------------------------------  */
.top .sub-ttl .en{
  font-weight: 400;
}

/*  top concept
--------------------------------------------- */
.top-concept{
  position: relative;
}
.top-concept .section-inner{
  padding: 150px 0;
}
.top-concept .sub-ttl .jp{
  font-size: 4.8rem;
  font-weight: 500;
}
.txt-mid{
  font-size: 2.0rem;
  line-height: 2em;
}
.txt-semi{
  font-size: 1.8rem;
}
.top-concept .txt-mid{
  width: 565px;
  margin: 0 auto;
}

/*  top about
--------------------------------------------- */
.top-about{
  position: relative;
  z-index: 0 !important;
}
.img-right-outside{
  display: flex;
  align-items: center;
  gap: 5%;
}
.img-right-outside .img-right-outside__left{
  width: 54%;
}
.img-right-outside .img-right-outside__right{
  width: 41%;
}
.img-right-outside .img-right-outside__right img{
  width: calc(50% + 50vw);
  max-width: 650px;
}

/*  top technology
--------------------------------------------- */
.top-technology{
  position: relative;
  z-index: 3 !important;
  transform: translateZ(1px);
}
.flex-imgtxt{
  display: flex;
  align-items: center;
  gap: 5%;
}
.flex-imgtxt__left{
  width: 44%;
}
.flex-imgtxt__right{
  width: 51%;
}
.flex-imgtxt__left img,
.flex-imgtxt__right img{
  width: 100%;
}
.top-technology .flex-imgtxt__left{
  margin-left: -40px;
}
.top-technology .flex-imgtxt__left{
  width: calc(44% + 40px);
}

/*  top products
--------------------------------------------- */

/*  top solution
--------------------------------------------- */
.top-solution{
  position: relative;
  z-index: 3;
}
.top-solution .img-right-outside{
  align-items: flex-start;
  gap: 8%;
}
.top-solution .img-right-outside .img-right-outside__right{
  width: 38%;
}
@media screen and (min-width: 1025px) {
  .top-about .section-inner,
  .top-technology .section-inner,
  .top-products .section-inner,
  .top-solution .section-inner{
    padding-top: 40px;
    overflow: hidden;
  }
}

/*  top news
--------------------------------------------- */
.top-news{
  position: relative;
  z-index: 3 !important;
  transform: translateZ(1px);
}
.top-news-container{
  display: flex;
  align-items: flex-start;
  gap: 50px;
}
.top-news-container .ttl-box .sub-ttl{
  line-height: 1;
  margin-top: -10px;
}
.top-news-list{
  width: 100%;
}
.top-news-item a{
  display: flex;
  padding: 16px 0;
  border-bottom: 1px solid #000;
  transition: 0.5s;
}
.top-news-item a:hover{
  opacity: 0.6;
}
.top-news-item:first-child a{
  border-top: 1px solid #000;
}
.top-news-item a time{
  min-width: 120px;
}

/*  ----------------------------------------  */
/*  ----------------------------------------  */

/*  footer fixed_btn
--------------------------------------------- */
.fixed-button{
  position: relative;
  z-index: 9;
}
#fixed-button-wrap {
  position: fixed;
  bottom: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  color: #fff;
}
.fixed-button-flex{
  display: flex;
  align-items: center;
  background-color: #323232;
}
.fixed-button-flex .fixed-button-left{
  background-color: #6b1b7e;
  padding: 10px 20px;
}
.fixed-button-flex .fixed-button-right{
  background-color: #323232;
  padding: 0 20px;
}
.fixed-button-flex .fixed-button-right ul{
  display: flex;
  align-items: baseline;
  gap: 20px;
}
.fixed-button-flex .fixed-button-right ul li:first-child p{
  line-height: 1.3em;
}
.fixed-button-flex .fixed-button-right ul li a{
  display: flex;
  align-items: center;
  color: #fff;
}
.fixed-button-flex .fixed-button-right ul li .fixed-button-icon img{
  width: 40px;
  margin-right: 10px;
  vertical-align: middle;
}
.fixed-button-flex .fixed-button-right ul li .fixed-tel{
  display: block;
  font-size: 24px;
  font-weight: 400;
  line-height: 0.6em;
  vertical-align: bottom;
  margin-top: 3px;
}
.fixed-button-flex .fixed-button-right ul li .fixed-teltxt{
  font-size: 65%;
  font-weight: 300;
  vertical-align: bottom;
}
.fixed-close-btn {
  position: absolute;
  top: -10px;
  left: -10px;
  background-color: #fff;
  border: 1px solid #000;
  border-radius: 20px;
  font-size: 15px;
  color: #000;
  cursor: pointer;
  width: 25px;
  height: 25px;
  line-height: 1;
}

/*  ----------------------------------------  */
/*  ----------------------------------------  */
/*  ----------------------------------------  */
/*  ----------------------------------------  */

/*  footer
--------------------------------------------- */
footer{
  position: relative;
  z-index: 0 !important;
}
.main.top .footer-info{
  margin-top: 200px;
}
.main.top .footer-menu{
  position: relative;
}
.main.top .footer-logo{
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  margin-bottom: -40px;
}
.footer{
  position: relative;
  background: #6b1b7e;
  color: #fff;
}
.footer-container{
  padding: 50px 0 25px;
}
.footer-container a{
  transition: 0.5s;
}
.footer-container a:hover{
  opacity: 0.6;
}
.footer-logo{
   width: 400px;
   margin: 0 auto;
}
.footer-logo a{
  display: block;
}
.footer-logo a img{
  width: 100%;
}
/*  footer top only start  */
.footer-list li{
  margin-top: 5px;
  font-size: 2.0rem;
}
.footer-list li a{
  color: #fff;
}
.footer-list li:first-child{
  margin-top: 0;
}
.footer-list li:nth-last-of-type(2){
  margin-top: 40px;
}
.footer-lang select{
  appearance: none;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
  color: #fff;
  font-size: 2.0rem;
  font-family: "Poppins", sans-serif;
  font-weight: 300;
}
.footer-lang option{
  font-size: 1.6rem;
}
.footer-lang select:not(:-internal-list-box):not([multiple]) option{
  font-size: 1.6rem;
}
/*  footer top only end */
.footer-contact{
  display: flex;
  gap: 15px;
  align-items: flex-end;
  margin: 10px 0;
}
.footer-tel{
  font-size: 2.6rem;
}
.footer-tel a{
  color: #fff;
  display: block;
  width: max-content;
}
.footer-time{
  font-size: 1.8rem;
  font-weight: 400;
}
.footer-mail a{
  display: flex;
  gap: 5px;
  color: #fff;
  align-items: center;
  font-size: 1.8rem;
  font-weight: 400;
}
.footer-mail a img{
  width: 30px;
  height: 30px;
}
.footer-mail a p{
  position: relative;
}
.footer-mail a p::after{
  position: absolute;
  top: calc( 50% - 3px ) ;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  right: -12px;
  margin: auto;
  content: "";
  vertical-align: middle;
  width: 8px;
  height: 8px;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  -webkit-transform: rotate(315deg);
  transform: rotate(315deg);
}
.footer-copy{
  margin-top: 20px;
  display: flex;
  gap: 30px;
  align-items: flex-end;
}
.footer-info-logo{
  width: 250px;
  display: inline-block;
}
.footer-info-copy{
  font-size: 1.3rem;
}

/*  ----------------------------------------  */
/*  ----------------------------------------  */
/*  scl ｜下から上、右から、左から出現
--------------------------------------------- */
.js-scl {
    opacity: 0;
    transform: translate(0, 0);
    transition: all 1.5s;
}
.js-scl.js-scl-left {
    transform: translate(-30px, 0);
}
.js-scl.js-scl-right {
    transform: translate(30px, 0);
}
.js-scl.js-scl-up {
    transform: translate(0, 30px);
}
.js-scl.js-scl-down {
    transform: translate(0, -30px);
}
.js-scl.scrollin {
    opacity: 1 !important;
    transform: translate(0, 0) !important;
}

/*  ----------------------------------------  */
/*  ----------------------------------------  */
.fade{
  animation: fadeIn 3s ease 0s 1 normal;
  -webkit-animation: fadeIn 3s ease 0s 1 normal;
}
@keyframes fadeIn { 
  0% {opacity: 0} 
  100% {opacity: 1} 
}
@-webkit-keyframes fadeIn {
  0% {opacity: 0}
  100% {opacity: 1}
}
