.animation-target-line {
  position: relative;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  width: 0px;
  -webkit-transition: 1200ms width cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: 1200ms width cubic-bezier(0.645, 0.045, 0.355, 1);
}

.animation-target-line.on-enter {
  width: 100%;
  opacity: 1;
  visibility: visible;
}

.animation-target {
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(40%);
          transform: translateY(40%);
  -webkit-transition: 800ms all;
  transition: 800ms all;
}

.animation-target.on-enter {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateY(0%);
          transform: translateY(0%);
}

body.page-kazokujikan--index .u-buttons,
body.page-kazokujikan--pages .u-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2.66667vw;
}

body.page-kazokujikan--index .u-buttons li,
body.page-kazokujikan--pages .u-buttons li {
  width: calc(50% - 1.33333vw);
}

body.page-kazokujikan--index .u-buttons a,
body.page-kazokujikan--pages .u-buttons a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 20px;
  background-color: #faf7e7;
  width: 100%;
  line-height: 1;
}

body.page-kazokujikan--index .u-buttons .buttons--img,
body.page-kazokujikan--pages .u-buttons .buttons--img {
  position: relative;
  display: block;
  width: 100%;
}

body.page-kazokujikan--index .u-buttons .buttons--img img,
body.page-kazokujikan--pages .u-buttons .buttons--img img {
  max-width: none;
  width: 100%;
}

body.page-kazokujikan--index .u-buttons .buttons--text,
body.page-kazokujikan--pages .u-buttons .buttons--text {
  position: absolute;
  display: block;
  left: 0;
  top: 0;
  width: 100%;
}

body.page-kazokujikan--index .u-buttons .buttons--text img,
body.page-kazokujikan--pages .u-buttons .buttons--text img {
  max-width: none;
  width: 100%;
}

body.page-kazokujikan--index .u-color--red {
  color: #e60214;
  font-weight: normal;
}

body.page-kazokujikan--index .u-line img {
  max-width: none;
  width: 788px;
  height: 150px;
}

body.page-kazokujikan--pages .u-page_title {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 20px;
  background-color: #faf7e7;
  height: 498px;
  text-align: center;
  line-height: 1;
}

body.page-kazokujikan--pages .u-page_title .page_title--heading {
  position: absolute;
  left: 0;
  top: 40px;
  width: 100%;
}

body.page-kazokujikan--pages .u-page_title .page_title--heading img {
  width: 360px;
}

body.page-kazokujikan--pages .u-page_title .page_title--img {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
}

body.page-kazokujikan--pages .u-page_title .page_title--img img {
  width: 490px;
}

body.page-kazokujikan--pages .u-img--main_border_list {
  line-height: 1;
}

body.page-kazokujikan--pages .u-img--main_border_list li + li {
  margin-top: 20px;
}

body.page-kazokujikan--pages .u-img--main_border_list img {
  border: #000 solid 4px;
}

body.page-kazokujikan--pages .u-swipe_container .swiper {
  padding-bottom: 32px;
}

body.page-kazokujikan--pages .u-swipe_container .swiper-slide {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: auto;
  padding: 50px 78px;
}

body.page-kazokujikan--pages .u-swipe_container .swiper-pagination {
  width: 100%;
  bottom: 0;
  line-height: 0;
}

body.page-kazokujikan--pages .u-swipe_container .swiper-pagination .swiper-pagination-bullet {
  margin: 0 5px !important;
  width: 12px;
  height: 12px;
  background: #D9D9D9;
  opacity: 1;
  -webkit-transition: 600ms background, 600ms opacity;
  transition: 600ms background, 600ms opacity;
}

body.page-kazokujikan--pages .u-swipe_container .swiper-pagination .swiper-pagination-bullet-active {
  background: #FFB2B6;
}

body.page-kazokujikan--pages .u-swipe_container .swipe_container--inner {
  width: 440px;
  font-size: 16px;
}

body.page-kazokujikan--pages .u-swipe_container .swipe_container--img {
  overflow: hidden;
  position: absolute;
  left: 78px;
  top: 50%;
  margin-top: -75px;
  background-color: #ffffff;
  border-radius: 150px;
  width: 150px;
  line-height: 1;
}

body.page-kazokujikan--pages .u-swipe_container .swipe_container--name {
  margin-top: 20px;
}

.animation-target:nth-child(even) {
  -webkit-transition-delay: 80ms;
          transition-delay: 80ms;
}

@media screen and (min-width: 768px) and (max-width: 1380px) {
  body.page-kazokujikan--index .u-buttons,
  body.page-kazokujikan--pages .u-buttons {
    gap: 2.66667vw;
  }
  body.page-kazokujikan--index .u-buttons li,
  body.page-kazokujikan--pages .u-buttons li {
    width: calc(50% - 1.33333vw);
  }
  body.page-kazokujikan--index .u-buttons a,
  body.page-kazokujikan--pages .u-buttons a {
    border-radius: 1.44928vw;
  }
  body.page-kazokujikan--index .u-line img {
    width: 57.10145vw;
    height: 10.86957vw;
  }
  body.page-kazokujikan--pages .u-page_title {
    border-radius: 1.44928vw;
    height: 36.08696vw;
  }
  body.page-kazokujikan--pages .u-page_title .page_title--heading {
    top: 2.89855vw;
  }
  body.page-kazokujikan--pages .u-page_title .page_title--heading img {
    width: 26.08696vw;
  }
  body.page-kazokujikan--pages .u-page_title .page_title--img img {
    width: 35.50725vw;
  }
  body.page-kazokujikan--pages .u-img--main_border_list li + li {
    margin-top: 1.44928vw;
  }
  body.page-kazokujikan--pages .u-img--main_border_list img {
    border: #000 solid 0.28986vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swiper {
    padding-bottom: 2.31884vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swiper-slide {
    padding: 3.62319vw 5.65217vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swiper-pagination .swiper-pagination-bullet {
    margin: 0 0.36232vw !important;
    width: 0.86957vw;
    height: 0.86957vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--inner {
    width: 31.88406vw;
    font-size: 1.15942vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--img {
    left: 5.65217vw;
    margin-top: -5.43478vw;
    border-radius: 10.86957vw;
    width: 10.86957vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--name {
    margin-top: 1.44928vw;
  }
}

@media screen and (max-width: 768px) {
  body.page-kazokujikan--index .u-buttons,
  body.page-kazokujikan--pages .u-buttons {
    display: block;
    gap: 0;
  }
  body.page-kazokujikan--index .u-buttons li,
  body.page-kazokujikan--pages .u-buttons li {
    margin: 0 auto;
    width: 82.66667vw;
  }
  body.page-kazokujikan--index .u-buttons li + li,
  body.page-kazokujikan--pages .u-buttons li + li {
    margin-top: 6.66667vw;
  }
  body.page-kazokujikan--index .u-buttons a,
  body.page-kazokujikan--pages .u-buttons a {
    border-radius: 2.66667vw;
  }
  body.page-kazokujikan--index .u-page_title {
    position: relative;
    margin-left: -2.66667vw;
    margin-right: -2.66667vw;
    padding: 48vw 0 13.33333vw;
    background-size: 229.33333vw 45.6vw;
    background-position: 0vw top;
    background-image: url("/assets/images/special/kazokujikan/main--sp.png");
    background-repeat: repeat-x;
    -webkit-animation: bg-move-sp 38s linear infinite;
            animation: bg-move-sp 38s linear infinite;
  }
  @-webkit-keyframes bg-move-sp {
    to {
      background-position: -229.33333vw top;
    }
  }
  @keyframes bg-move-sp {
    to {
      background-position: -229.33333vw top;
    }
  }
  body.page-kazokujikan--index .u-page_title .page_title--heading {
    text-align: center;
  }
  body.page-kazokujikan--index .u-page_title .page_title--heading img {
    width: 42.13333vw;
  }
  body.page-kazokujikan--index .u-page_title .page_title--line {
    position: absolute;
    left: 0;
    bottom: 0;
  }
  body.page-kazokujikan--index .u-page_title .page_title--line img {
    max-width: none;
    width: 100vw;
    height: 25.86667vw;
  }
  body.page-kazokujikan--pages .u-page_title {
    border-radius: 2.66667vw;
    height: 81.33333vw;
  }
  body.page-kazokujikan--pages .u-page_title .page_title--heading {
    top: 5.33333vw;
  }
  body.page-kazokujikan--pages .u-page_title .page_title--heading img {
    width: 48vw;
  }
  body.page-kazokujikan--pages .u-page_title .page_title--img img {
    width: 82.66667vw;
  }
  body.page-kazokujikan--pages .u-img--main_border_list li + li {
    margin-top: 6.66667vw;
  }
  body.page-kazokujikan--pages .u-img--main_border_list img {
    border: #000 solid 0.53333vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swiper {
    padding-bottom: 6.66667vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swiper-slide {
    padding: 5.33333vw 1.33333vw 4vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swiper-pagination .swiper-pagination-bullet {
    margin: 0 1.33333vw !important;
    width: 2.66667vw;
    height: 2.66667vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--inner {
    width: 100%;
    text-align: center;
    font-size: 3.46667vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--box {
    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;
    gap: 2.66667vw;
    margin-top: 5.33333vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--img {
    position: relative;
    top: 0%;
    left: 0vw;
    margin-top: 0vw;
    border-radius: 21.33333vw;
    width: 21.33333vw;
  }
  body.page-kazokujikan--pages .u-swipe_container .swipe_container--name {
    margin-top: 0;
  }
  .animation-target:nth-child(even) {
    -webkit-transition-delay: 0ms !important;
            transition-delay: 0ms !important;
  }
}

@media (hover: hover) {
  body.page-kazokujikan--index .u-buttons a .buttons--img,
  body.page-kazokujikan--pages .u-buttons a .buttons--img {
    -webkit-transition: 600ms -webkit-transform;
    transition: 600ms -webkit-transform;
    transition: 600ms transform;
    transition: 600ms transform, 600ms -webkit-transform;
  }
  body.page-kazokujikan--index .u-buttons a:hover .buttons--img,
  body.page-kazokujikan--pages .u-buttons a:hover .buttons--img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
}
