*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box; }

img {
  vertical-align: bottom; }

@media screen and (min-width: 1025px) {
  .pc {
    display: block !important; } }
@media screen and (max-width: 1024px) {
  .pc {
    display: none !important; } }
@media screen and (max-width: 768px) {
  .pc {
    display: none !important; } }

@media screen and (min-width: 1025px) {
  .tab {
    display: none !important; } }
@media screen and (max-width: 1024px) {
  .tab {
    display: block !important; } }
@media screen and (max-width: 768px) {
  .tab {
    display: none !important; } }

@media screen and (min-width: 1025px) {
  .sp {
    display: none !important; } }
@media screen and (max-width: 1024px) {
  .sp {
    display: none !important; } }
@media screen and (max-width: 768px) {
  .sp {
    display: block !important; } }

#wrap {
  overflow: hidden; }
  #wrap .fade-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    opacity: 1;
    transition: opacity 1s ease-in-out;
    z-index: 9999;
    pointer-events: none; }
    #wrap .fade-overlay.hide {
      opacity: 0; }
  #wrap #mainVisual {
    height: calc(100vh - 70px);
    margin-top: 70px;
    background: url("../img/mainVisual-bg.jpg") no-repeat left center/cover;
    display: flex;
    justify-content: center;
    align-items: center; }
    @media screen and (max-width: 768px) {
      #wrap #mainVisual {
        height: calc(100svh - 72px);
        background: url("../img/mainVisual-bg_x2.jpg") no-repeat center top/cover;
        align-items: flex-start;
        margin-top: 72px; } }
  #wrap #masterpiece {
    background: url("../img/masterpiece-bg.jpg") no-repeat left top/cover; }
    @media screen and (max-width: 768px) {
      #wrap #masterpiece {
        background: url("../img/masterpiece-bg_x2.jpg") no-repeat left top/cover;
        height: calc(100vh - 72px); } }
    @media screen and (min-width: 1025px) {
      #wrap #masterpiece .text__wrap {
        position: absolute;
        left: 80px;
        bottom: 100px; } }
    @media screen and (max-width: 768px) {
      #wrap #masterpiece .text__wrap {
        padding: 0 25px;
        position: absolute;
        bottom: 50px; } }
    #wrap #masterpiece .text__wrap .title__wrap,
    #wrap #masterpiece .text__wrap .content__wrap {
      overflow: hidden; }
      #wrap #masterpiece .text__wrap .title__wrap h2, #wrap #masterpiece .text__wrap .title__wrap p,
      #wrap #masterpiece .text__wrap .content__wrap h2,
      #wrap #masterpiece .text__wrap .content__wrap p {
        transform: translateY(105%);
        transition: transform .5s; }
    #wrap #masterpiece .text__wrap .title__wrap {
      margin: 0 0 15px; }
    #wrap #masterpiece.is-show .text__wrap .title__wrap h2 {
      transform: translateY(0); }
    #wrap #masterpiece.is-show .text__wrap .content__wrap p {
      transform: translateY(0); }
  #wrap #amenities {
    background: url("../img/amenities-bg.jpg") no-repeat left top/cover; }
    @media screen and (max-width: 768px) {
      #wrap #amenities {
        background: url("../img/amenities-bg_x2.jpg") no-repeat left top/cover;
        height: calc(100vh - 72px); } }
    @media screen and (min-width: 1025px) {
      #wrap #amenities .text__wrap {
        position: absolute;
        left: 80px;
        bottom: 100px; } }
    @media screen and (max-width: 768px) {
      #wrap #amenities .text__wrap {
        padding: 0 25px;
        position: absolute;
        bottom: 50px; } }
    #wrap #amenities .text__wrap .title__wrap,
    #wrap #amenities .text__wrap .content__wrap {
      overflow: hidden; }
      #wrap #amenities .text__wrap .title__wrap h2, #wrap #amenities .text__wrap .title__wrap p,
      #wrap #amenities .text__wrap .content__wrap h2,
      #wrap #amenities .text__wrap .content__wrap p {
        transform: translateY(105%);
        transition: transform .5s; }
    #wrap #amenities .text__wrap .title__wrap {
      margin: 0 0 15px; }
    #wrap #amenities.is-show .text__wrap .title__wrap h2 {
      transform: translateY(0); }
    #wrap #amenities.is-show .text__wrap .content__wrap p {
      transform: translateY(0); }
  #wrap #gallery {
    height: auto;
    padding: 145px 0 0; }
    @media screen and (max-width: 768px) {
      #wrap #gallery {
        padding: 0; } }
    #wrap #gallery::before {
      content: '';
      display: block;
      width: 620px;
      height: 585px;
      background: url("../img/ico-bg.svg") no-repeat top left/cover;
      position: absolute;
      top: -60px;
      right: -75px;
      pointer-events: none; }
      @media screen and (max-width: 768px) {
        #wrap #gallery::before {
          width: 285px;
          height: 270px; } }
    @media screen and (max-width: 768px) {
      #wrap #gallery .text__wrap {
        padding: 110px 20px 70px; } }
    #wrap #gallery .text__wrap .title__wrap {
      margin: 0 0 30px; }
      @media screen and (max-width: 768px) {
        #wrap #gallery .text__wrap .title__wrap {
          margin: 0 0 20px; } }
      #wrap #gallery .text__wrap .title__wrap h2 {
        text-align: center;
        font-size: 40px;
        color: #020202; }
        @media screen and (max-width: 768px) {
          #wrap #gallery .text__wrap .title__wrap h2 {
            font-size: 24px; } }
    #wrap #gallery .text__wrap p {
      text-align: center;
      color: #020202; }
      @media screen and (max-width: 768px) {
        #wrap #gallery .text__wrap p {
          text-align: left; } }
    #wrap #gallery .layout {
      margin: 100px 0 0; }
      @media screen and (max-width: 768px) {
        #wrap #gallery .layout {
          margin: 0; } }
      #wrap #gallery .layout__wrap .hero__Left__wrap {
        display: flex;
        justify-content: flex-start; }
        @media screen and (max-width: 768px) {
          #wrap #gallery .layout__wrap .hero__Left__wrap img {
            width: 100%; } }
      #wrap #gallery .layout__wrap .hero__Right__wrap {
        display: flex;
        justify-content: flex-end; }
        @media screen and (max-width: 768px) {
          #wrap #gallery .layout__wrap .hero__Right__wrap img {
            width: 100%; } }
      #wrap #gallery .layout__wrap .overlap__two__outer {
        position: relative; }
        #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two {
          width: 100%;
          max-width: 1250px;
          margin: 120px auto; }
          @media screen and (max-width: 768px) {
            #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two {
              max-width: none;
              margin: 35px auto 70px;
              padding: 0 20px; } }
          #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two::before {
            content: '';
            display: block;
            width: 620px;
            height: 585px;
            background: url("../img/ico-bg.svg") no-repeat top left/cover;
            position: absolute;
            bottom: -250px;
            left: -230px;
            pointer-events: none; }
            @media screen and (max-width: 768px) {
              #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two::before {
                bottom: -145px;
                left: -75px;
                width: 285px;
                height: 270px; } }
          #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap {
            display: grid;
            grid-template-columns: repeat(12, minmax(0, 1fr)); }
            #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap div {
              position: relative; }
              #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap div:nth-child(1) {
                grid-column: 1;
                z-index: 2; }
                @media screen and (max-width: 768px) {
                  #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap div:nth-child(1) {
                    grid-column: 1 / span 9; } }
              #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap div:nth-child(2) {
                grid-column: 6;
                margin-top: 200px;
                z-index: 1; }
                @media screen and (max-width: 768px) {
                  #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap div:nth-child(2) {
                    grid-column: 3 / span 12;
                    margin-top: -15px; } }
              @media screen and (max-width: 768px) {
                #wrap #gallery .layout__wrap .overlap__two__outer .overlap__two__wrap div img {
                  width: 100%; } }
      #wrap #gallery .layout__wrap .overlap__three__outer {
        position: relative; }
        #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three {
          width: 100%;
          max-width: 1250px;
          margin: 120px auto; }
          @media screen and (max-width: 768px) {
            #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three {
              max-width: none;
              margin: 35px auto 70px;
              padding: 0 20px; } }
          #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three::before {
            content: '';
            display: block;
            width: 380px;
            height: 355px;
            background: url("../img/ico-bg.svg") no-repeat top left/cover;
            position: absolute;
            top: 165px;
            left: 100px;
            pointer-events: none; }
            @media screen and (max-width: 768px) {
              #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three::before {
                display: none; } }
          #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three::after {
            content: '';
            display: block;
            width: 620px;
            height: 585px;
            background: url("../img/ico-bg.svg") no-repeat top left/cover;
            position: absolute;
            bottom: -320px;
            right: -75px;
            pointer-events: none; }
            @media screen and (max-width: 768px) {
              #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three::after {
                bottom: -125px;
                width: 275px;
                height: 260px; } }
          #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap {
            display: grid;
            grid-template-columns: repeat(12, minmax(0, 1fr));
            grid-template-rows: auto auto; }
            @media screen and (max-width: 768px) {
              #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap {
                grid-template-rows: auto auto auto; } }
            #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div {
              position: relative; }
              #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div:nth-child(1) {
                grid-column: 2;
                grid-row: 1;
                z-index: 1; }
                @media screen and (max-width: 768px) {
                  #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div:nth-child(1) {
                    grid-column: 1 / span 10;
                    grid-row: 1; } }
              #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div:nth-child(2) {
                grid-column: 6;
                grid-row: 1;
                margin-top: 320px;
                z-index: 2; }
                @media screen and (max-width: 768px) {
                  #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div:nth-child(2) {
                    grid-column: 3 / span 12;
                    grid-row: 2;
                    margin-top: -15px; } }
              #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div:nth-child(3) {
                grid-column: 1;
                grid-row: 2;
                margin-top: -120px;
                z-index: 3; }
                @media screen and (max-width: 768px) {
                  #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div:nth-child(3) {
                    grid-column: 1 / span 10;
                    grid-row: 3;
                    margin-top: -15px; } }
              @media screen and (max-width: 768px) {
                #wrap #gallery .layout__wrap .overlap__three__outer .overlap__three__wrap div img {
                  width: 100%; } }
  #wrap .outline {
    height: auto;
    max-width: 1200px;
    margin: 100px auto 0;
    border-top: solid 1px #ccc;
    border-bottom: solid 1px #ccc;
    padding: 15px; }
    #wrap .outline .title__wrap {
      margin: 0 0 15px; }
      #wrap .outline .title__wrap h3 {
        text-align: center;
        font-size: 1.5rem; }
    #wrap .outline p {
      font-size: 16px; }
  #wrap .separator {
    margin: 160px 0 0; }
    @media screen and (max-width: 768px) {
      #wrap .separator {
        margin: 65px 0 0; } }
    #wrap .separator img {
      width: 100%; }
  #wrap section {
    width: 100%;
    position: relative; }
    @media screen and (min-width: 1025px) {
      #wrap section {
        height: 100vh; } }
    #wrap section #logo {
      color: transparent; }
      @media screen and (max-width: 768px) {
        #wrap section #logo {
          margin-top: 80px;
          max-width: 325px; } }
      #wrap section #logo img {
        width: 100%; }
    @media screen and (max-width: 768px) {
      #wrap section .text__wrap {
        padding: 30px 20px 60px; } }
    #wrap section .text__wrap .title__wrap h2 {
      font-weight: 400;
      color: #FFF;
      font-size: 80px;
      line-height: normal; }
      @media screen and (max-width: 768px) {
        #wrap section .text__wrap .title__wrap h2 {
          font-size: 27px; } }
    #wrap section .text__wrap p {
      font-weight: 500;
      line-height: 2;
      color: #fff;
      font-size: 16px; }
  #wrap footer {
    padding-top: 80px;
    /*
    &::before {
     content: '';
     display: block;
     width: 620px;
     height: 585px;
     background: url("../img/ico-bg.svg") no-repeat top left/cover;
     position: absolute;
     top: -150px;
     left: 50%;
     transform: translateX(-50%);
     pointer-events: none;
     @include sp {
      width: 275px;
      height: 260px;
      top: -75px;
     }
    }
    */ }
    @media screen and (max-width: 768px) {
      #wrap footer {
        padding-top: 0; } }
    #wrap footer #top_contents-footer .top_contents-footer-inner #information {
      display: none; }
