@charset "utf-8";
*{
    margin: 0;
    padding: 0;
}

  



.img-frame{
  position: relative;
  width: 100%;
  overflow: hidden;
  margin: 0 auto;
}
@media screen {
.img-frame{
  width: 100%;
  height: 100dvh;
}
.slide-01, .slide-02, .slide-03, .slide-04{
  position: absolute;
  top:0;
  left:0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.slide-01{
  animation: slide-animation-01 24s infinite;
}
.slide-02{
  animation: slide-animation-02 24s infinite;
}
.slide-03{
  animation: slide-animation-03 24s infinite;
}
.slide-04{
  animation: slide-animation-04 24s infinite;
}
@keyframes slide-animation-01 {
  0% {opacity: 1; transform: scale(1.0);}
  25% {opacity: 0;}
  50% {opacity: 0;}
  75% {opacity: 0; transform: scale(1.03)}
  100% {opacity: 1; transform: scale(1.0);}
}
@keyframes slide-animation-02 {
  0% {opacity: 0;transform: scale(1.0);}
  25% {opacity: 1;transform: scale(1.03);}
  50% {opacity: 0;}
  75% {opacity: 0;}
  100% {opacity: 0;}
}
@keyframes slide-animation-03 {
  0% {opacity: 0;}
  25% {opacity: 0; transform: scale(1.03);}
  50% {opacity: 1; transform: scale(1.0);}
  75% {opacity: 0;}
  100% {opacity: 0;}
}
@keyframes slide-animation-04 {
  0% {opacity: 0;}
  25% {opacity: 0;}
  50% {opacity: 0; transform: scale(1.0);}
  75% {opacity: 1; transform: scale(1.03);}
  100% {opacity: 0;}
}
}




.header{
  width: 100%;
  height: 140px;
  position: relative;
}
.header-left{
  float: left;
  margin-top: 45px;
  margin-left: 5%;
}
.header-left a{
  text-decoration: none;
  line-height: 1.5;
  color: black;
}
.icon-en{
  font-size: 18px;
}
.icon-jp{
  font-size: 14px;
}
.header-right{
  margin-top: 55px;
  margin-right: 5%;
  float: right;
}
.header-right a{
  text-decoration: none;
  margin-left: 20px;
  color: black;
}
.header-right :hover{
  color: rgb(146, 146, 146);
  transition: color 0.15s;
}




.gallery {
  max-width: 100%;
  margin-left: 5%;
  margin-right: 5%;
  margin-bottom: 70px;
  
  display: grid;
  gap: dvw;
  grid-auto-flow: dense; 
  grid-template-columns: repeat(7, 1fr);
}
.works-card:nth-child(7n+1) {
  grid-column: span 4;
  grid-row: span 2;
}
.works-card:nth-child(7n+2),
.works-card:nth-child(7n+3) {
  grid-column: span 3;
  grid-row: span 1;
}
.works-card:nth-child(7n+4) {
  grid-column: span 3;
  grid-row: span 2;
}
.works-card:nth-child(7n+5) {
  grid-column: span 4;
  grid-row: span 2;
}
.works-card:nth-child(7n+6) {
  grid-column: span 4;
  grid-row: span 1;
}
.works-card:nth-child(7n+7) {
  grid-column: span 3;
  grid-row: span 1;
}
/* アスペクト比設定 */
.works-card:first-child {
  aspect-ratio: 300/300;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.works-card:nth-child(7) {
  aspect-ratio: 200/300;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.works-card {
  overflow: hidden;
  cursor: pointer;
  position: relative;
}
.works-card a{
  text-align: left;
  padding-top: 90%;
}
.works-card img {
  display: block;
  aspect-ratio: 300/200;
  height: 100%;
  width: 100%;
  transition-duration: 1s;
  object-fit: cover;	
}
.works-card:hover img{
  transform: scale(1.03);
  opacity: 1;
  transition-duration: 1s;
}
.caption {
  align-items: center; 
  background: rgba(0, 0, 0, 0.403); 
  color: rgb(255, 255, 255); 
  height: auto;
  justify-content: flex-start; 
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0; 
  position: absolute;
  transition: opacity .1s ease; 
}
.caption:hover {
  opacity: 1; 
  transition-duration: 1s;
}
.caption p {
  width: 85%; 
  font-size: 120%;
  margin-top: 20px;
  margin-left: 20px;
}




.about{
  padding-top: 80px;
  display: flex;
  flex-wrap: wrap;
}
.title-about{
  font-size: 40px;
  margin-left: 15%;
  line-height: 1.1;
  letter-spacing: 0.05em;
}
.text-about{
  width: 40%;
  text-align: justify;
  margin-top: 70px;
  margin-left: 10vw;
  font-size: 14px;
  font-weight: lighter;
  line-height: 2;
}
span{
  background:linear-gradient(transparent 70%, rgb(205, 255, 7) 60%);
}


.more-about{
  margin-right: 20%;
  width: 200px;
  margin: 11vh 10vw 0 auto;
}
.more-about a {
  position: relative;
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 0 auto;
  max-width: 200px;
  padding: 15px 10px;
  color: #000000;
  border: solid 1px;
  transition: 0.3s ease-in-out;
  font-weight: lighter;
  text-decoration: none;
  background: #eeeeee00;
  overflow:hidden;
}
.more-about a:before {
  z-index: -99;
  position: absolute;
  top: 0;
  left: 0;
  width: 150%;
  height: 500%;
  content: "";
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  -webkit-transform: translateX(-200%) translateY(-25%) rotate(45deg);
  transform: translateX(-200%) translateY(-25%) rotate(45deg);
  background: rgb(205, 255, 7);
  opacity: 1;
}
.more-about a:hover:before {
  -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
  transform: translateX(-9%) translateY(-25%) rotate(45deg);
}



.about{
  opacity: 0;
  visibility: hidden;
  transform: translateY(50px);
  transition: opacity 1.5s,visibility 1.5s, transform 1.5s;
}
.scroll-about {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}
.more-about{
  opacity: 0;
  visibility: hidden;
  transform: translateX(50px);
  transition: opacity 1s,visibility 1s, transform 1s;
}
.scroll-moreabout {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}





.contents{
  margin-top: 100px;
  text-align: center;
}
.contents-wrapper {
  display: flex;
  flex-wrap: wrap;
}
.contents-card {
  overflow: hidden;
  cursor: pointer;
  position: relative;
  width: 33.33%;
}
.contents-card img {
  transition-duration: 1s;
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.contents-card:hover img{
  opacity: 1;
  transition-duration: 0.5s;
}
.caption-contents {
  align-items: center; 
  background: rgb(255, 255, 255); 
  bottom: 0;
  color: rgb(205, 255, 7); 
  display: flex; 
  height: auto;
  justify-content: center; 
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  font-weight: lighter;
}
.caption-contents:hover {
  color: rgb(205, 255, 7);
  background: rgba(255, 255, 255, 0);
  transition-duration: 0.5s;
}
.caption-contents p {
  width: 85%; 
  font-size: 5vw;
}

@keyframes scroll-anim {
  from {
    opacity: 0.2;
    scale: 0.1;
  }
  to {
    opacity: 1;
    scale: 1;
  }
}
.contents hr{
  animation: scroll-anim linear;
  animation-timeline: view();
  animation-range: entry 0% contain 70%;
}




.contact{
  padding-top: 80px;
  padding-bottom: 80px;
  text-align: center;
}
.title-contact{
  font-size: 50px;
  font-weight: lighter;
}
.main-contact{
margin-top: 50px;
}
.text-contact{
  font-size: 14px;
  font-weight: lighter;
  line-height: 2;
  text-align: justify;
  width: 50%;
  margin-left: 25%;
  margin-bottom: 50px;
}


.btn a {
  background: #eee;
  border: 1px solid #000000;
  border-radius: 80px;
  position: relative;
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 0 auto;
  max-width: 100px;
  padding: 30px 15px;
  color: #313131;
  transition: 0.3s ease-in-out;
  font-weight: 500;
}
.btn a:after {
  content: "";
  position: absolute;
  top: 50%;
  bottom: 0;
  right: 6rem;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: right 0.3s;
  width: 6px;
  height: 6px;
  border-top: solid 2px black;
  border-right: solid 2px black;
  transform: translateY(-50%) rotate(45deg);
}
.btn a:hover {
  background: rgb(205, 255, 7);
  color: #FFF;
}
.btn a:hover:after {
right: 2rem;
}




.footer{
  padding-top: 50px;
  padding-bottom: 10px;
  background-color: rgb(233, 236, 227);
}
.footer-adress{
  text-align: left;
  font-size: 12px;
  margin-left: 5%;
}
.footer-adress1{
  float: left;
}
.footer-adress2{
  float: left;
  margin-left: 70px;
}
.footer-clear{
  clear: both;
}
.footer-copyright{
  font-family: 'Barlow', sans-serif;
  font-size: 10px;
  text-align: right;
  margin-top: 50px;
  margin-right: 2%;
  margin-bottom: 10px;
}

