@charset "UTF-8";
/* Mobile baseline: default rules apply below 768px. */
/* トップページのヒーロー、事業紹介、お知らせ、各種演出。 */
/* ======================================
トップページのメインビジュアル
======================================*/
.hero {
  position: relative;
  display: block;
  background: #000000;
  width: 100%;
  height: 100vh;
  z-index: 100;
}
.hero__img {
  position: relative;
  box-sizing: border-box;
  text-align: center;
  width: 100%;
  height: calc(100% - 104px);
  margin: 0 auto;
  overflow: hidden;
}

.hero__img img {
  width: auto;
  height: 100%;
  object-fit: contain;
  object-position: 50% 0;
}
.hero__inner {
  position: absolute;
  background: #000000;
  text-align: left;
  box-sizing: border-box;
  width: 100%;
  bottom: 0px;
  padding: 20px 20px 20px 20px;
}

.hero__copy {
  /* white-space: pre-line; */
  display: inline-block;
  color: #FFFFFF;
  font-family: var(--font-family-display);
  font-weight: 400;
  font-style: normal;
  font-size: 32px;
  letter-spacing: 0.2rem;
  line-height: 1.2;
  text-align: left;
}

/* ======================================
理念紹介
======================================*/
.top-intro {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  padding: 40px 20px 40px 20px;
}

.top-intro__line-vertical {
  display: none;
}

.top-intro__inner {
  position: relative;
  box-sizing: border-box;
}

.top-intro__line-horizon {
  display: none;
  z-index: 101;
}

.top-intro__copy {
  position: relative;
  font-family: var(--font-family-display);
  font-weight: 400;
  font-style: normal;
  font-size: 32px;
  letter-spacing: 0.2rem;
  line-height: 1.2;
  text-align: left;
  box-sizing: border-box;
}

.top-intro__copy-sub {
  position: relative;
  font-size: 20px;
  letter-spacing: 0.2rem;
  line-height: 1;
  text-align: left;
  box-sizing: border-box;
  padding-top: 7px;
}

.top-intro__text {
  position: relative;
  font-size: 16px;
  letter-spacing: 0.08rem;
  line-height: 1.4;
  text-align: left;
  box-sizing: border-box;
  padding-top: 40px;
}

.circle-wrap {
  display: none;
}

.circle {
  width: 28px;
  height: 28px;
  border-radius: 15px;
  background: #000;
}

.circle-right {
  position: absolute;
  left: 14px;
  width: 14px;
  height: 28px;
  overflow: hidden;
}

.circle-right-hidden {
  position: relative;
  left: -14px;
  width: 14px;
  height: 28px;
  overflow: hidden;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transform-origin: 100% 50%;
  transform-origin: 100% 50%;
}

.circle-left {
  width: 14px;
  height: 28px;
  overflow: hidden;
}

.circle-left-hidden {
  position: relative;
  left: 14px;
  width: 14px;
  height: 28px;
  overflow: hidden;
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transform-origin: 0% 50%;
  transform-origin: 0% 50%;
}

.circle-left .circle {
  position: relative;
  left: -14px;
}

.circle-inner {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 26px;
  height: 26px;
  padding-top: 0px;
  background: #fff;
  border-radius: 50%;
  z-index: 4;
}

/* 事業内容 関連*/
.top-works {
  position: relative;
  box-sizing: border-box;
  width: 100%;
}

/* 事業内容 画像 */
.top-works__img {
  position: relative;
  background: #000000;
  text-align: center;
  box-sizing: border-box;
  overflow: hidden;
  width: 100%;
  order: 1;
}

.top-works__img img {
  width: 100%;
  object-fit: contain;
}

/* 事業内容 メイン */
.top-works-main {
  position: sticky;
  background: #000000;
  box-sizing: border-box;
  width: 100%;
  order: 2;
}

/* 事業内容 メイン 区切り線 */
.top-works-main__inner {
  position: relative;
  text-align: center;
  box-sizing: border-box;
  padding: 40px 20px;
}

/* 事業内容 メイン タイトル */
.top-works-main__title {
  position: relative;
  color: #FFFFFF;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-style: normal;
  font-size: 32px;
  letter-spacing: 0.2rem;
  line-height: 1.2;
  text-align: left;
  box-sizing: border-box;
}

/* 事業内容 メイン テキスト */
.top-works-main__text {
  position: relative;
  color: #FFFFFF;
  font-size: 16px;
  letter-spacing: 0.08rem;
  line-height: 1.4;
  text-align: left;
  box-sizing: border-box;
  padding-top: 20px;
}

/* 事業内容 見た目 */
.top-works-detail {
  position: relative;
  background: #fff;
  box-sizing: border-box;
  width: 100%;
  order: 3;
  padding: 40px 20px 40px 20px;
}

/* 事業内容 見た目 区切り線 */
.top-works-detail__inner {
  position: relative;
  box-sizing: border-box;
  padding-bottom: 40px;
}

/* 事業内容 見た目 関連 */
.top-works-detail__inner:last-of-type {
  padding-bottom: 0;
}
.top-works-detail__img {
  width: 100%;
}
.top-works-detail__img img {
  width: 100%;
}

/* 事業内容 見た目 タイトル */
.top-works-detail__title {
  position: relative;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-style: normal;
  font-size: 28px;
  letter-spacing: 0.14rem;
  line-height: 1.2;
  text-align: left;
  box-sizing: border-box;
  padding-top: 20px;
}

/* 事業内容 見た目 サブタイトル */
.top-works-detail__title-sub {
  position: relative;
  font-size: 18px;
  letter-spacing: 0.12rem;
  line-height: 1.2;
  text-align: left;
  box-sizing: border-box;
}

/* 事業内容 見た目 テキスト */
.top-works-detail__text {
  position: relative;
  font-size: 16px;
  letter-spacing: 0.08rem;
  line-height: 1.4;
  text-align: left;
  box-sizing: border-box;
  padding-top: 20px;
}

/* ボタン 関連*/
.top-bottom {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  padding: 0px 0px 20px 0px;
}

/* ボタン 画像 */
.top-bottom__img {
  position: relative;
  text-align: center;
  box-sizing: border-box;
  overflow: hidden;
  width: 60px;
  margin: 0 auto;
}

.top-bottom__img img {
  width: 100%;
  height: auto;
}

/* ボタン 区切り線 */
.top-bottom__inner {
  position: relative;
  text-align: center;
  box-sizing: border-box;
  width: 100%;
}

/* ボタン タイトル */
.top-bottom__title {
  position: relative;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-style: normal;
  font-size: 28px;
  letter-spacing: 0.14rem;
  line-height: 1.2;
  text-align: center;
  box-sizing: border-box;
  padding-bottom: 40px;
}

/* ボタン アンカー */
.top-bottom__btn a {
  position: relative;
  display: block;
  background: #ffffff;
  color: #000;
  font-family: var(--font-family-display);
  font-weight: 400;
  font-style: normal;
  font-size: 18px;
  text-decoration: none;
  text-align: center;
  letter-spacing: 0.08em;
  box-sizing: border-box;
  border: 1px solid #000;
  width: 280px;
  margin-bottom: 20px;
  margin-left: auto;
  margin-right: auto;
  padding: 15px 20px 15px 20px;
}
.top-bottom__btn a:hover {
  color: #fff;
  background: #000;
}

/* お知らせ 関係 */
.top-info {
  position: relative;
  background-color: #EEEEEE;
  box-sizing: border-box;
  width: 100%;
  padding: 40px 20px 40px 20px;
  z-index: 100;
}

/* お知らせ タイトル */
.top-info__title {
  position: relative;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-style: normal;
  font-size: 28px;
  letter-spacing: 0.14rem;
  line-height: 1.2;
  text-align: left;
  box-sizing: border-box;
  padding-bottom: 20px;
}

/* お知らせ 区切り線 */
.top-info__inner {
  position: relative;
  box-sizing: border-box;
  width: 100%;
}

/* お知らせ リスト */
.top-info__list {
  position: relative;
  padding: 10px 0;
}

/* ======================================
トップページのスクロール演出
======================================*/
/* 基本のスタイル */
.hero__img.delighter {
  transition: none;
  transform: none;
  opacity: 1;
}

/* スタート時のスタイル */
.hero__img.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.hero__img.delighter.started.ended {
}*/
/* 基本のスタイル */
.hero__inner.delighter {
  transition: none;
  transform: none;
  opacity: 1;
}

/* スタート時のスタイル */
.hero__inner.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.hero__inner.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-intro__line-vertical.delighter {
  transition: all 3s ease-out;
  transform: translateY(-200%);
  opacity: 0;
}

/* スタート時のスタイル */
.top-intro__line-vertical.delighter.started {
  transform: translateY(0);
  opacity: 1;
}

/* エンド時のスタイル
.top-intro__line-vertical.delighter.started.ended {
}*/

/* スタート時のスタイル */
.top-intro__line-horizon.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-intro__line-horizon.delighter.started.ended {
}*/

/* スタート時のスタイル */
.top-intro__copy.delighter.started {
  transform: none;
  opacity: 1;
}

/* スタート時のスタイル */
.top-intro__copy-sub.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-intro__copy-sub.delighter.started.ended {
}*/

/* スタート時のスタイル */
.top-intro__text.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-intro__text.delighter.started.ended {
}*/
/* サークルアニメーション */
@-webkit-keyframes rotateRight {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  50% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  100% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
}
@keyframes rotateRight {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  50% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  100% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
}
@-webkit-keyframes rotateLeft {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  50% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
}
@keyframes rotateLeft {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  50% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
}

/* スタート時のスタイル */
.circle-right-hidden.delighter.started {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

/* エンド時のスタイル
.circle-right-hidden.delighter.started.ended {
}*/

/* スタート時のスタイル */
.circle-left-hidden.delighter.started {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

/* エンド時のスタイル
.circle-left-hidden.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-works-main__title.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.top-works-main__title.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-works-main__title.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-works-main__text.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.top-works-main__text.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-works-main__text.delighter.started.ended {
}*/
/* 基本のスタイル */
.btn-box--white.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.btn-box--white.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.btn-box--white.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-works-detail__inner.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.top-works-detail__inner.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-works-detail__inner.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-bottom__img.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.top-bottom__img.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-bottom__img.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-bottom__title.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.top-bottom__title.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-bottom__title.delighter.started.ended {
}*/
/* 基本のスタイル */
.top-bottom__btn.delighter {
  transition: all 1s ease-out;
  opacity: 0;
}

/* スタート時のスタイル */
.top-bottom__btn.delighter.started {
  transform: none;
  opacity: 1;
}

/* エンド時のスタイル
.top-bottom__btn.delighter.started.ended {
}*/

/* Tablet and larger overrides (768px and wider). */
@media screen and (min-width: 768px) {


  .hero__img {
    position: absolute;
    width: 60%;
    height: 100%;
    right: 0;
    margin: 0;
  }

  .hero__inner {
    position: absolute;
    background: none;
    text-align: center;
    width: 60%;
    top: calc(50% - 48px);
    bottom: auto;
    padding: 0px 0px 0px 40px;
  }

  .hero__copy {
    font-size: 36px;
    letter-spacing: 0.3rem;
    line-height: 1.4;
  }

  .top-intro {
    height: 100vh;
    max-width: 1280px;
    max-height: 860px;
    min-height: 686px;
    padding: 160px 40px 160px 40px;
    margin: 0 auto;
  }

  .top-intro__line-vertical {
    display: block;
    position: absolute;
    background: #000000;
    width: 1px;
    height: 100vh;
    max-height: 860px;
    top: 0;
    left: 50%;
    z-index: 90;
    /* 線アニメーション（アウト）の設定 */
    bottom: 100%;
    transition: height 0.6s ease-in;
  }
  /* 画面に入った時に付与される */
  .top-intro__line-vertical.is-active {
    /* 線アニメーション（イン）の設定 */
    bottom: 0;
    transition: height 2.0s ease-out;
  }

  .top-intro__inner {
    width: 50%;
  }

  .top-intro__line-horizon {
    display: block;
    position: relative;
    background: #000000;
    box-sizing: border-box;
    width: calc(100% + 40px);
    height: 1px;
  }

  .top-intro__copy {
    font-size: 36px;
    letter-spacing: 0.3rem;
    line-height: 1;
    padding-right: 40px;
    padding-bottom: 20px;
  }

  .top-intro__copy-sub {
    position: relative;
    display: block;
    font-size: 34px;
    letter-spacing: 0.4rem;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    width: calc(50% - 40px);
    top: 40px;
    left: 0;
    padding-top: 0;
  }

  .top-intro__text {
    position: absolute;
    font-size: 15px;
    letter-spacing: 0.06rem;
    line-height: 1.8;
    width: 50%;
    right: 0;
    bottom: 160px;
    padding: 0 40px 0 40px;
  }

  .circle-wrap {
    display: block;
    position: relative;
    width: 28px;
    height: 28px;
    top: -14px;
    left: calc(100% - 14px);
  }

  .top-works {
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
  }

  .top-works__img {
    width: 50%;
    height: 80vh;
    max-height: 768px;
    top: 0;
  }

  .top-works__img img {
    width: auto;
    height: 100%;
  }

  .top-works-main {
    width: 50%;
    height: 100vh;
    height: 100dvh;
    left: 50%;
    top: 0;
  }

  .top-works-main__inner {
    position: absolute;
    width: 100%;
    max-width: 920px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0 3.0vw;
  }

  .top-works-main__title {
    font-size: 36px;
    letter-spacing: 0.2rem;
    line-height: 1.4;
    text-align: center;
  }

  .top-works-main__text {
    font-size: 15px;
    letter-spacing: 0.06rem;
    line-height: 1.8;
    padding: 40px 0 0 0;
  }

  .top-works-detail {
    width: 50%;
    padding: 0px 0px 0px 0px;
  }

  .top-works-detail__inner {
    max-width: 920px;
    padding-bottom: 80px;
    margin: 0 auto;
    padding: 80px 40px 0px 40px;
  }

  .top-works-detail__title {
    font-size: 32px;
    letter-spacing: 0.1rem;
    line-height: 1.4;
    padding-top: 30px;
  }

  .top-works-detail__title-sub {
    font-size: 18px;
    letter-spacing: 0.2rem;
    line-height: 1.2;
  }

  .top-works-detail__text {
    font-size: 15px;
    letter-spacing: 0.06rem;
    line-height: 1.8;
    padding: 30px 0 0 0;
  }

  .top-bottom {
    display: flex;
    height: 80vh;
    max-width: 1280px;
    max-height: 760px;
    min-height: 660px;
    padding: 160px 0px 0px 0px;
    margin: 0 auto;
  }

  .top-bottom__img {
    width: 50%;
  }

  .top-bottom__inner {
    width: 50%;
    padding: 0 40px 0 40px;
  }

  .top-bottom__title {
    font-size: 32px;
    letter-spacing: 0.1rem;
    line-height: 1.4;
    padding-bottom: 20px;
  }

  .top-bottom__title::after {
    content: '';
    display: block;
    background: #000000;
    width: 1px;
    height: 50px;
    margin: 0 auto;
    margin-top: 10px;
  }

  .top-bottom__btn a {
    font-size: 22px;
    width: 300px;
    margin-bottom: 30px;
    padding: 13px 0px 15px 0px;
  }

  .top-info {
    padding: 80px 40px 80px 40px;
  }

  .top-info__title {
    font-size: 34px;
    letter-spacing: 0.18rem;
    line-height: 1.4;
    padding-bottom: 40px;
  }

  .top-info__inner {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
  }

  .top-info__list {
    padding: 20px 0;
  }

  .hero__img.delighter {
    transition: all 1s ease-out;
    transform: translateX(-10%);
    opacity: 0;
  }

  .hero__inner.delighter {
    transition: all 1s ease-out;
    transform: none;
    opacity: 0;
  }
/* 基本のスタイル */

  .top-intro__line-horizon.delighter {
    transition: all 1s ease-out;
    transform: scaleX(0);
    transform-origin: top right;
    opacity: 0;
  }
/* 基本のスタイル */

  .top-intro__copy.delighter {
    transition: all 1s ease-out;
    opacity: 0;
  }
/* 基本のスタイル */

  .top-intro__copy-sub.delighter {
    transition: all 1s ease-out;
    transform: translateY(10%);
    opacity: 0;
  }
/* 基本のスタイル */

  .top-intro__text.delighter {
    transition: all 1s ease-out;
    opacity: 0;
  }
/* 基本のスタイル */

  .circle-right-hidden.delighter {
    transition: all 2s ease-out;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
/* 基本のスタイル */

  .circle-left-hidden.delighter {
    transition: all 2s ease-out;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
}

/* PC refinements (960px and wider). */
@media screen and (min-width: 960px) {


  .hero__inner {
    width: 60%;
    top: calc(50% - 48px);
    padding: 0 0px 0 40px;
  }


  .hero__copy {
    font-size: 42px;
    letter-spacing: 0.4rem;
    line-height: 1.4;
  }


  .top-intro {
    max-width: 1340px;
    padding: 160px 80px 160px 80px;
  }


  .top-intro__copy {
    font-size: 42px;
    letter-spacing: 0.3rem;
    line-height: 1.4;
  }


  .top-intro__copy-sub {
    width: calc(50% - 80px);
  }


  .top-intro__text {
    letter-spacing: 0.08rem;
    line-height: 2;
    padding: 0 80px 0 80px;
  }


  .top-works__img {
    width: 50%;
    height: 80vh;
    max-height: 760px;
    top: 0;
  }


  .top-works-main__inner {
    max-width: 860px;
    padding: 0 4.0vw;
  }


  .top-works-main__title {
    font-size: 42px;
    letter-spacing: 0.3rem;
  }


  .top-works-main__text {
    font-size: 15px;
    letter-spacing: 0.08rem;
    line-height: 2;
    padding: 40px 0 0 0;
  }


  .top-works-detail {
    padding: 0px 0px 0px 0px;
  }


  .top-works-detail__inner {
    max-width: 860px;
    padding-bottom: 80px;
    margin: 0 auto;
    padding: 80px 80px 0px 80px;
  }


  .top-works-detail__title {
    font-size: 34px;
    letter-spacing: 0.18rem;
  }


  .top-works-detail__title-sub {
    font-size: 20px;
    line-height: 1.4;
  }


  .top-works-detail__text {
    font-size: 15px;
    letter-spacing: 0.08rem;
    line-height: 2;
  }


  .top-bottom {
    padding: 160px 0px 0px 0px;
  }


  .top-bottom__img img {
    height: 100%;
    object-fit: contain;
  }


  .top-bottom__inner {
    padding: 0 0px 0 0px;
  }


  .top-bottom__title {
    font-size: 34px;
    letter-spacing: 0.18rem;
    line-height: 1.4;
    padding-bottom: 20px;
  }


  .top-bottom__btn a {
    font-size: 24px;
    width: 360px;
    padding: 13px 20px 15px 20px;
  }


  .top-info {
    padding: 80px 80px 80px 80px;
  }
}
@media screen and (min-width: 1024px) {


  .hero__img {
    position: absolute;
    width: 50%;
    height: 100%;
    right: 0;
  }
}
