@charset "UTF-8";
@-webkit-keyframes wave {
  100% {
    -webkit-transform: translateY(10px) rotate(-5deg);
            transform: translateY(10px) rotate(-5deg);
  }
}
@keyframes wave {
  100% {
    -webkit-transform: translateY(10px) rotate(-5deg);
            transform: translateY(10px) rotate(-5deg);
  }
}

@-webkit-keyframes dance {
  50% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  100% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
}

@keyframes dance {
  50% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  100% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
}

.main {
  -webkit-animation: fadeinblur 1s ease-in-out;
          animation: fadeinblur 1s ease-in-out;
}

@-webkit-keyframes fadeinblur {
  0% {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px);
  }
}

@keyframes fadeinblur {
  0% {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px);
  }
}

/* mainvisual */
.mainvisual__image img {
  width: 100%;
}

/* about us */
.about-us {
  margin-top: 12px;
  padding: 48px 0 50px;
  background-image: url("/assets/img/index-aboutus-bg-sp.svg");
  background-repeat: no-repeat;
  background-size: 90%;
  background-position: top center;
  text-align: center;
}

@media (min-width: 768px) {
  .about-us {
    margin-top: 0;
    padding: 7vw 0 10vw;
    background-image: url("/assets/img/index-aboutus-bg.png");
    background-size: 96%;
    background-position: top right;
    background-repeat: repeat-y;
  }
}

.about-us__title > img {
  width: 114px;
}

@media (min-width: 1024px) {
  .about-us__title > img {
    width: 138px;
  }
}

.about-us__image {
  margin-top: 22px;
}

.about-us__image > img {
  width: 156px;
}

@media (min-width: 1024px) {
  .about-us__image {
    margin-top: 30px;
  }
  .about-us__image > img {
    width: 216px;
  }
}

.about-us__sab {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.52;
  letter-spacing: 1.2px;
  margin-top: 30px;
}

@media (min-width: 1024px) {
  .about-us__sab {
    font-size: 1.875vw;
    font-weight: 500;
    letter-spacing: 0.12em;
  }
}

.about-us__concept {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 1.04px;
  text-align: left;
  display: inline-block;
  margin-top: 30px;
  padding: 0 15px;
}

@media (min-width: 1024px) {
  .about-us__concept {
    font-size: 15px;
    line-height: 2.33;
    letter-spacing: 1.8px;
    text-align: left;
  }
}

@media (min-width: 768px) {
  .about-us__concept {
    text-align: center;
  }
}

@media (min-width: 1024px) {
  .about-us__concept {
    margin-top: 24px;
    text-align: center;
  }
}

.about-us__button {
  margin-top: 30px;
  font-size: 0;
}

@media (min-width: 1024px) {
  .about-us__button {
    margin-top: 72px;
  }
}

/* project */
.project {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  background-image: url(/assets/img/index-project-bg-sp1.png);
  background-repeat: no-repeat;
  background-size: 320px;
  background-position: top 8px center;
}

@media (min-width: 768px) {
  .project {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    background-image: url(/assets/img/index-project-bg.png);
    background-size: 88.9375%;
    background-position: top 1.5vw left 6.6875vw;
  }
}

.project__image {
  width: 290px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .project__image {
    max-width: 48.5vw;
    width: 100%;
    margin: 0 0 0 5vw;
  }
}

.project__image > img {
  width: 100%;
  height: auto;
}

.project-description {
  text-align: center;
  background-color: #fff;
  -webkit-box-shadow: 0px 7px 15px 0 rgba(4, 0, 0, 0.08);
          box-shadow: 0px 7px 15px 0 rgba(4, 0, 0, 0.08);
  width: 100%;
  padding: 30px 0 50px;
}

@media (min-width: 1024px) {
  .project-description {
    text-align: left;
    -webkit-box-shadow: 0px 15px 29px 0 rgba(4, 0, 0, 0.1);
            box-shadow: 0px 15px 29px 0 rgba(4, 0, 0, 0.1);
  }
}

@media (min-width: 768px) {
  .project-description {
    width: 46.625vw;
  }
}

@media (min-width: 1024px) {
  .project-description {
    margin: 7.5vw 0 10.25vw auto;
    padding: 4.5vw 4.5vw 5vw 4.5vw;
  }
}

.project-description__title > img {
  width: 141px;
}

@media (min-width: 1024px) {
  .project-description__title > img {
    max-width: 203px;
    width: 12.6875vw;
  }
}

.project-description__subtitle {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.52;
  letter-spacing: 1.2px;
  margin-top: 16px;
}

@media (min-width: 1024px) {
  .project-description__subtitle {
    margin-top: 36px;
    font-size: 1.5625vw;
    font-weight: 500;
    letter-spacing: 0.12em;
  }
}

.project-description__text {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 1.04px;
  text-align: left;
  display: inline-block;
  margin-top: 20px;
  padding: 0 15px;
}

@media (min-width: 1024px) {
  .project-description__text {
    font-size: 15px;
    line-height: 2.33;
    letter-spacing: 1.8px;
    text-align: left;
  }
}

@media (min-width: 1024px) {
  .project-description__text {
    margin-top: 24px;
    padding: 0;
  }
}

.project-description__button {
  margin-top: 30px;
  font-size: 0;
}

@media (min-width: 1024px) {
  .project-description__button {
    margin-top: 52px;
    margin-bottom: 13px;
  }
}

.project-bg-sp {
  width: 100%;
  height: 50px;
  background-image: url(/assets/img/index-project-bg-sp2.png);
  background-position: bottom right;
}

@media (min-width: 768px) {
  .project-bg-sp {
    display: none;
    background-image: none;
  }
}

/* note */
.note {
  position: relative;
  width: 100%;
  margin-top: 20px;
  background-image: url("/assets/img/index-note-bg-sp.png");
  background-repeat: no-repeat;
  background-size: 65%;
  background-position: left bottom;
}

@media (min-width: 768px) {
  .note {
    margin-top: 2vw;
  }
}

@media (min-width: 1024px) {
  .note {
    height: 49.8125vw;
    padding-top: 2.875vw;
    background-image: url("/assets/img/index-note-bg.png");
    background-size: 73vw;
  }
}

.note-title {
  text-align: center;
  background-color: #fff;
  -webkit-box-shadow: 0px 7px 15px 0 rgba(4, 0, 0, 0.08);
          box-shadow: 0px 7px 15px 0 rgba(4, 0, 0, 0.08);
  width: 100%;
  height: 368px;
  padding: 30px 0 0;
}

@media (min-width: 1024px) {
  .note-title {
    text-align: left;
    -webkit-box-shadow: 0px 15px 29px 0 rgba(4, 0, 0, 0.1);
            box-shadow: 0px 15px 29px 0 rgba(4, 0, 0, 0.1);
  }
}

@media (min-width: 1024px) {
  .note-title {
    width: 61.5vw;
    height: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: 0 0 0 8vw;
    padding: 4.5vw 0;
  }
}

.note-image {
  margin: 0 auto;
}

.note-image__image {
  width: 80px;
}

@media (min-width: 1024px) {
  .note-image {
    -ms-flex-preferred-size: 21.95%;
        flex-basis: 21.95%;
  }
  .note-image__image {
    max-width: 113px;
    width: 7.06vw;
    height: auto;
    margin-left: 4.5vw;
  }
}

.note-description {
  margin-top: 12px;
  padding: 0 15px;
}

@media (min-width: 1024px) {
  .note-description {
    -ms-flex-preferred-size: 78.05%;
        flex-basis: 78.05%;
    margin-top: 0;
    padding: 0;
  }
}

.note-description__description {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 1.04px;
  text-align: left;
  display: inline-block;
}

@media (min-width: 1024px) {
  .note-description__description {
    font-size: 15px;
    line-height: 2.33;
    letter-spacing: 1.8px;
    text-align: left;
  }
}

.note-slider {
  position: absolute;
  top: 176px;
  width: 100%;
  overflow: hidden;
  padding: 24px 0;
}

@media (min-width: 1024px) {
  .note-slider {
    top: 11.5vw;
    left: 12.5%;
    /* スクロールバー対応のためvwでなく%指定 */
    width: 87.5%;
    /* スクロールバー対応のためvwでなく%指定 */
    padding: 3vw 0;
  }
}

.note-slider-article {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* swiper対応 */
  margin-left: 14px;
}

@media (min-width: 1024px) {
  .note-slider-article {
    margin-left: 0;
  }
}

.note-slider-button {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 0 40px 0;
  margin-top: 104px;
}

@media (min-width: 1024px) {
  .note-slider-button {
    position: absolute;
    bottom: 0;
    padding: 0 0 5.75vw 0;
  }
}

.note-slider-button1 {
  -ms-flex-preferred-size: 58.125%;
      flex-basis: 58.125%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 0;
}

@media (min-width: 1024px) {
  .note-slider-button1 {
    -ms-flex-preferred-size: 41.75%;
        flex-basis: 41.75%;
  }
}

.note-slider-button2 {
  -ms-flex-preferred-size: 41.875%;
      flex-basis: 41.875%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

@media (min-width: 1024px) {
  .note-slider-button2 {
    -ms-flex-preferred-size: 58.25%;
        flex-basis: 58.25%;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding-right: 10.625vw;
  }
}

.note-slider-button2__button {
  display: block;
  width: 54px;
  height: 54px;
  margin: 0 10px 0 0;
  outline: none;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

@media (min-width: 1024px) {
  .note-slider-button2__button {
    max-width: 70px;
    width: 4.38vw;
    height: auto;
    margin: 0 1.875vw 0 0;
  }
  .note-slider-button2__button:hover {
    -webkit-transform: translateY(5px);
            transform: translateY(5px);
  }
}

.article.article--note {
  width: 290px;
  height: 253px;
  margin: 0 14px 0 0;
  background-color: #fff;
  -webkit-box-shadow: 0px 0px 15px 0 rgba(4, 0, 0, 0.04);
          box-shadow: 0px 0px 15px 0 rgba(4, 0, 0, 0.04);
}

@media (min-width: 1024px) {
  .article.article--note {
    width: 26.125vw;
    height: 21.6875vw;
    margin: 0 1.875vw 0 0;
  }
}

.article.article--note .article-image {
  height: 151px;
}

@media (min-width: 1024px) {
  .article.article--note .article-image {
    height: 13.6875vw;
  }
}

.article.article--note .article-title {
  height: 125px;
  background-image: url("/assets/img/index-note-article-shape-sp.png");
  font-size: 13px;
}

@media (min-width: 1024px) {
  .article.article--note .article-title {
    height: 9.5vw;
    background-image: url("/assets/img/index-note-article-shape-pc.png");
    font-size: 0.9375vw;
  }
}

.article.article--note .article-title__title {
  margin-top: 16%;
  line-height: 1.5;
  -webkit-line-clamp: 2;
  max-height: 3em;
}

@media (min-width: 1024px) {
  .article.article--note .article-title__title {
    margin-top: 12.5%;
    font-weight: 500;
    line-height: 1.67;
    max-height: 3.34em;
  }
}

/* shop */
.shop {
  width: 100%;
  /* スクロールバー対応のためvwでなく%指定 */
  position: relative;
  margin-top: 10px;
  padding-top: 30px;
  background-image: url("/assets/img/index-shop-bg-sp.png");
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: top;
}

@media (min-width: 768px) {
  .shop {
    height: 54vw;
    margin-top: 4.75vw;
    padding-top: 5.3125vw;
    background-image: url("/assets/img/index-shop-bg.png");
    background-position: top right;
    background-size: 92.625vw;
  }
}

.shop-title {
  text-align: center;
  background-color: #fff;
  -webkit-box-shadow: 0px 7px 15px 0 rgba(4, 0, 0, 0.08);
          box-shadow: 0px 7px 15px 0 rgba(4, 0, 0, 0.08);
  width: 100%;
  padding: 30px 0 70px;
}

@media (min-width: 1024px) {
  .shop-title {
    text-align: left;
    -webkit-box-shadow: 0px 15px 29px 0 rgba(4, 0, 0, 0.1);
            box-shadow: 0px 15px 29px 0 rgba(4, 0, 0, 0.1);
  }
}

@media (min-width: 1024px) {
  .shop-title {
    position: absolute;
    right: 0;
    width: 49.0625vw;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 4.5vw 0;
  }
}

.shop-image {
  margin: 0 auto;
}

.shop-image__image {
  width: 80px;
}

@media (min-width: 1024px) {
  .shop-image {
    -ms-flex-preferred-size: 27.39%;
        flex-basis: 27.39%;
  }
  .shop-image__image {
    max-width: 113px;
    width: 7.06vw;
    height: auto;
    margin-left: 4.5vw;
  }
}

.shop-description {
  margin-top: 12px;
  padding: 0 15px;
}

@media (min-width: 1024px) {
  .shop-description {
    -ms-flex-preferred-size: 72.61%;
        flex-basis: 72.61%;
    margin-top: 0;
    padding: 0;
  }
}

.shop-description__description {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 1.04px;
  text-align: left;
  display: inline-block;
}

@media (min-width: 1024px) {
  .shop-description__description {
    font-size: 15px;
    line-height: 2.33;
    letter-spacing: 1.8px;
    text-align: left;
  }
}

.shop-items {
  width: 100%;
  /* スクロールバー対応のためvwでなく%指定 */
  position: absolute;
  top: 160px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  overflow-x: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.shop-items::-webkit-scrollbar {
  display: none;
}

@media (min-width: 1024px) {
  .shop-items {
    top: 20.625vw;
    overflow: hidden;
  }
}

.shop-items .shop-item-wrap:first-child {
  -webkit-animation: loop 50s -25s linear infinite;
          animation: loop 50s -25s linear infinite;
}

@-webkit-keyframes loop {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}

@keyframes loop {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}

.shop-items .shop-item-wrap:last-child {
  -webkit-animation: loop2 50s linear infinite;
          animation: loop2 50s linear infinite;
}

@-webkit-keyframes loop2 {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
}

@keyframes loop2 {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
}

.shop-items:hover .shop-item-wrap {
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}

.shop-item-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  padding: 30px 0;
}

.shop-item {
  list-style: none;
}

.shop-item__image {
  -webkit-animation: dance 1s ease infinite alternate;
          animation: dance 1s ease infinite alternate;
  /* waveバージョン参考までにコメントアウトで残しておきます */
}

.shop-item__image:hover {
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
  -webkit-animation: hover 0.3s ease-in forwards;
          animation: hover 0.3s ease-in forwards;
}

@-webkit-keyframes hover {
  90% {
    -webkit-transform: scale(1.25) rotate(-5deg);
            transform: scale(1.25) rotate(-5deg);
  }
  100% {
    -webkit-transform: scale(1.25) rotate(5deg);
            transform: scale(1.25) rotate(5deg);
  }
}

@keyframes hover {
  90% {
    -webkit-transform: scale(1.25) rotate(-5deg);
            transform: scale(1.25) rotate(-5deg);
  }
  100% {
    -webkit-transform: scale(1.25) rotate(5deg);
            transform: scale(1.25) rotate(5deg);
  }
}

.shop-item__image1 {
  width: 120px;
  margin-top: 12px;
  margin-left: 0;
}

.shop-item__image2 {
  width: 183px;
  margin-top: 98px;
  margin-left: -50px;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}

.shop-item__image3 {
  width: 170px;
  margin-top: 12px;
  margin-left: -36px;
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
}

.shop-item__image4 {
  width: 122px;
  margin-top: 40px;
  margin-left: 44px;
  -webkit-animation-delay: 3s;
          animation-delay: 3s;
}

.shop-item__image5 {
  width: 112px;
  margin-top: 19px;
  margin-left: 37px;
  -webkit-animation-delay: 4s;
          animation-delay: 4s;
}

.shop-item__image6 {
  width: 141px;
  margin-top: 28px;
  margin-left: 0;
  -webkit-animation-delay: 5s;
          animation-delay: 5s;
}

.shop-item__image7 {
  width: 201px;
  margin-top: 0;
  margin-left: 12px;
  -webkit-animation-delay: 6s;
          animation-delay: 6s;
}

.shop-item__image8 {
  width: 117px;
  margin-top: 73px;
  margin-left: -36px;
  -webkit-animation-delay: 7s;
          animation-delay: 7s;
}

@media (min-width: 1024px) {
  .shop-item__image1 {
    width: 11.56vw;
    margin-top: 0.06vw;
    margin-left: 0;
  }
  .shop-item__image2 {
    width: 17.81vw;
    margin-top: 12.31vw;
    margin-left: -101px;
  }
  .shop-item__image3 {
    width: 16.56vw;
    margin-top: 1.56vw;
    margin-left: -73px;
  }
  .shop-item__image4 {
    width: 9.81vw;
    margin-top: 4.94vw;
    margin-left: 44px;
  }
  .shop-item__image5 {
    width: 10.94vw;
    margin-top: 2.31vw;
    margin-left: 37px;
  }
  .shop-item__image6 {
    width: 13.75vw;
    margin-top: 3.5vw;
    margin-left: 0;
  }
  .shop-item__image7 {
    width: 19.56vw;
    margin-top: 0;
    margin-left: 12px;
  }
  .shop-item__image8 {
    width: 11.38vw;
    margin-top: 7.63vw;
    margin-left: -36px;
  }
}

.shop-button-wrap {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-top: 170px;
}

@media (min-width: 1024px) {
  .shop-button-wrap {
    position: absolute;
    bottom: 0;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    margin-top: 0;
  }
}

.shop-button {
  margin: 15px 15px 0;
  font-size: 0;
}

@media (min-width: 1024px) {
  .shop-button {
    margin: 0 0.9375vw;
  }
}

/* Utility */
.br-sp {
  display: block;
}

@media (max-width: 768px) {
  .br-sp {
    display: none;
  }
}
