/* reset CSS */
button{
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}
a{
  text-decoration: none;
  color: #333;
}
ul,li{
  list-style: none;
}

html{
  scroll-behavior: smooth;
}

* {
  margin:0; 
  padding:0; 
  box-sizing:border-box;
}

body {
  background:#fff; 
  color: #fff;
  font-family:sans-serif; 
  overflow-x:hidden;
}
body.is-modal-open {
  overflow: hidden;
}

:root{
  --yellow:#e6e63a;
}

  
/* ------------------ Loading ------------------ */


#loading {
  position:fixed; 
  top:0; 
  left:0; 
  right:0; 
  bottom:0;
  background:#222; 
  display:flex; 
  align-items:center; 
  justify-content:center;
  flex-direction:column; 
  z-index:9999;
  opacity:1; 
  transition:opacity 1s ease;
}
#loading.hide {
  opacity:0; 
  pointer-events:none;
}
.loading-wrapper {
  display:flex;
  align-items:center; 
  position:relative;
}
.loading-vertical {
  width:2px; 
  height:3rem; 
  background:#fff; 
  margin-right:10px;
  opacity:1;
}
@keyframes blink {
  0%,100%{opacity:1;}
  50%{opacity:0;}
}

.loading-vertical.blink {
  animation: blink 0.5s step-end 3;
}

.loading-title {
  font-size:2rem; 
  color:#fff; 
  white-space:nowrap; 
  overflow:hidden;
}
.loading-bar {
  position:absolute; 
  top:calc(100% + 15px);
  left:0; 
  height:1px; 
  background:#fff; 
  width:0; 
  transition:width 0.2s linear;
}
.loading-count {
  margin-top:30px; 
  font-size:1rem; 
  align-self:center; 
  opacity:0; 
  transition:opacity 0.5s;
}

/* ------------------ Navigation ------------------ */
body.resizing #js-nav {
  transition: none !important;
}

header{
  width: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  position:fixed; 
  padding:0.5rem 5rem;
  transition:all 0.5s;
  z-index: 100;  
  transform: translateY(-100%);
  display: flex;
}
header.show {
  transform: translateY(0%);
}

.header-inner{
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header-inner h1{
  margin: 0.5rem;
}
.header-inner h1 img{
  height: 50px;
}

.hg-menu{
  position: relative;
  width: 35px;
  height: 35px;
  z-index: 1000;
  visibility: hidden;
}
.hg-menu .hg-bar{
  display: block;
  width: 35px;
  height: 3px;
  background-color: #fff;
  border-radius: 1.5px;
  position: absolute;
  transition: ease-in 0.5s;
}
.hg-menu .hg-bar:nth-of-type(1){
  transform: translateY(-10px);
}

.hg-menu .hg-bar:nth-of-type(3){
  transform: translateY(10px);
}
.hg-menu.active .hg-bar{
  opacity: 0;
}
.hg-menu.active .hg-bar:nth-of-type(1){
  transform:rotate(20deg);
  opacity: 1;
}
.hg-menu.active .hg-bar:nth-of-type(3){
  transform:rotate(-20deg);
  opacity: 1;
}

.navi {
  list-style:none; 
  display:flex; 
  gap:20px;}

.navi a {
  color:#fff; 
  text-decoration:none;
  transition: opacity 0.5s;
}
.navi a:hover{
  opacity: 0.5;
}

.menu{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 50px;
}
.lang-list-wrap{
  display: flex;;
  justify-content: flex-start;
  gap: 1rem;
}
.lang-icon{
  height: 1.3rem;
}
.lang-list{
  display: flex;
  gap: 1rem;
}

.lang{
  display: block;
  width: 50px;
  font-size: 0.7rem;
  background-color: #333;
  border: #fff 1px solid;
  text-align: center;
  border-radius: 10px;
  line-height: 1.2rem;
  transition: all 0.2s ease-in-out;
}
.lang a{
  color: #fff;
}

.lang.active{
  background-color: #fff;
}
.lang.active a{
  color: #333;
}


.lang:hover{
  background-color: #fff;
  border: #fff 1px solid;
}
.lang:hover.lang a{
  color: #333;
}

.menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 9;
}

.menu-open .menu-overlay {
  opacity: 1;
  pointer-events: auto;
}

body.menu-open {
  overflow: hidden;
}

/* ------------------ FV ------------------ */
.fv {
  position: fixed;
  inset: 0;
  width:100%; 
  height:100vh; 
  overflow:hidden;
  z-index: 0;
  background: #222;
}

.fv video {
  width:100vw; 
  height:100vh; 
  max-height:100vh; 
  object-fit:cover; 
  display:block;
  opacity: 0;
  transition: opacity 1s ease;
}

.fv video.show-video {
  opacity: 1;
}

/* ------------------ Scroll Down ------------------ */
.scroll-down-wrap {
  height: 300px;
}

.scroll-down {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  font-family: serif;
  color: #fff;
  font-size: 14px;
  text-decoration: none;
}

.circle-arrow {
  width: 40px;
  height: 40px;
  border: 1px solid #fff;
  border-radius: 50%;
  position: relative;
  margin-bottom:12px;
  margin-inline: auto;
  animation: pulse 2s infinite;
}

.circle-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: translate(-50%, -50%) rotate(-45deg);
}

@keyframes pulse {
  0% {transform: scale(1);}
  50% {transform: scale(1.1);}
  100% {transform: scale(1);}
}

.spacer{
  position: relative;
  top: 100vh;
  height: 100vh;
}

/* ----- main section ----- */
main {
  position: relative;
  z-index: 1;
  overflow: hidden;
  background-color: #fff;
}

.cover{
  background:linear-gradient(0deg,rgba(34,34,34,1),rgba(34, 34, 34, 0));
  width: 100%;
  height: 100vh;
  position: relative;
  z-index: 1;
}


/* ------------------ Whats ------------------ */
.whats {
  height: 100vh;
  background-color:#222;
  position: relative;
}

.title-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  height: 100vh;
}

.title-inner {
  text-align: right;
  display: inline-block;
  padding: 4rem 0;
  width: 90%;
  margin: 0 auto;
}

.type-title {
  color: transparent;
  display: inline-block;
  font-size: 3rem;
  overflow: hidden;
  position: relative;
  transition: color 0ms 450ms;
  transition-delay: 1.9s;
  padding-left: 2rem;
}
.type-title img{
  height: 3rem;
  padding-right: 1rem;
  opacity: 0;
  transition: opacity 0ms 450ms;
  transition-delay: 1.9s;
}
.type-title::after {
  background: var(--yellow);
  content: '';
  display: inline-block;
  position: absolute;
  transform: translate(-100%, 0%);
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
}

.type-title::before{
  content: "";
  display: inline-block;
  width: 10px;
  background-color: var(--yellow);
  height: 100%;
  border-radius: 2px;
  position:absolute;
  left: 0;
  top: 0;
}

.type-title.show::before{
  animation: blink 0.5s step-end 2;
}
.type-title.show img{
  opacity: 1;
}

 
.type-title.show {
  color:var(--yellow);
}
.type-title.show::after {
  animation: mask-bg 1.2s cubic-bezier(0.8, 0, 0.170, 1);
  animation-delay: 1.5s;

}
 
@keyframes mask-bg {
  0% {
    transform: translate(-101%, 0)
  }
  40%, 60% {
    transform: translate(0, 0%)
  }
  100% {
    transform: translate(100%, 0)
  }
}

.sp-br{
  display: none;
}

.body-text-wrap{
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  position: relative;
}

.body-text-wrap img{
  position: absolute;
  width: 50%;
  max-width: 350px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 1s ease;
  z-index: 0;
}
.body-text-wrap img.fade.show{
  opacity: 0.5;
}


.body-text {
  font-size: 3rem;
  color: white;
  line-height: 4rem;
  opacity: 0;
  pointer-events: none;
  text-align: center;
  position: relative;
  z-index: 2;
}
 
.typing {
  width: 23ch;
  white-space: nowrap;
  overflow: hidden;
  border-right: 3px solid;
  font-size: 3em;
}

 .typing:nth-of-type(2){
  width: 21ch;
}
.typing.en {
  width: 19ch;
}

 .typing:nth-of-type(2).en{
  width: 22ch;
}

.body-text:first-of-type.show {
  opacity: 1;
  pointer-events: auto;
  animation: typing 2s steps(19), effect .5s step-end 5;
}
.body-text:nth-of-type(2).show {
  opacity: 1;
  pointer-events: auto;
  animation: typing 2s steps(22), effect .5s step-end 6;
}

@keyframes typing {
  from {
    width: 0
  }
}
    
@keyframes effect {
  50% {
    border-color:transparent;
  }
}

/* ------------------ loopText ------------------ */
@keyframes infinity-scroll-left {
from {
  transform: translateX(0);
}
  to {
  transform: translateX(-100%);
}
}
.scroll-infinity{
  background-color: #222;
  padding: 100px 0;
}

.scroll-infinity__wrap {
  display: flex;
  overflow: hidden;
}
.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 0
}
.scroll-infinity__list--left {
  animation: infinity-scroll-left 80s infinite linear 0.5s both;
}
.scroll-infinity__item {
  width: calc(100vw / 1);
}
.scroll-infinity__item>img {
  width: 100%;
  padding-right: 2rem;
}

.scroll-infinity__item--text {
  white-space: nowrap;
  font-family: serif;
  font-size: 10rem;
  color: rgba(255, 255, 255, 0.5);
  padding-right: 10rem;
}
/* ------------------ acd ------------------ */
#acd,#ventilation{
background-color: #222;
padding-top: 100px;
margin-bottom: 300px;
padding-bottom: 1rem;
}

.wrap{
  width: 90%;
  max-width: 1500px;
  margin: 0 auto;
  position: relative;
  z-index: 100;
}

.title-area{
  display: flex;
  justify-content: space-between;
  height: auto; 
}
.sectionTitle{
  width: 35%;
  position: relative;
}

.h2title {
  font-size: 2.5rem;
  color: var(--yellow);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
  height: 200px;
  padding-right: 1rem;
  width: 100%;
}
.h2title img{
  width: 100% ;
}
.textdata{
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
#acd .h2text{
  text-align: right;
  padding-right: 1rem;
}

.titleLine{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 10px;
  height: 0px;
  background-color: var(--yellow);
  border-radius: 2px;
  opacity: 0;
  transition: all .3s ease;
}
.titleLine::after{
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 0px;
  height: 10px;
  background-color: var(--yellow);
  border-radius: 2px;
  opacity: 0;
  transition: all .3s ease;
  transition-delay: 0.3s;
}

.titleLine.show{
  opacity: 1;
  height: 200px;
}
.titleLine.show.titleLine::after{
  opacity: 1;
  width: 200px;
}
#zoomback{
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color:rgba(0, 0, 0, 0.8);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}


#zoomback.show{
  animation: opacity 0.3s ease-in-out;
}
@keyframes opacity {
  from{
    opacity: 0;
  }
  
}

#zoomimg{
  width: 80vw;
}
.scaleUp{
  animation: scaleUp .3s ease-in;
}
@keyframes scaleUp {
  from{
    transform: scale(0.8);
  }
}

.zoomwrap{
  position: relative;  
}
.closeBtn{
  position: absolute;
  content: "";
  width: 30px;
  height: 30px;
  top: -30px;
  right: -30px;
  cursor: pointer;
}

.closeBtn::after,
.closeBtn::before{
  content: "";
  display: block;
  width: 30px;
  height:2px;
  background-color:#fff;
  position: absolute;
  top: 50%;
  left: 50%;
}
.closeBtn::after{
  transform:translate(-50%,-50%) rotate(45deg);
}
.closeBtn::before{
  transform:translate(-50%,-50%) rotate(-45deg);
}

.imagewrap{
  width: 60%;
  position: relative;
  z-index: 2;
}

.images{
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: opacity 0.6s  ease, transform 0.8s;
  opacity: 0;
  transition-delay: 0.5s;
  transform: translateY(100px);
  cursor: pointer;
}

.images.show{
  opacity: 1;
  transform: translateY(0);
}

.text-area{
  width: 100%;
  position: relative;
  transform: translateY(-2rem);
}

#acd .text-area{
  position: absolute;
  bottom: 0;
  right: 0;
  width: 35%;
}
#acd .patent-wrap{
  width: 100%;
}


.text-area img{
  width: 35%;
  position: absolute;
  top: 0;
  left: 0;
}

.flex-area{
  width: 100%;
  min-height: 500px;
  display: flex;
  justify-content: space-between;
}

.text{
  color: #fff;
  font-size: 1.2rem;
  line-height: 2.5rem;
  width: 150%;
  padding-top: 3rem;
  padding-left: 2.5rem;
}

.anime{
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity 0.6s  ease, transform 0.8s;
}
.anime.show{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.5s;
}

.patent-wrap{
  position: relative;
  top: 0;
  right: 0;
  bottom: -20%;
  width: 35%;
}

.patent-list-wrap{
  background-color: #365655;
  width:  0px;
  position: absolute;
  top: 0;
  bottom: -20%;
  left: 0;
  transition: all 0.5s ease;
}
.patent-list-wrap.slide-left.show{
  width: 100%;
  opacity: 1;
}

.patent-list{
  background-color: #202020;
  width: 0%;
  max-width: 300px;
  height: auto;
  padding: 2rem 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;
  transition: all 1s ease;
  position: absolute;
  bottom: 0;
  left:15%;
  transition-delay: 1s;
}
.patent-list.slide-left.show{
  width: 70%;
  opacity: 1;
}
.patent-list.slide-left.show.patent-list p{
  visibility: visible;
  opacity: 1;
}
.patent-list.slide-left.show.patent-list dl{
  visibility: visible;
  opacity: 1;
}


.patent-list p{
  font-size:1.2rem ;
  color: var(--yellow);
  margin-left: 10%;
  margin-bottom: 2rem;
  white-space: nowrap;
  visibility: hidden;
  transition: all 1s ease;
  transition-delay: 1.4s;
  opacity: 0;
}

.patent-list dl{
  color: #fff;
  font-size: 0.9rem;
  line-height: 2rem;
  margin-left: 10%;
  white-space:nowrap;
  visibility: hidden;
  transition: all 1s ease;
  transition-delay: 1.4s;
  opacity: 0;
}

.patent{
  display: flex;
  gap: 1rem;
}

.patent dt{
  width: 2rem;
}

/* ----- Ventilation ----- */
/* #ventilation .wrap{
  padding-bottom: 200px;
}  */
#ventilation .title-area{
  flex-direction: row-reverse;
}
#ventilation .imagewrap{
  padding-bottom: 1rem;
} 
#ventilation .h2title{
  padding-right: 0;
  padding-left: 1rem;
}

#ventilation .titleLine,
#ventilation .titleLine::after{
  left: 0;
}

#ventilation .text-area{
  transform: translateY(-50%);
  padding-bottom: 2rem;
  position: absolute;
  height: auto;
}
  @media (max-width: 950px) {
#ventilation .text-area{
  transform: translateY(-80%);
  }
}

#ventilation .text-area img{
  left: unset;
  right: 0;
}

#ventilation .text{
  width: 100%;
  padding: 1rem;
}

#ventilation .patent-wrap{
  width: 55%;
  left: -5.55%;
}
/* test */
#ventilation .sectionTitle{
  display: block;
}
.text-wrap{
  margin-top: 2rem;
  background-image: url(images/okugawa_logo_bg.svg);
  background-repeat: no-repeat;
  background-size: 100%;
  min-height: 500px;
  padding-bottom: 3rem;
  box-sizing: content-box;
}

/* ------------ White section ------------------ */
.message-section {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.container{
  height: 80vh;
}
.message-wrap{
  height: 100%;
  background-image: url(images/okugawa_logo_bg_yellow.svg);
  background-repeat: no-repeat;
  background-size: 120%;
  background-position: top center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: end;
  padding-right: 5%;
}
.message-wrap p{
  width: 50%;
  color: #222;
  font-size: 1.5rem;
  line-height: 2.5rem;
  margin-left: auto;
}
.message-wrap a{
  padding-top: 2rem;
  font-size: 1.5rem;
  color: #222;
}
.message-wrap a.line {
  padding-bottom: 5px;
  position: relative;
}
.message-wrap a.line::before {
  background: #222;
  content: '';
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: 0;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.message-wrap a.line:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}


.spacer2{
  width: 100%;
  height: 300px;
  background-color: #222;
}


/* ------------------ Works ------------------ */
#works {
  padding:150px 20px; 
  background:#222; 
  position:relative;
}

.worksHeader{
  width: 90%;
  margin: 0 auto;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding-bottom: 50px;
  gap: 2rem;
}
.worksHeader img{
  height: 100px;
}
.works-controls{
  width: 90%;
  margin: 0 auto;
}

.works-controls button {
  margin-right:25px;
  color: #fff;
  font-size: 2rem;
}
.works-controls button:hover {
  opacity: 0.7;
  transition:opacity 0.3s;
}

.gallery-container {
  overflow:hidden; 
  position:relative; 
  cursor:grab;
  touch-action: pan-y;
}
.gallery-track {
  display:flex; 
  transition:transform 0.5s ease;
  margin-top: 100px;
}
.gallery-item {
  min-width:30%; 
  height:600px; 
  margin-right:20px;
  border-radius:10px;
  background-size:cover; 
  background-position:center;
  transition:background-size 0.6s ease-in-out;
  position: relative;
  overflow: hidden;
}

.gallery-item:hover {
  background-size: 150%;
}
.gallery-item:nth-child(even){
  transform:translateY(-10%);
}
.gallery-item:nth-child(even):hover{
  transform:translateY(-10%) ;
  background-size: 150%;
}

.gallery-item::before {
  content: '';
  position: absolute;
  top:0; left:0; right:0; bottom:0;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  transition: transform 0.3s ease-in-out; 
}

.gallery-item:hover::before {
  transform: scale(1.07 ); 
}

/* Custom Cursor */
.custom-cursor {
  position:fixed; width:120px; height:120px; border-radius:50%; background:rgba(128,128,128,0.5);
  color:#fff; display:flex; align-items:center; justify-content:center; pointer-events:none;
  transform:translate(-50%, -50%); opacity:0; transition:opacity 0.3s; font-size:15px; z-index:10000;
}

/* Modal */
.modal {
  position:fixed; 
  top:0; left:0; right:0; bottom:0; 
  background:rgba(0,0,0,0.8); 
  display:flex; 
  align-items:center; 
  justify-content:center; 
  z-index:10000; 
  opacity:0; 
  pointer-events:none; 
  transition:opacity 0.3s;
}
.modal.show {
  opacity:1; 
  pointer-events:auto;
}
.modal-content {
  background:#111; 
  display:flex; 
  width:70%; 
  height:70%; 
  min-height: 700px;
  padding:20px; 
  position:relative; 
  border-radius:10px;
}
.modal-content img {
  width:50%; 
  object-fit:cover; 
  border-radius:10px;
}
.modal-text {
  flex:1; 
  padding:20px; 
  color:#fff;
}
.modal-close {
  position:absolute; 
  top:10px; 
  right:10px; 
  cursor:pointer;
}
.modal-close span,
.modal-close span::after{
  content: "";
  display: block;
  width: 35px;
  height: 2px;
  background-color: #fff;
  position: absolute;
  top: 5px;
  transform: rotate(20deg);
}
.modal-close span::after{
  top:0;
  transform: rotate(-40deg);
}

/* About */
#about {
  background-color: #fff;
  min-height: 600px;
  padding-top: 100px;
}

.about-wrap{
  width: 90%;
  margin: 0 auto;
  display: flex;
  gap:20px;
}

.about-title {
  flex: 1;
  color: #333;
  font-size: 3rem;
}
.yellow{
  color: var(--yellow);
}

.company-list {
  position: relative;
  z-index: 1;
  overflow: visible;
  width: 50%;
}
.company-list::after{
  content: "";
  display: block;
  width: 350px;
  height: 350px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(images/bg_okugawa_logo.svg);
  background-repeat: no-repeat;
  z-index: -1;
}

.company-item {
  border-bottom: 2px solid #333;
  padding: 10px 20px;
  width: 70%;
  margin: 0 auto;
}

.company-header {
  display: flex;
  justify-content: space-between;
  align-items:center;
  cursor: pointer;
  height: 100px;
}

.company-content {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease;
  color: #333;
}
.company-name img{
  width: 100px;
}

.link-btn {
  display: block;
  width: 50%;
  min-width: 150px;
  margin: 0 auto;
  margin-top: 20px;
  padding: 5px 10px;
  background: #333;
  color: #fff;
  border: #333 solid 1px;
  text-decoration: none;
  border-radius: 50px;
  text-align: center;
  transition: all 0.3s ease;
}
.link-btn:hover{
  background: #fff;
  color: #333;
}

.toggle {
  position: relative;
  width: 25px;
  height: 25px;
  border: none;
  background: none;
  cursor: pointer;
}

.toggle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #222;
  transform: translateY(-50%);
}

.toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 2px;
  background-color: #222;
  transform: translate(-50%, -50%) rotate(90deg); 
  transition: transform 0.3s ease;
}

.company-item.open .toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

/* ----- contact ----- */

.contact-wrap{
  width: 90%;
  height: 400px;
  margin: 0 auto;
}
.contact{
  margin: 0 auto;
  display: flex;
}

.contact_text{
  display: flex;
  flex-direction: column;
  gap: 3rem;
  flex: 1;
}

.contact_text h2{
  color: #333;
  font-size: 3rem;
}
.contact-image-wrap{
  width: 50%;
  text-align: center;
  position: relative;
}
.contact-image-wrap a{
  width: 350px;
  height: auto;
  margin: 0 auto;
  display: block;
  position: relative;
  z-index: 100;
}

.contact-image-wrap img{
  width: 50%;
  position: relative;
  z-index: 1;
  transition: opacity 0.3s ease-in-out; 
}
.contact-image-wrap a::after{
  content: "";
  position: absolute;
  width: 50%;
  height: 100%;
  background-image: url(images/contact_logo_hover.svg);
  background-repeat: no-repeat;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.3s ease-in-out; 
}

.contact-image-wrap img:hover{
  opacity: 0;
}
.contact-image-wrap a:hover::after{
    opacity: 1;
}


/*------------ footer ------------- */

footer {
  position: relative;
  background-color: #222;
  height: 200px;
  text-align: center;
  padding-top: 100px;
}
.copyright {
  color: var(--yellow);
  font-size: 1rem;
  text-align: right;
}


/*---------- 
レスポンシブ 
-----------*/
@media (max-width: 768px) {

/* ---SPモーダル--- */
  .gallery-item {
    min-width:90%; height: 500px;
  }
  .modal-content {
    flex-direction:column; 
    width:90%; 
    height:80%;
  }
  .modal-content img {
    width:100%; 
    height:50%;
    margin-top: 50px;
  }

/* FV */

.fv{
  display: flex;
  flex-direction: column;
  padding-top: 70px;
}
.fv video{
  height: 65vh;
}
.scroll-down-wrap{
  position: relative;
  top: -10vh;
  width: 100%;
  height: 30vh;
  background: linear-gradient(180deg,rgba(34,34,34,0) 0%,rgba(34, 34, 34, 1) 30%,rgba(34, 34, 34, 1)100%);
}

.cover{
  height: 50vh;
}

/* ハンバーガーメニュー */
header{
  padding: 0.2rem 1rem;
  height: 70px;
}
.hg-menu{
  visibility: visible;
}
.lang-list-wrap{
  align-items: center;
  margin-bottom:4rem ;
}
.lang-icon{
  height: 2rem;
}

nav{
  width: 90vw;
  height: 60vh;
  background-color: rgba(0, 0, 0, 0.9);
  position: fixed;
  right: 0;
  top: 70px;
  border-radius: 0 0 0 20px;
  transition:transform 0.5s;
  will-change: transform;
  transform: translateX(100vw);
  pointer-events: none;
  padding: 4rem;
}
nav.active{
  transform: translateX(0);
  pointer-events: auto;
}

.navi{
  flex-direction: column;
  font-size: 1.5rem;
  gap: 3rem;
}

/* ----- what is section ----- */
.title-wrapper{
  justify-content: center;
  gap: 4rem;
}
.title-inner{
  text-align: left;
}
.type-title{
  font-size: 1.5rem;
  padding-left: 1rem;
}
.type-title img{
  height: 1.7rem;
}

.body-text-wrap{
  height: auto;
  gap: 1rem;
}

.sp-br{
  display: inline;
}

.scroll-infinity{
  padding: 0 0 50px 0;
}

.scroll-infinity__item--text{
  font-size: 5rem;
}

/* Whats section */
.title-area{
  flex-direction: column;
}
.sectionTitle{
  width: 100%;
  margin: 0 auto;
}
.titleLine.show{
  height: 150px;
}
.imagewrap{
  width: 100%;
}
#zoomimg{
  width: 95vw;
}
.closeBtn{
  right: 0;
}

.flex-area{
  flex-direction: column;
  position: relative;
}
#acd .text-area{
  width: 100%;
  bottom: unset;
}


.body-text{
  font-size: 1.6rem;
  line-height: 3rem;
}

.h2title{
  font-size: 2rem;
  padding-left: 0;
  line-height: 3rem;
}

.h2title img{
  width: 100%;
  max-width: 370px;
  margin: 0 0 0 auto;
}
#ventilation .h2title img{
  margin: 0 auto 0 0;
}

.text-wrap{
  background-size:80% ;
}

.text-area img{
  width: 70%;
}

.text{
  width: 100%;
  font-size: 1rem;
  padding: 1rem;
}

.patent-wrap{
  width: 100%;
  right: -6%;
}
.patent-list-wrap{
 height: 250px;
}

.patent-list{
  top: 10%;
  bottom: 0;
  left: 30%;
  padding: 1rem 0;
  max-width: unset;
}
/* -- ventilation Section -- */
#ventilation .wrap{
  padding-bottom: 1rem;
}
#ventilation .title-area{
  flex-direction: column;
}
#ventilation .text-area{
  position: relative;
  top: 0;
}

#ventilation .text-wrap{
  background-position: top right;
}


#ventilation .flex-area{
  flex-direction: column;
  padding-bottom: 1rem;
  min-height: auto;
}
#ventilation .text{
  width: 100%;
}
#ventilation .patent-wrap{
  width: 100%;
}
#ventilation .patent-list{
  left: 0;
}
#ventilation{
  margin-bottom: 100px;
}

/* -- Message Section -- */
.container{
  height: 60vh;
}
.message-section p{
  width:95%;
  font-size: 1rem;
  line-height: 2rem;
  margin-left:auto;
}
.spacer2{
  height: 200px;
}

/* ----- works section ----- */
.worksHeader{
  flex-direction: column-reverse;
  padding-bottom: 0;
}
.worksHeader img{
  height: 70px;
}
#Works{
  padding: 50px 0;
}
.works-controls{
  padding-top: 50px;
}
.gallery-item:nth-child(even){
  transform:translateY(0);
}
.gallery-item:nth-child(even):hover{
  transform:translateY(0) ;
} 

/* ----- contact section ----- */
.contact{
  flex-direction: column;
  padding: 2rem 0;
}
.contact_tex{
  gap: 1rem;
}
.contact_text p{
  white-space: unset;
}




.parallax-img{
  left: 0;
}

#about{
  min-height: 700px;
}
.about-title,.contact_text h2{
  font-size: 2.5rem;
}
.about-wrap{
  flex-direction: column;
}
.company-item{
  width: 90%;
}
.company-list{
  margin-top: 50px;
  width: 100%;
}
.contact-image-wrap{
  width: 100%;
  margin-top: 2rem;
}
.contact-image-wrap img,
.contact-image-wrap a::after{
  width: 175px;
}


}