@charset "UTF-8";


/*
 * firstvisual
 */

.firstvisual {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  position: relative;

  @media screen and (min-width: 1025px) {
    height: 768px;
  }

  /* &::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(var(  --color-charcoal-deep), 0.4);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
  } */

  .maincopy {
    font-size: 1.5em;
    font-weight: 400;
    max-width: calc(100% - (2rem + 2.5em));
    line-height: 1.65;
    letter-spacing: 0.05em;
    /* wbrで改行 */
    /* CJKテキストでの折り返しを無効化 */
    word-break: keep-all;
    /* 長い単語でも折り返し可能に */
    overflow-wrap: anywhere;
    position: absolute;
    bottom: 0.75em;
    left: 2.5em;
    z-index: 3;
  }

  .movie {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;

    img,
    video {
      width: 100%;
      height: 100%;
      object-fit: cover;

    }
  }
}

.mainvisual {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;

  &::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(var(--color-charcoal-deep),0.4);
    position: absolute;
    top: 0;
    left: 0;
    /* z-index: 1; */
  }

  .fade-slider {
    height: 100%;
    aspect-ratio: auto;
  }

  .splide__track,
  .splide__slide {
    height: 100%;
  }

  img,
  video {
    width: 100%;
    height: 100%;
    object-fit: cover;

  }

}

.scroll-anker {
  font-size: 0.75em;
  font-family: var(--font-en);
  font-weight: 400;
  writing-mode: vertical-rl;
  letter-spacing: 0.1em;
  padding-block: 0.5em;
  padding-bottom: 4.5rem;
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 0.5em;
  position: absolute;
  left: 1em;
  bottom: 0;
  z-index: 10;

}

.scroll-anker::after {
  content: "";
  display: block;
  width: 1px;
  height: 4rem;
  background-color: rgb(var(--color-white));
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);	
}

.scroll-anker::before {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  background-color: rgb(var(--color-white));
  border-radius: 50%;
  position: absolute;
  bottom: calc(4rem - 7px);
  left: calc(50% - 3.5px);
  transform: translateX(-50%);		
  opacity: 0;
  transition: all 0.5s;
  animation: scroll-dot 2s ease-in-out 0.8s infinite;
}

@keyframes scroll-dot {
  from {
    transform: translateY(0);
  }

  5% {
    opacity: 1;
  }

  70% {
    opacity: 1;
  }

  95% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: translateY(4rem);
  }
}



.content {
  .section-main-title {
    margin-bottom: 2.5em;
  }

  .section-sub-title {
    margin-bottom: 1.5em;
    line-height: 2;
  }

  .lead {
    font-size: 0.875em;
    line-height: 2;
  }

  .btn {
    width: fit-content;
    font-size: 0.875em;
  }
}



.concept,
.technical,
.estate,
.realestate,
.news {
  .btn {
    margin-top: calc(40/14*1em);
    margin-left: auto;
  }
}

.concept {
  .inner {
    position: relative;
  }

  @media screen and (min-width: 960px) {
    .section-title {
      width: 520px;
    }

    .lead {
      width: 520px;
    }

    .btn {
      position: absolute;
      bottom: 0;
      right: var(--padding-inline);
    }
  }
}

/* .architect {
  border-bottom: 1px solid red;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-content: center;
  background-image: url(../img/top-concept1.jpg);

  @media screen and (min-width: 768px) {
    min-height: 768px;
    align-content: center;
    justify-content: end;
  }

  .inner {
    @media screen and (min-width: 768px) {
      width: calc(520px + var(--padding-inline) * 2);
      margin-left: auto;
    }
  }

  .btn-cols {
    margin-top: calc(40/14*1em);
    margin-left: auto;

    >.btn {
      flex: auto;
    }

  }
} */

/* .technical {
  border-bottom: 1px solid red;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-content: center;
  background-image: url(../img/top-concept2.jpg);

  @media screen and (min-width: 768px) {
    min-height: 768px;
    align-content: center;
    justify-content: start;
  }

  .inner {
    @media screen and (min-width: 768px) {
      width: calc(520px + var(--padding-inline) * 2);
      margin-right: auto;
    }
  }
} */

/* .estate {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-content: center;
  background-image: url(../img/top-concept3.jpg);

  @media screen and (min-width: 768px) {
    min-height: 768px;
    align-content: center;
    justify-content: end;
  }

  .inner {
    @media screen and (min-width: 768px) {
      width: calc(520px + var(--padding-inline) * 2);
      margin-left: auto;
    }
  }
} */


/* .architect::after,
.technical::after,
.estate::after {
  opacity: 0.7;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-image: linear-gradient(to top, rgba(var(--color-charcoal-deep), 0) 0%, rgba(var(--color-charcoal-deep), 1) 90%);
} */

.works {
  .inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
  }

  .section-title {
    margin-bottom: 0;
  }

  .btn {
    margin-left: auto;
    margin-bottom: 0.75em;
  }

  .splide {
    margin-top: 3em;
  }

  /* .splide__slide {
    @media screen and (min-width: 480px) {
      max-width: calc(100%/2);
    }

    @media screen and (min-width: 768px) {
      max-width: calc(100%/3);
    }
  } */
}

.realestate {
  padding-top: 0;
}

.news {
  padding-block: calc(var(--padding-block) / 2);

  @media screen and (min-width: 960px) {
    .inner {
      display: grid;
      /* grid-auto-flow: row; */
      grid-template-columns: 12em minmax(0, 1fr);
      align-items: start;
      overflow: hidden;
    }

    .section-title {}

    .btn {
      margin-top: auto;
      margin-left: 0;
    }

    .post-list {
      width: 100%;
      grid-row: 1/3;
      grid-column: 2/3;
      padding-left: 2.5em;
    }
  }
}