@charset "utf-8";

/*=======================================================================

トップページ用

========================================================================*/
.page-top {
}

@media screen and (max-width: 767px) {
}

/*
-------------------------------------------------------
メインビジュアル
-------------------------------------------------------*/
.top-mv {
}
.top-mv .mv-wrap {
  position: relative;
  isolation: isolate;
}

.top-mv .mv {
  background-image: url(../images/top/mv_01.jpg);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: contain;
}
.top-mv .mv-action {
  width: 100%;
}
.top-mv .mv-merit {
  background-color: #3c5a46;
  padding: 37px 8px;
}
.top-mv .merit-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 8px 1fr;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 8px;
}
.top-mv .merit-list__item {
}
.top-mv .merit-list__item.--full {
  -ms-grid-column-span: 2;
  grid-column: span 2;
}

@media screen and (max-width: 767px) {
  .top-mv {
  }
  .top-mv .hikari img {
    width: 80px;
  }
  @keyframes hikari-rise {
    0% {
      transform: translate(-50%, 40px) rotate(var(--hikari-angle)) scale(var(--hikari-scale));
    }
    100% {
      transform: translate(-50%, -50px) rotate(var(--hikari-angle)) scale(var(--hikari-scale));
    }
  }
  @keyframes hikari-rise-opacity {
    0%,
    100% {
      opacity: 0;
    }
    15%,
    85% {
      opacity: 1;
    }
  }
  .top-mv .mv {
    background-image: url(../images/top/sp/mv_01_sp.jpg);
  }
  .top-mv .mv-action {
  }
  .top-mv .mv-merit {
    padding: 25px 0px;
  }
  .top-mv .merit-list {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr;
    grid-template-columns: repeat(1, 1fr);
    grid-gap: 5px;
  }
  .top-mv .merit-list__item {
  }
  /* 解除：スマホ時.--fullのspan指定を無効化 */
  .top-mv .merit-list__item.--full {
    -ms-grid-column-span: 1;
    grid-column: span 1;
  }
}

/*
-------------------------------------------------------
ひかり
-------------------------------------------------------*/
.top-mv .hikari-wrap {
  user-select: none;
  pointer-events: none;
  position: absolute;
  top: 57%;
  left: 72.7%;
  z-index: 2;
  width: 0;
  height: 0;
  pointer-events: none;
  overflow: visible;
  mix-blend-mode: screen;
}
.top-mv .hikari {
  position: absolute;
  animation:
    hikari-rise 3s ease-in-out infinite,
    hikari-rise-opacity 3s ease-in-out infinite;
}
.top-mv .hikari img {
  display: block;
  width: 100px;
  max-width: none;
}
.top-mv .hikari--1 {
  --hikari-angle: -27deg;
  --hikari-scale: 1.2; /* 一番大きく */
  --hikari-delay: 0s;
  --hikari-rotate-start: 0deg;
  --hikari-rotate-end: 70deg;
  left: -29px;
  top: 9px;
  animation-delay: var(--hikari-delay);
}
.top-mv .hikari--2 {
  --hikari-angle: 18deg;
  --hikari-scale: 0.7; /* 小ぶりに設定して控えめ */
  --hikari-delay: 0.7s;
  --hikari-rotate-start: 35deg;
  --hikari-rotate-end: 115deg;
  left: 22px;
  top: -15px;
  animation-delay: var(--hikari-delay);
}
.top-mv .hikari--3 {
  --hikari-angle: -14deg;
  --hikari-scale: 1; /* 標準サイズ */
  --hikari-delay: 1.3s;
  --hikari-rotate-start: -35deg;
  --hikari-rotate-end: 45deg;
  left: 0px;
  top: 30px;
  animation-delay: var(--hikari-delay);
}
.top-mv .hikari--4 {
  --hikari-angle: 52deg;
  --hikari-scale: 0.85; /* やや小さめ */
  --hikari-delay: 2s;
  --hikari-rotate-start: 10deg;
  --hikari-rotate-end: 100deg;
  left: 30px;
  top: 21px;
  animation-delay: var(--hikari-delay);
}
.top-mv .hikari--5 {
  --hikari-angle: -62deg;
  --hikari-scale: 0.55; /* 最も小さく */
  --hikari-delay: 2.45s;
  --hikari-rotate-start: -60deg;
  --hikari-rotate-end: 30deg;
  left: -22px;
  top: -22px;
  animation-delay: var(--hikari-delay);
}
@keyframes hikari-rise {
  0% {
    transform: translate(-50%, 60px) rotate(var(--hikari-angle)) scale(calc(var(--hikari-scale) * 1))
      rotate(var(--hikari-rotate-start));
  }
  100% {
    transform: translate(-50%, -80px) rotate(var(--hikari-angle)) scale(calc(var(--hikari-scale) * 0.3))
      rotate(var(--hikari-rotate-end));
  }
}
@keyframes hikari-rise-opacity {
  0%,
  100% {
    opacity: 0;
  }
  15%,
  85% {
    opacity: 0.7;
  }
}

/*
-------------------------------------------------------
資料請求
-------------------------------------------------------*/
.top-entry {
  padding-top: 55px;
  padding-bottom: 55px;
  text-align: center;
}
.top-entry .entry {
}
.top-entry .entry__ttl {
  font-size: 30px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.15em;
  margin: 0;
}
.top-entry .entry__txt {
  font-size: 20px;
  letter-spacing: 0.07em;
}
.top-entry .entry__btn {
  width: min(600px, 100%);
  margin-inline: auto;
  margin-top: 30px;
}
.top-entry .flow {
}
.top-entry .flow__img {
  margin-top: 25px;
}

@media screen and (max-width: 767px) {
  .top-entry {
    padding-top: 45px;
    padding-bottom: 45px;
  }
  .top-entry .entry {
  }
  .top-entry .entry__ttl {
    font-size: 24px;
    letter-spacing: 0.1em;
  }
  .top-entry .entry__txt {
    font-size: 14px;
    letter-spacing: 0.07em;
  }
  .top-entry .entry__btn {
    margin-top: 20px;
  }
  .top-entry .flow {
  }
  .top-entry .flow__img {
    margin-top: 20px;
  }
}

/*
-------------------------------------------------------
アクセス
-------------------------------------------------------*/
.top-access {
}

@media screen and (max-width: 767px) {
}

/*
-------------------------------------------------------
コンセプト
-------------------------------------------------------*/
.top-concept {
}
.top-concept .concept__title {
  width: min(400px, 80%);
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
}

/*
-------------------------------------------------------
トップのナビゲーション
-------------------------------------------------------*/
.top-navi {
}

.top-navi .list {
}
.top-navi .list__item {
  margin-top: 2px;
}

@media screen and (max-width: 767px) {
}

/*
-------------------------------------------------------
インフォメーション
-------------------------------------------------------*/

.information {
}

.information .b-p {
}

.information .thim {
  font-size: 20px;
  font-weight: inherit;
  text-align: center;
  margin-top: 0;
  margin-bottom: 1.5em;
}

.information .thim span {
  display: block;
  font-size: 30px;
  margin-bottom: 0.5em;
}
.information dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 1em;
  margin-bottom: 0;
}

.information dl > dd {
  margin: 0;
  padding: 0;
}

.information dl > dd > dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.7em;
  margin: 0;
  padding: 0;
}

.information dl > dd > dl > dt,
.information dl > dd > dl > dd {
  margin: 0;
  padding: 0;
}

.information .b-date {
  white-space: nowrap;
  min-width: 110px;
  text-align: left;
  font-weight: 500 !important;
  letter-spacing: 0.03em;
}

.information .b-txt a {
  color: inherit;
  text-decoration: underline;
}

@media screen and (max-width: 767px) {
  .information dl {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0.5em;
  }
  .information dl > dd > dl {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 0.2em;
  }
}

@media screen and (max-width: 767px) {
  .information {
  }

  .information .b-p {
  }

  .information .thim {
  }

  .information .thim span {
    font-size: 20px;
  }
}
