@charset "UTF-8";

.main {
  /* =====================
    mv
  ===================== */
  .mv {
    position: relative;
    width: 100%;
    /* ==== 背景スライダー ==== */
    .mv-slider {
      position: absolute;
      overflow: hidden;
      width: 100%;
      min-height: 840px;
      top: 0;
      right: 0;

      @media (width <= 768px) {
        min-height: calc((100 / 390) * 647 * 1vw);
      }
      .mv-swiper-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        min-height: inherit;

        .swiper-slide {
          position: relative;

          & picture {
            display: block flow;
            & img {
              inline-size: 100%;
              block-size: 100%;
              min-height: 840px;
              object-fit: cover;
              object-position: center;

              @media (width <= 768px) {
                min-height: calc((100 / 390) * 647 * 1vw);
              }
            }
          }
        }
      }
    }
    .mv-slider .zoom img {
      animation-name: zoom;
      animation-duration: 15s;
      animation-delay: 0ms;
      animation-timing-function: linear; /* ease/ease-in/ease-out/ease-in-out/linear/cubic-bezier()/steps(1, jump-end) */
      animation-iteration-count: 1; /* {num}/infinite */
      animation-direction: normal; /* normal/reverse/alternate/alternate-reverse */
      animation-fill-mode: both; /* none/backwards(0%)/forwards(100%)/both(0%->100%) */
      animation-play-state: running; /* running/paused */
    }

    /* ==== Bullet ==== */
    .swiper-pagination {
      position: absolute;
      text-align: right;
      padding-inline: 80px;
      bottom: 32px;
      right: 0;

      @media (width <= 768px) {
        padding-inline: calc((100 / 390) * 16 * 1vw);
        bottom: calc((100 / 390) * 9 * 1vw);
      }
    }

    .swiper-pagination-bullet {
      opacity: 1;
      width: 16px !important;
      height: 16px !important;
      margin: 0 0 0 32px !important;
      background: transparent;
      border: solid 2px #fff;

      @media (width <= 768px) {
        width: calc((100 / 390) * 14 * 1vw) !important;
        height: calc((100 / 390) * 14 * 1vw) !important;
        margin: 0 0 0 calc((100 / 390) * 20 * 1vw) !important;
        border: solid 1px #fff;
      }
    }

    .swiper-pagination-bullet.swiper-pagination-bullet-active {
      border: solid 2px #fff;
      background: #fff;

      @media (width <= 768px) {
        border: solid 1px #fff;
      }
    }

    .swiper-pagination-bullet:first-child {
      margin: 0 !important;
    }
    /* ====  ==== */

    .content {
      position: relative;
      padding-block-start: 140px;
      padding-block-end: 64px;
      min-height: 840px;
      z-index: 10;

      @media (width <= 768px) {
        padding-block-start: calc((100 / 390) * 86 * 1vw);
        min-height: calc((100 / 390) * 647 * 1vw);
        padding-block-end: calc((100 / 390) * 60 * 1vw);
      }
      .picture {
        display: block flow;
        inline-size: fit-content;
        margin-inline: auto 80px;

        @media (width <= 768px) {
          margin-inline: auto calc((100 / 390) * 16 * 1vw);
          & img {
            inline-size: calc((100 / 390) * 83 * 1vw);
          }
        }
      }

      .catch {
        position: relative;
        inline-size: fit-content;
        margin-inline: auto 0;

        &:before {
          content: '';
          position: absolute;
          background-color: transparent;
          backdrop-filter: blur(8px);
          -webkit-backdrop-filter: blur(8px);
          inline-size: 628px;
          block-size: 310px;
          top: 0;
          right: 0;
          z-index: -1;
        }

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 243 * 1vw);
          &:before {
            inline-size: calc((100 / 390) * 311 * 1vw);
            block-size: calc((100 / 390) * 160 * 1vw);
          }
        }
        /* =====================
          日本語　キャッチ
        ===================== */
        .ja-catch {
          position: relative;
          font-size: 48px;
          font-weight: 500;
          padding-inline: 20px 80px;
          padding-block-end: 20px;
          margin-block-start: 51px;
          color: #fff;
          line-height: 1.4;
          border-bottom: 1px solid #fff;
          z-index: 11;

          @media (width <= 768px) {
            inline-size: calc((100 / 390) * 311 * 1vw);
            margin-inline: auto 0;
            font-size: calc((100 / 390) * 24 * 1vw);
            line-height: 1.3;
            margin-block-start: 0;
            padding-block-start: calc((100 / 390) * 20 * 1vw);
            padding-block-end: calc((100 / 390) * 8 * 1vw);
            padding-inline: calc((100 / 750) * 40 * 1vw) calc((100 / 750) * 27 * 1vw);
          }
        }
        /* =====================
        英字　キャッチ
        ===================== */
        .en-catch {
          font-family: var(--title);
          font-size: 32px;
          font-weight: 300;
          line-height: 1.5;
          letter-spacing: 0.86px;
          padding-inline: 20px 80px;
          color: #fff;
          margin-block-start: 20px;

          @media (width <= 768px) {
            inline-size: calc((100 / 390) * 311 * 1vw);
            font-size: calc((100 / 390) * 16 * 1vw);
            line-height: 1.3;
            margin-block-start: calc((100 / 390) * 8 * 1vw);
            padding-inline: calc((100 / 750) * 40 * 1vw) calc((100 / 750) * 27 * 1vw);
            letter-spacing: normal;
          }
        }
      }
    }
    /* =====================
      Scroll
    ===================== */
    /* スクロールダウンの位置 */
    .scroll {
      position: absolute;
      left: 36px;
      bottom: 115px;
      z-index: 12;

      @media (width <= 768px) {
        left: calc((100 / 390) * 14 * 1vw);
        bottom: calc((100 / 390) * 67 * 1vw);
      }

      /* 線のアニメーション部分 */
      &::before {
        animation: scroll 2s cubic-bezier(1, 0, 0, 1) infinite;
        background-color: #fff;
        top: -12px;
        border-radius: 50rem;
        content: '';
        height: 120px;
        left: 4px;
        margin: auto;
        position: absolute;
        width: 2px;
        z-index: 2;
      }
      /* 線の背景色 */
      &::after {
        background-color: transparent;
        top: -12px;
        border-radius: 50rem;
        content: '';
        height: 120px;
        left: 4px;
        margin: auto;
        position: absolute;
        width: 2px;
      }
      & > span {
        display: block flow;
        font-family: var(--title);
        font-weight: 600;
        text-transform: uppercase;
        color: #fff;
        transform: rotate(90deg);
      }

      @media (width <= 768px) {
        &::before {
          bottom: calc((100 / 390) * -56 * 1vw);
          height: calc((100 / 390) * 90 * 1vw);
          width: 1px;
        }
        &::after {
          bottom: calc((100 / 390) * -56 * 1vw);
          height: calc((100 / 390) * 90 * 1vw);
          width: 1px;
        }
        & > span {
          font-size: calc((100 / 390) * 14 * 1vw);
        }
      }
    }
  }
  /* =====================
  news
===================== */
  .news {
    position: relative;
    background-color: #f3e8d8;
    .u-hover {
      display: block grid;
      grid-template-columns: max-content auto;
      justify-content: center;
      align-items: center;
      column-gap: 47px;
      padding-block: 20px;

      @media (width <= 768px) {
        grid-template-columns: 1fr;
        padding-block: calc((100 / 390) * 17 * 1vw) calc((100 / 390) * 23 * 1vw);
        padding-inline: calc((100 / 390) * 16 * 1vw);
      }

      & > h2.title {
        position: relative;
        font-family: var(--title);
        font-size: 24px;
        font-weight: 200;
        text-transform: uppercase;
        border-right: 1px solid #332727;
        padding-inline-end: 48px;

        @media (width <= 768px) {
          font-size: calc((100 / 390) * 24 * 1vw);
          padding-inline-end: calc((100 / 390) * 24 * 1vw);
          border-right: none;
          border-bottom: 1px solid #332727;
        }
      }
      .content {
        display: block flex;
        align-items: center;
        gap: 32px;

        @media (width <= 768px) {
          font-size: calc((100 / 390) * 14 * 1vw);
          flex-direction: column;
          align-items: start;
          gap: 0;
          margin-block-start: calc((100 / 390) * 8 * 1vw);

          &.u-arrow {
            &::after {
              position: absolute;
              top: 50%;
              right: calc((100 / 390) * 16 * 1vw);
              transform: translateY(-50%);
            }
          }
        }
        .news-title {
          min-inline-size: 585px;

          @media (width <= 768px) {
            min-inline-size: 100%;
          }
        }
      }
    }
  }

  /* =====================
    company
  ===================== */
  .company {
    position: relative;
    padding-block-start: 104px;
    padding-block-end: 103px;
    z-index: 1;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 80 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
    }
    .u-inner {
      padding-inline: 120px;
      display: block flex;
      gap: 56px;

      @media (width <= 768px) {
        padding-inline: calc((100 / 390) * 16 * 1vw);
        flex-direction: column-reverse;
        gap: calc((100 / 390) * 53 * 1vw);
      }

      .content_wrap {
        position: relative;
        display: block grid;
        gap: 32px;

        @media (width <= 768px) {
          gap: calc((100 / 390) * 23 * 1vw);
        }

        .unit {
          .description + .description {
            margin-block-start: 1em;
          }
        }
        .u-anchor {
          margin-block-start: 17px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 10 * 1vw);
          }
        }
      }
      .picture {
        position: relative;
        display: block flow;
        flex-shrink: 0;

        @media (width <= 768px) {
          text-align: center;
          & > img {
            inline-size: calc((100 / 390) * 326 * 1vw);
          }
        }
        &::after {
          content: '';
          position: absolute;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          background-image: url('../img/top/about_02.png');
          inline-size: 335px;
          block-size: 122px;
          bottom: -61px;
          right: -35px;
        }
        @media (width <= 768px) {
          &::after {
            background-image: url('../img/top/about_02_2x.png');
            inline-size: calc((100 / 390) * 185 * 1vw);
            block-size: calc((100 / 390) * 98 * 1vw);
            bottom: calc((100 / 390) * -7 * 1vw);
            right: calc((100 / 390) * 1 * 1vw);
          }
        }
      }
    }
  }

  /* =====================
    business
  ===================== */
  .business {
    position: relative;
    padding-block-start: 104px;
    z-index: 2;
    padding-block-end: 105px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    background-image: url('../img/top/business_bg.png');
    inline-size: 100%;
    transition: all 350ms ease 0s;
    @media (width > 768px) {
      &[data-type='commitment'] {
        background-image: url('../img/top/business_bg.png');
      }
      &[data-type='wholesale'] {
        background-image: url('../img/top/business-wholesale_bg.png');
      }
      &[data-type='export'] {
        background-image: url('../img/top/business-export_bg.png');
      }
      &[data-type='supermarket'] {
        background-image: url('../img/top/business-supermarket_bg.png');
      }
    }

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 80 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
      background-image: url('../img/top/business_bg_2x.png');
    }

    .u-h2-title {
      margin-inline-start: 80px;

      @media (width <= 768px) {
        margin-inline-start: 0;
      }
    }
    .business-list {
      .slide_wrap {
        display: block flex;
        gap: 64px;
        align-items: center;
        margin-top: 53px;
        max-inline-size: 1440px;
        margin-inline: auto;

        @media (width <= 768px) {
          flex-direction: column;
          align-items: start;
          gap: calc((100 / 390) * 49 * 1vw);
          margin-top: calc((100 / 390) * 32 * 1vw);
          max-inline-size: 100%;
        }

        .slide-image {
          display: grid;
          grid-template-columns: 1fr;
          grid-template-rows: 1fr;
          overflow: hidden;
          flex-shrink: 0;
          position: absolute;
          left: 0;
          width: calc(752px + (100vw - 1440px) / 2);
          min-width: 752px;
          max-width: none;
          block-size: 452px;
          border-radius: 0 10px 10px 0;

          @media (width <= 768px) {
            position: relative;
            width: calc((100 / 390) * 358 * 1vw);
            min-width: unset;
            border-radius: 0 calc((100 / 390) * 10 * 1vw) calc((100 / 390) * 10 * 1vw) 0;
            block-size: calc((100 / 390) * 220 * 1vw);
          }

          .slide-image__item {
            position: relative;
            grid-column: 1 / -1;
            grid-row: 1 / -1;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-20px);
            transition: opacity 0.45s cubic-bezier(0.65, 0, 0.35, 1), visibility 0.45s cubic-bezier(0.65, 0, 0.35, 1), transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
            &.current {
              opacity: 1;
              visibility: visible;
              transition: opacity 0.45s cubic-bezier(0.65, 0, 0.35, 1), visibility 0.45s cubic-bezier(0.65, 0, 0.35, 1), transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
              transform: translateY(0);
            }
            & > img {
              width: 100%;
              height: 100%;
              object-fit: cover;
              object-position: center;
              position: absolute;
              top: 50%;
              left: 50%;
              translate: -50% -50%;
            }
          }
        }
      }
      .menu-list {
        margin-left: 816px;
        width: 544px;
        flex-shrink: 0;

        @media (width <= 768px) {
          margin-left: 0;
          inline-size: calc((100 / 390) * 358 * 1vw);
          margin-inline: calc((100 / 390) * 16 * 1vw);
        }
        & > li {
          position: relative;
          border-bottom: 1px solid #fff;

          &:first-child {
            border-top: 1px solid #fff;
          }
          .u-hover {
            display: block flex;
            justify-content: space-between;
            inline-size: 100%;
            padding-inline: 24px;
            padding-block: 25px;

            @media (width <= 768px) {
              padding-inline: calc((100 / 390) * 20 * 1vw);
              padding-block: calc((100 / 390) * 16 * 1vw);
            }

            .title {
              position: relative;
              font-weight: bold;
              line-height: 1.4;
              color: #fff;

              @media (width <= 768px) {
                font-weight: 500;
              }
            }
            .en_title {
              font-family: var(--title);
              font-size: 28px;
              font-weight: 300;
              line-height: 1.4;
              color: #fff;
              text-transform: uppercase;

              @media (width <= 768px) {
                font-size: calc((100 / 390) * 24 * 1vw);
              }
            }

            .picture {
              display: block flow;
              text-align: center;
              margin-block-start: 38px;

              @media (width <= 768px) {
                margin-block-start: calc((100 / 390) * 24 * 1vw);
                & img {
                  inline-size: calc((100 / 390) * 310 * 1vw);
                }
              }
            }
            &.u-arrow {
              @media (width <= 768px) {
                &:after {
                  inline-size: calc((100 / 390) * 40 * 1vw);
                }
              }
            }
          }
        }
      }
    }
  }

  /* =====================
    links
  ===================== */
  .links {
    position: relative;
    padding-block-start: 104px;
    padding-block-end: 104px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url('../img/top/products_shop_bg.png');
    inline-size: 100%;

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 80 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
      background-image: url('../img/top/products_shop_bg_2x.png');
    }

    .link-list {
      display: block flex;
      align-items: center;
      justify-content: center;
      gap: 20px;

      @media (width <= 768px) {
        flex-direction: column;
        gap: calc((100 / 390) * 20 * 1vw);
      }
      .unit {
        background-color: rgba(243, 232, 216, 0.5);
        padding-inline: 40px;
        padding-block: 40px;

        @media (width <= 768px) {
          padding-inline: calc((100 / 390) * 16 * 1vw);
          padding-block: calc((100 / 390) * 40 * 1vw);
        }
        .picture {
          display: block flow;
          margin-block-start: 31px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 30 * 1vw);
            & img {
              inline-size: calc((100 / 390) * 326 * 1vw);
            }
          }
        }
        .description {
          margin-block-start: 32px;

          @media (width <= 768px) {
            margin-block-start: calc((100 / 390) * 32 * 1vw);
          }
        }
        .u-anchor {
          margin-inline: auto 0;
          margin-block-start: 32px;

          @media (width <= 768px) {
            margin-inline: 0 auto;
            margin-block-start: calc((100 / 390) * 32 * 1vw);
          }
        }
      }
    }
  }

  /* =====================
    recruit
  ===================== */
  .recruit {
    position: relative;
    padding-block-start: 60px;
    padding-block-end: 60px;
    background-color: #d6f0cf;
    &:before,
    &:after {
      content: '';
      display: block flow;
      position: absolute;
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center;
      inline-size: 27.916666666666668%;
      block-size: auto;
      aspect-ratio: 402/560;
    }
    &:before {
      background-image: url('../img/top/recruit_01.png');
      top: 0;
      left: 0;
    }
    &:after {
      background-image: url('../img/top/recruit_02.png');
      top: 0;
      right: 0;
    }

    @media (width <= 768px) {
      padding-block-start: calc((100 / 390) * 148 * 1vw);
      padding-block-end: calc((100 / 390) * 80 * 1vw);
      &:before,
      &:after {
        inline-size: calc((100 / 390) * 160 * 1vw);
        block-size: auto;
        aspect-ratio: 160/230;
      }
      &:before {
        background-image: url('../img/top/recruit_01_2x.png');
      }
      &:after {
        background-image: url('../img/top/recruit_02_2x.png');
      }
    }

    .content_wrap {
      inline-size: 570px;
      margin-inline: auto;

      @media (width <= 768px) {
        inline-size: 100%;
      }
      .description {
        text-align: center;
        margin-block-start: 48px;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 35 * 1vw);
        }

        & + .description {
          margin-block-start: 1em;
        }
      }
      .u-anchor {
        margin-block-start: 49px;

        @media (width <= 768px) {
          margin-block-start: calc((100 / 390) * 32 * 1vw);
        }
      }
    }
  }
}

/* =====================
animation
===================== */
@keyframes zoom {
  0% {
    scale: 1;
  }
  100% {
    scale: 1.15;
  }
}

/* 線のアニメーション */
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* 上から下 */
@keyframes loop-list {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0%);
  }
}
/* 右から左 */
@keyframes loop-list2 {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-100%);
  }
}
/* ==== js-parallax ==== */

.company {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.business {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
.links {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
.recruit {
  .js-parallax {
    opacity: 0;
    transition: all 0.5s ease-in-out 0s;
    transform: translateY(0.5em);
    &.on {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
