@charset "UTF-8";
/*
---------------------------------------------------------------------------------------------------------------------
ローディング
---------------------------------------------------------------------------------------------------------------------
*/
.loading {
  width: 100%;
  height: 100%;
  background: #3c452f;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20000; }
  .loading img {
    width: 150px;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

/*
---------------------------------------------------------------------------------------------------------------------
メインビジュアル
---------------------------------------------------------------------------------------------------------------------
*/
.TopMainPhoto {
  position: relative;
  background-image: url(../img/top/bg0_sp.jpg);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
  height: 100vh; }
  .TopMainPhoto:before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(60, 69, 47, 0.5);
    height: 100%;
    mix-blend-mode: multiply; }
  @media (min-width: 450px) {
    .TopMainPhoto {
      background-image: url(../img/top/bg0_pc.jpg); } }
  .TopMainPhoto .MainLogo_Box {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 90%;
    height: 160px;
    margin: auto;
    text-align: center; }
    @media (min-width: 768px) {
      .TopMainPhoto .MainLogo_Box {
        height: 260px; } }
    .TopMainPhoto .MainLogo_Box .flex {
      display: flex;
      max-width: 540px;
      margin: auto; }
      .TopMainPhoto .MainLogo_Box .flex a {
        transition: .5s;
        display: block;
        transform: scale(1); }
        .TopMainPhoto .MainLogo_Box .flex a img {
          width: 100%;
          height: auto; }
        .TopMainPhoto .MainLogo_Box .flex a:hover {
          transform: scale(1.02);
          opacity: 0.9; }
    .TopMainPhoto .MainLogo_Box .delay1 {
      animation-delay: 0.5s; }
    .TopMainPhoto .MainLogo_Box .delay2 {
      animation-delay: 1.0s; }
    .TopMainPhoto .MainLogo_Box .delay3 {
      animation-delay: 1.5s; }
    .TopMainPhoto .MainLogo_Box .delay4 {
      animation-delay: 2.0s; }
  .TopMainPhoto .rogo_Green img {
    max-width: 540px;
    width: 95%;
    height: auto;
    margin: 15px auto 0; }

.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes fadeInAnime {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
/*
---------------------------------------------------------------------------------------------------------------------
イメージ写真＆コピー
---------------------------------------------------------------------------------------------------------------------
*/
.TopPhoto {
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
  height: 100vh;
  position: relative;
  margin-top: -1px; }
  .TopPhoto.back1 {
    background-image: url(../img/top/bg1_sp.jpg); }
  .TopPhoto.back2 {
    background-image: url(../img/top/bg2_sp.jpg); }
  .TopPhoto.back3 {
    background-image: url(../img/top/bg3_sp.jpg); }
  .TopPhoto.back4 {
    background-image: url(../img/top/bg4_sp.jpg); }
  .TopPhoto:before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(60, 69, 47, 0.5);
    height: 100%;
    mix-blend-mode: multiply; }
  @media (min-width: 1024px) {
    .TopPhoto {
      height: 820px; }
      .TopPhoto.back1 {
        background-image: url(../img/top/bg1_pc.jpg); }
      .TopPhoto.back2 {
        background-image: url(../img/top/bg2_pc.jpg); }
      .TopPhoto.back3 {
        background-image: url(../img/top/bg3_pc.jpg); }
      .TopPhoto.back4 {
        background-image: url(../img/top/bg4_pc.jpg); } }
  .TopPhoto .PageCopy {
    color: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 90px;
    margin: auto;
    text-align: center; }
    @media (min-width: 768px) {
      .TopPhoto .PageCopy {
        height: 140px; } }
    .TopPhoto .PageCopy h2 {
      font-size: 1.4em;
      line-height: 2em;
      letter-spacing: 0.15em;
      font-weight: 500; }
      @media (min-width: 450px) {
        .TopPhoto .PageCopy h2 {
          font-size: 2em; } }

.slide-in {
  overflow: hidden;
  display: inline-block; }

.slide-in_inner {
  display: inline-block; }

/* 上下のアニメーション*/
.upAnime {
  opacity: 0; }

.slideAnimeDownUp {
  animation-name: slideTextY100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes slideTextY100 {
  from {
    transform: translateY(100%);
    /* 要素を上の枠外に移動*/
    opacity: 0; }
  to {
    transform: translateY(0);
    /* 要素を元の位置に移動*/
    opacity: 1; } }
.slideAnimeUpDown {
  animation-name: slideTextY-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes slideTextY-100 {
  from {
    transform: translateY(-100%);
    /* 要素を下の枠外に移動*/
    opacity: 0; }
  to {
    transform: translateY(0);
    /* 要素を元の位置に移動*/
    opacity: 1; } }
/*
---------------------------------------------------------------------------------------------------------------------
コンセプト
---------------------------------------------------------------------------------------------------------------------
*/
#Concept {
  text-align: center;
  color: #3C452F;
  padding-top: 120px;
  margin-bottom: 100px; }
  @media (min-width: 450px) {
    #Concept {
      padding-top: 250px;
      margin-bottom: 150px; } }
  #Concept img {
    max-width: 600px;
    width: 70%;
    height: auto; }
  #Concept h1 {
    font-size: 1.25em;
    margin-top: 50px;
    font-feature-settings: "palt";
    font-weight: 500;
    letter-spacing: 0.175em; }
    @media (min-width: 1024px) {
      #Concept h1 {
        font-size: 3em;
        margin-top: 100px; } }
  #Concept .ConceptText {
    font-size: 0.8em;
    margin: 60px 5% 0; }
    @media (min-width: 450px) {
      #Concept .ConceptText {
        font-size: 1em;
        margin-top: 100px; } }
    #Concept .ConceptText p {
      line-height: 2.4em; }
