@charset "UTF-8";

/* dlight */
.dm {}

/* ======================================== */
/* SMARTPHONE
======================================== */
@media screen and (max-width: 768px) {

  #pagekv {
    margin: 0 auto 100px;
  }

  #pagekv .txt {
    position: absolute;
    top: 40px;
    right: 20px;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: 0.4em;
    color: #585F64;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
    z-index: 10;
  }

  #pagekv .txt p:first-child {
    letter-spacing: 0.25em;
    color: #FFF;
    line-height: 1;
  }

  #pagekv .txt p:first-child span {
    display: inline-block;
    height: max-content;
    background-color: rgba(35, 40, 43, 0.8);
    padding: 8px 8px 0px 0;
  }

  #pagekv .txt p:first-child span:nth-of-type(2) {
    margin-right: 5px;
  }

  #pagekv .txt p:last-child {
    font-size: 1.3rem;
    letter-spacing: 0.25em;
    color: #757569;
    margin-right: 6px;
  }

  #pagekv .txt p:last-child span {
    display: inline-block;
    height: max-content;
    background-color: rgba(236, 237, 231, 0.8);
    padding: 8px 8px 0px 0;
  }

  #pagekv .txt p:last-child span:nth-of-type(2) {
    margin-right: 10px;
  }

  #pagekv #topPageHeader p span:nth-child(2) {
    margin: 7em 0 0 1.8em;
  }

  #pagekv #topPageHeader p span:nth-child(3) {
    margin: 5em 0 0 0;
  }

  #pagekv .kvSlider {
    height: 100%;
  }


  #concept>.inner,
  #ceremony>.inner,
  #banquet>.inner,
  #cuisine>.inner {
    position: relative;
  }

  #ceremony .btn,
  #banquet .btn,
  #cuisine .btn {
    position: absolute;
    pointer-events: none;
    background: #FFF;
    z-index: 5;
  }

  #concept .btn .btn-viewmore,
  #ceremony .btn .btn-viewmore,
  #banquet .btn .btn-viewmore,
  #cuisine .btn .btn-viewmore {
    padding: 8px 12px 0 16px;
    flex-flow: column;
    justify-content: flex-start;
    align-items: inherit;
  }

  #concept .btn .btn-viewmore .bvm--label,
  #ceremony .btn .btn-viewmore .bvm--label,
  #banquet .btn .btn-viewmore .bvm--label,
  #cuisine .btn .btn-viewmore .bvm--label {
    margin-bottom: 7px;
  }


  #concept {
    margin-bottom: 60px;
  }

  #concept>.inner>.txt {
    width: 80%;
    margin: 0 auto 50px;
  }

  #concept h2 {
    margin-bottom: 10px;
  }

  #concept .sec-catch {
    margin-bottom: 15px;
  }

  #concept .sec-read {
    margin-bottom: 30px;
  }

  #concept .btn {
    width: 50%;
  }


  #staywd {
    margin: auto;
    padding: 50px 10%;
    background-color: #EDE9E6;
  }

  #staywd .txt {
    text-align: center;
    margin-bottom: 30px;
  }

  #staywd .sec-catch {
    margin-bottom: 19px;
  }

  #staywd .sec-read {
    text-align: center;
    margin-bottom: 28px;
  }

  #staywd .ph {
    margin: 0 auto 30px;
    padding: 6px;
    background-color: #757569;
  }

  #staywd .ph ul {
    display: flex;
    justify-content: center;
    column-gap: 6px;
  }

  #staywd .btn {
    width: 50%;
    margin: auto;
  }

  #staywd .btn .btn-viewall {
    background-color: #F3F3EC;
  }

  #staywd .btn .bva--label {
    color: #625149;
  }

  #staywd .btn .bva--label::before {
    background-color: #62514938;
  }

  #staywd .btn .bva--arrow::before,
  #staywd .btn .bva--arrow::after {
    background-color: #625149;
  }


  .index-bg01 {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 0.7;
    background-image: url(../img/index/index_bg01.jpg);
    background-size: cover;
    background-position: center;
    color: #FFF;
    margin-bottom: 100px;
  }


  #ceremony,
  #banquet,
  #cuisine {
    margin-bottom: 70px;
  }

  #ceremony>.inner,
  #banquet>.inner,
  #cuisine>.inner {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 0.747;
  }

  #ceremony>.inner>.txt,
  #banquet>.inner>.txt,
  #cuisine>.inner>.txt {
    width: 80%;
    margin: 0 auto 30px;
  }

  #ceremony>.inner>.txt>h2,
  #banquet>.inner>.txt>h2,
  #cuisine>.inner>.txt>h2 {
    color: #625149;
    margin-bottom: 15px;
  }

  #ceremony>.inner>.txt>h2 .sec-tt-en,
  #banquet>.inner>.txt>h2 .sec-tt-en,
  #cuisine>.inner>.txt>h2 .sec-tt-en {
    font-size: 2rem;
  }

  #ceremony>.inner>.txt>h2 .sec-tt-ja,
  #banquet>.inner>.txt>h2 .sec-tt-ja,
  #cuisine>.inner>.txt>h2 .sec-tt-ja {
    font-size: 1.2rem;
  }

  #ceremony>.inner>.txt>.sec-catch,
  #banquet>.inner>.txt>.sec-catch,
  #cuisine>.inner>.txt>.sec-catch {
    margin-bottom: 15px;
  }

  #ceremony>.inner>.btn,
  #banquet>.inner>.btn,
  #cuisine>.inner>.btn {
    right: 0;
    bottom: 0;
    z-index: 2;
  }

  #banquet>.inner>.txt,
  #banquet>.inner>.txt .sec-read {
    text-align: right;
  }

  #banquet>.inner>.btn {
    left: 0;
    right: initial;
    bottom: 0;
  }

  #banquet>.inner>.btn .btn-viewmore {
    padding: 8px 16px 0 12px;
  }

  #cuisine {
    margin-bottom: 80px;
  }


  #report {
    margin: 0 auto 80px;
    padding: 50px 0;
    background-color: #EDE9E6;
  }

  #report>.inner {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 80%;
    margin: auto;
  }

  #report>.inner>.txt {
    margin-bottom: 30px;
  }

  #report>.inner>.txt,
  #report>.inner .txt-inner {
    display: contents;
  }

  #report>.inner>.txt .sec-tt-en {
    margin-bottom: 15px;
    order: 1
  }

  #report>.inner>.txt .sec-read {
    margin-bottom: 20px;
    order: 2;
  }

  #report>.inner .btn {
    width: 50%;
    order: 4;
  }

  #report>.inner>.ph {
    order: 3;
  }


  #ctwd {
    width: 90%;
    margin: 0 auto 100px;
  }


  #news {
    padding: 50px 0;
    background-color: #C7C1B3;
  }

  #news>.inner {
    width: 80%;
    margin: auto;
  }

  #news>.inner>h2 {
    font-size: 1.6rem;
    color: #FFF;
    margin-bottom: 16px;
  }

  #news>.inner li {
    font-size: 1rem;
  }

  #newsWrap {
    position: relative;
    width: 820px;
    text-align: center;
    margin: 0 auto 120px;
  }


  #gallery {
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url(../img/index/gallery_bg.jpg);
    background-size: cover;
    aspect-ratio: 1 / 0.522;
  }

  #gallery>.inner {
    width: 80%;
    text-align: center;
    background: rgba(199, 193, 179, 0.78);
    padding: 24px 0;
  }

  #gallery>.inner h2 {
    font-size: 1.5rem;
    color: #FFF;
    line-height: 1.2;
    margin-bottom: 11px;
  }

  #gallery>.inner a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 150px;
    height: 26px;
    margin: auto;
    font-size: 1rem;
    background-color: #EDE9E6;
  }

  .fairSliderWrap {
    margin-bottom: 60px;
  }

  .planSliderWrap {
    margin-bottom: 80px;
  }

}

/* ======================================== */
/* DESKTOP
======================================== */
@media (768px < width) {

  #pagekv {
    .txt {
      position: absolute;
      top: 80px;
      right: 120px;
      font-size: 2.1rem;
      line-height: 1;
      letter-spacing: 0.4em;
      color: #585F64;
      -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
      text-orientation: upright;
      z-index: 10;

      p {
        &:first-child {
          letter-spacing: 0.25em;
          color: #FFF;
          line-height: 1;

          span {
            display: inline-block;
            height: max-content;
            background-color: rgba(35, 40, 43, 0.8);
            padding: 8px 12px 0px 0;
          }

          span:nth-of-type(2) {
            margin-right: 10px;
          }
        }

        &:last-child {
          font-size: 1.6rem;
          letter-spacing: 0.25em;
          color: #757569;
          margin-right: 14px;

          span {
            display: inline-block;
            height: max-content;
            background-color: rgba(236, 237, 231, 0.8);
            padding: 8px 12px 0px 0;
          }

          span:nth-of-type(2) {
            margin-right: 10px;
          }
        }
      }


    }

    #topPageHeader p span:nth-child(2) {
      margin: 7em 0 0 1.8em;
    }

    #topPageHeader p span:nth-child(3) {
      margin: 5em 0 0 0;
    }
  }

  .topsection {
    position: relative;
  }


  #concept {
    margin-bottom: 130px;

    >.inner {
      display: flex;

      >.txt {
        display: flex;
        justify-content: flex-end;
        width: 38.8%;
        padding-top: 20px;
        z-index: 5;

        .txt-inner {
          margin-right: 50px;
        }

        h2 {
          margin-bottom: 10px;
        }

        .sec-catch {
          font-size: 1.3rem;
          margin-bottom: 50px;
        }

        .sec-read {
          margin-bottom: 70px;
        }
      }

      >.ph {
        width: 61.2%;
        overflow: hidden;
      }

      .btn {
        width: 290px;
      }
    }

    >.pricon {
      width: 580px;
      margin: 0 auto 120px;
    }

    >.staywd {
      width: 768px;
      margin: 0 auto 120px;
    }
  }


  #staywd {
    padding: 80px 0;
    background-color: #EDE9E6;

    .txt {
      text-align: center;
      margin: 0 auto 50px;
      padding-top: 5px;

      .sec-tt-en {
        margin-bottom: 40px;
      }

      .sec-catch {
        margin-bottom: 20px;
      }

      .sec-read {
        text-align: center;
        margin-bottom: 28px;
      }
    }

    .ph {
      width: max-content;
      margin: 0 auto 30px;
      padding: 10px;
      background-color: #757569;

      ul {
        display: flex;
        justify-content: center;
        column-gap: 10px;
      }

      li {
        width: 346px;
      }
    }

    .btn {
      width: 290px;
      margin: auto;

      .btn-viewall {
        background-color: #F3F3EC;

        .bva--label {
          color: #757569;
        }

        .bva--arrow {

          &::before,
          &::after {
            background-color: #757569;
          }
        }

        &::before {
          background-color: #757569;
        }
      }
    }
  }


  .index-bg01 {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 0.4;
    background-image: url(../img/index/index_bg01.jpg);
    background-size: cover;
    color: #FFF;
    margin-bottom: 100px;
  }


  #ceremony,
  #banquet,
  #cuisine {
    width: 1100px;
    margin: auto;

    >.inner {
      display: flex;
      justify-content: space-between;

      >.txt {
        z-index: 5;

        >h2 {
          margin-bottom: 10px;
        }

        >.sec-catch {
          font-size: 1.3rem;
          margin-bottom: 10px;
        }
      }

      >.ph {
        position: relative;
        width: 750px;
        overflow: hidden;

        &::after {
          display: block;
          content: '';
          width: 50px;
          height: 100%;
          background-color: #FFF;
          position: absolute;
          top: 0;
          left: 0;
          opacity: .8;
          z-index: 1;
        }
      }
    }

    .btn {
      position: absolute;
      right: 0;
      bottom: 0;
      pointer-events: none;
      background: #FFF;
      z-index: 1;

      .btn-viewmore {
        width: 170px;
        padding: 20px 10px 0 40px;
        flex-flow: column;
        justify-content: flex-start;
        align-items: inherit;

        .bvm--label {
          margin-bottom: 10px;
        }
      }
    }
  }


  #ceremony {
    margin-bottom: 120px;

    >.inner {
      >.txt {
        padding: 80px 0 0 0;
      }

      >.ph {
        margin: 0 0 0 auto;
      }

      >.btn {
        right: 0;
        bottom: 0;
      }
    }
  }


  #banquet {
    margin-bottom: 120px;

    >.inner {
      >.txt {
        right: 0;
        padding: 80px 40px 0 0;
        order: 2;
      }

      >.ph {
        order: 1;

        &::after {
          right: 0;
          left: initial;
        }
      }

      >.btn {
        left: 0;
        right: initial;

        .btn-viewmore {
          padding: 20px 40px 0 10px;
        }
      }
    }
  }


  #cuisine {
    margin-bottom: 160px;

    >.inner {
      >.txt {
        padding: 80px 0 0 0;
      }

      >.ph {
        margin: 0 0 0 auto;
      }
    }
  }


  #report {
    margin-bottom: 150px;

    >.inner {
      display: flex;
      justify-content: space-between;

      >.txt {
        display: flex;
        justify-content: flex-end;
        width: 36.9%;
        padding-top: 76px;
        background-color: #EDE9E6;

        .txt-inner {
          margin-right: 70px;
        }

        .sec-tt-en {
          margin-bottom: 20px;
        }

        .sec-read {
          margin-bottom: 140px;
        }
      }

      >.ph {
        position: relative;
        width: 63.1%;
      }

      >.btn {
        position: absolute;
        width: 290px;
        top: 360px;
        left: 0;
      }
    }
  }


  #ctwd {
    width: 1060px;
    margin: 0 auto 150px;
  }


  #news {
    padding: 100px 0 150px;
    background-color: #C7C1B3;

    >.inner {
      display: flex;
      justify-content: center;
      align-items: flex-start;

      >h2 {
        font-size: 2.2rem;
        color: #FFF;
        margin-right: 50px;
      }

      ul {
        li {
          line-height: 1;

          a {
            position: relative;
            display: block;
            width: max-content;
            color: #FFF;

            &::after {
              position: absolute;
              left: 0;
              content: '';
              width: 100%;
              height: 1px;
              background: #FFF;
              bottom: -3px;
              transform: scale(0, 1);
              transform-origin: right top;
              transition: transform 0.3s;
            }

            &:hover::after {
              transform: scale(1, 1);
              transform-origin: left top;
            }
          }
        }

        li+li {
          margin-top: 10px;
        }
      }
    }
  }


  #gallery {
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url(../img/index/campaign_ph.jpg);
    background-size: cover;
    aspect-ratio: 1 / 0.32;

    >.inner {
      text-align: center;
      background: rgba(199, 193, 179, 0.78);
      padding: 50px 60px;

      h2 {
        font-size: 3.5rem;
        color: #FFF;
        line-height: 1.2;
        margin-bottom: 30px;
      }

      a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 220px;
        height: 40px;
        margin: auto;
        font-size: 1.3rem;
        background-color: #EDE9E6;
        z-index: 1;

        &:hover {
          color: #FFF;
        }

        &::after {
          position: absolute;
          top: 0;
          left: 0;
          background: #625149;
          transition: all .3s;
          display: block;
          content: '';
          width: 0%;
          height: 100%;
          z-index: -1;
        }

        &:hover::after {
          width: 100%;
        }
      }
    }
  }

  .fairSliderWrap {
    margin-bottom: 60px;
  }

  .planSliderWrap {
    margin-bottom: 120px;
  }

}