@charset "UTF-8";
@font-face {
  font-family: "Alvaro"; /* フォント名 */
  src: url("../font/Alvaro-Condensed.otf");
}
@font-face {
  font-family: "zenkakugo"; /* フォント名 */
  src: url("../font/ZenKakuGothicAntique-Regular.ttf");
}
.js-fade {
  opacity: 0;
  will-change: opacity, transform;
  transition: ease-in, opacity 1500ms, transform 1000ms;
  transform: translate3d(0, 2.5rem, 0);
}
.js-fade.is-in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media screen and (min-width: 769px) {
  .js-fade-pc {
    opacity: 0;
    will-change: opacity, transform;
    transition: ease-in, opacity 1500ms, transform 1000ms;
    transform: translate3d(0, 2.5rem, 0);
  }
  .js-fade-pc.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.js-fade-roll {
  opacity: 1;
  clip-path: inset(100% 0 0 0);
  overflow: hidden;
}
.js-fade-roll.is-in {
  clip-path: inset(0);
  transition: 1.3s ease;
}

@media screen and (max-width: 768px) {
  .js-fade-roll-sp {
    opacity: 1;
    clip-path: inset(100% 0 0 0);
    overflow: hidden;
  }
  .js-fade-roll-sp.is-in {
    clip-path: inset(0);
    transition: 1.3s ease;
  }
}

@media screen and (min-width: 769px) {
  .js-fade-roll-pc {
    opacity: 1;
    clip-path: inset(100% 0 0 0);
    overflow: hidden;
  }
  .js-fade-roll-pc.is-in {
    clip-path: inset(0);
    transition: 1.3s ease;
  }
}

.lp {
  font-family: "zenkakugo";
}
.lp section {
  position: relative;
}
@media screen and (min-width: 769px) {
  .lp section.kv {
    width: 539px;
    margin: 0 auto;
  }
}
.lp section.kv .kv-title {
  position: absolute;
  top: calc(254 / 375 * 100vw);
  left: 50%;
  z-index: 2;
  transform: translateX(-50%);
  width: calc(242 / 375 * 100vw);
}
@media screen and (min-width: 769px) {
  .lp section.kv .kv-title {
    top: 365px;
    width: 348px;
  }
}
.lp section.kv .kv-title img {
  opacity: 0;
  will-change: opacity, transform;
  transition: ease-in, opacity 1500ms, transform 1000ms;
  transform: translate3d(0, 2.5rem, 0);
  transition-delay: 1s;
}
.lp section.kv .kv-image {
  opacity: 1;
  clip-path: inset(100% 0 0 0);
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .lp section.kv .kv-image {
    aspect-ratio: 750/1134;
  }
}
@media screen and (min-width: 769px) {
  .lp section.kv .kv-image {
    aspect-ratio: 1078/1630;
  }
}
.lp section.kv .catch {
  margin-top: calc(9 / 375 * 100vw);
  text-align: center;
  font-size: calc(10 / 375 * 100vw);
  line-height: calc(18 / 375 * 100vw);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 769px) {
  .lp section.kv .catch {
    margin-top: 11px;
    font-size: 15px;
    line-height: 25px;
    letter-spacing: 0.08em;
  }
}
.lp section.styles {
  z-index: 1;
  margin-top: calc(47 / 375 * 100vw);
}
@media screen and (min-width: 769px) {
  .lp section.styles {
    width: 878px;
    margin: 191px auto 0;
  }
}
@media screen and (max-width: 768px) {
  .lp section.styles .stycky-image {
    position: sticky;
    top: 0;
    z-index: -1;
  }
  .lp section.styles .stycky-image.is-in .credit {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles .sticky-pc {
    position: sticky !important;
    top: 0;
    z-index: 0 !important;
  }
}
.lp section.styles article {
  position: relative;
  background: #fff;
}
.lp section.styles article:not(.styckys)::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 3;
  width: 100%;
  height: 2px;
  background: #fff;
}
@media screen and (min-width: 769px) {
  .lp section.styles article::after {
    content: "";
    display: block;
    clear: both;
  }
}
.lp section.styles article a {
  display: block;
}
.lp section.styles article .num {
  position: relative;
  z-index: 2;
  text-align: center;
  font-family: "Alvaro";
  font-size: calc(30 / 375 * 100vw);
  line-height: 1;
  letter-spacing: 0.65em;
  background: #fff;
}
@media screen and (max-width: 768px) {
  .lp section.styles article .num {
    margin-left: calc(17 / 375 * 100vw);
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article .num {
    margin-left: 20px;
    font-size: 32px;
  }
}
.lp section.styles article .main {
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .lp section.styles article .main {
    width: 100%;
    margin-top: calc(3 / 375 * 100vw);
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article .main {
    width: 456px;
    margin: 6px auto 0;
  }
}
.lp section.styles article .description {
  margin-top: calc(14 / 375 * 100vw);
  text-align: center;
  font-size: calc(12 / 375 * 100vw);
  line-height: 2;
  letter-spacing: 0.2em;
}
@media screen and (min-width: 769px) {
  .lp section.styles article .description {
    margin-top: 17px;
    margin-bottom: 28px;
    font-size: 15px;
    line-height: 26px;
    letter-spacing: 0.22em;
  }
}
.lp section.styles article .image02 {
  width: calc(331 / 375 * 100vw);
}
@media screen and (max-width: 768px) {
  .lp section.styles article .image02 {
    margin: 0 auto;
    margin-top: calc(13 / 375 * 100vw);
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article .image02 {
    width: 402px;
  }
}
.lp section.styles article .image03 {
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .lp section.styles article .image03 {
    width: 100%;
    margin-top: calc(10 / 375 * 100vw);
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article .image03 {
    width: 456px;
  }
}
@media screen and (max-width: 768px) {
  .lp section.styles article .image04 {
    width: calc(331 / 375 * 100vw);
    margin: 0 auto;
    padding-top: calc(10 / 375 * 100vw);
    background: #fff;
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article .image04 {
    width: 402px;
  }
}
.lp section.styles article .credit {
  font-family: "Alvaro";
  font-size: calc(15 / 375 * 100vw);
  line-height: calc(17 / 375 * 100vw);
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .lp section.styles article .credit {
    position: relative;
    z-index: 2;
    padding: calc(17 / 375 * 100vw) calc(22 / 375 * 100vw) 0;
    background: #fff;
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article .credit {
    position: absolute;
    bottom: 0;
    font-size: 13px;
    line-height: 15px;
  }
}
@media screen and (max-width: 768px) {
  .lp section.styles article + article {
    padding-top: calc(95 / 375 * 100vw);
  }
}
@media screen and (min-width: 769px) {
  .lp section.styles article + article {
    margin-top: 177px;
  }
}
@media screen and (max-width: 768px) {
  .lp section.styles article.styckys::after {
    content: "";
    display: block;
    width: 100%;
    height: calc(801 / 375 * 100vw);
    margin-top: -1px;
    pointer-events: none;
  }
  .lp section.styles article.styckys + article {
    margin-top: calc(-601 / 375 * 100vw);
  }
}
.lp section.styles article.style01 {
  z-index: 1;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style01 .image02 {
    float: left;
  }
  .lp section.styles article.style01 .image03 {
    float: right;
    margin-top: 48px;
  }
  .lp section.styles article.style01 .credit {
    right: 466px;
    text-align: right;
  }
}
.lp section.styles article.style02 {
  z-index: 2;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style02 .image02 {
    float: right;
  }
  .lp section.styles article.style02 .image03 {
    float: left;
    position: relative;
    z-index: 2;
    margin-top: 223px;
  }
  .lp section.styles article.style02 .image04 {
    float: left;
    margin-top: 35px;
    margin-left: -16px;
  }
  .lp section.styles article.style02 .credit {
    right: 449px;
    text-align: right;
  }
}
.lp section.styles article.style03 {
  z-index: 3;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style03 .description {
    margin-bottom: 34px;
  }
  .lp section.styles article.style03 .image02 {
    float: left;
    position: relative;
    left: 34px;
  }
  .lp section.styles article.style03 .image03 {
    float: right;
    position: relative;
    z-index: 2;
    right: -35px;
    margin-top: 158px;
  }
  .lp section.styles article.style03 .image04 {
    float: left;
    position: relative;
    right: -156px;
    margin-top: 35px;
  }
  .lp section.styles article.style03 .credit {
    left: 412px;
  }
}
.lp section.styles article.style04 {
  z-index: 4;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style04 .description {
    position: relative;
    z-index: 2;
    background: #fff;
    margin: 0;
    padding: 20px 0 20px;
  }
  .lp section.styles article.style04 .image02 {
    position: relative;
    z-index: 2;
    width: 100%;
    margin: 0 auto;
    background: #fff;
  }
  .lp section.styles article.style04 .image02 img {
    display: block;
    width: 402px;
    margin: 0 auto;
  }
  .lp section.styles article.style04 .credit {
    position: relative;
    z-index: 2;
    width: 402px;
    margin: 0 auto;
    padding: 19px 27px 0;
    background: #fff;
  }
}
.lp section.styles article.style05 {
  z-index: 5;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style05 .description {
    margin-bottom: 60px;
  }
  .lp section.styles article.style05 .image02 {
    float: right;
  }
  .lp section.styles article.style05 .image03 {
    float: left;
    margin-top: 98px;
  }
  .lp section.styles article.style05 .credit {
    left: 466px;
  }
}
.lp section.styles article.style06 {
  z-index: 6;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style06 .description {
    position: relative;
    z-index: 2;
    background: #fff;
    margin: 0;
    padding: 20px 0 20px;
  }
  .lp section.styles article.style06 .image02 {
    position: relative;
    z-index: 2;
    width: 100%;
    margin: 0 auto;
    background: #fff;
  }
  .lp section.styles article.style06 .image02 img {
    display: block;
    width: 402px;
    margin: 0 auto;
  }
  .lp section.styles article.style06 .credit {
    position: relative;
    z-index: 2;
    width: 402px;
    margin: 0 auto;
    padding: 21px 27px 0;
    background: #fff;
  }
}
.lp section.styles article.style07 {
  z-index: 7;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style07 .description {
    margin-bottom: 54px;
  }
  .lp section.styles article.style07 .image02 {
    float: left;
  }
  .lp section.styles article.style07 .image03 {
    float: right;
    margin-top: 132px;
  }
  .lp section.styles article.style07 .credit {
    right: 466px;
    text-align: right;
  }
}
.lp section.styles article.style08 {
  z-index: 8;
}
@media screen and (min-width: 769px) {
  .lp section.styles article.style08 .description {
    margin-bottom: 25px;
  }
  .lp section.styles article.style08 .image02 {
    float: right;
  }
  .lp section.styles article.style08 .image03 {
    margin-top: 100px;
  }
  .lp section.styles article.style08 .image04 {
    margin: 10px auto 0;
  }
  .lp section.styles article.style08 .credit {
    position: unset;
    width: 402px;
    margin: 16px auto 0;
  }
}
.lp section.staff {
  z-index: 2;
  background: #fff;
}
@media screen and (max-width: 768px) {
  .lp section.staff {
    margin-top: calc(-601 / 375 * 100vw);
    padding-top: calc(50 / 375 * 100vw);
  }
}
@media screen and (min-width: 769px) {
  .lp section.staff {
    left: -8px;
    width: 600px;
    margin: 176px auto 0;
  }
}
@media screen and (min-width: 769px) {
  .lp section.staff ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.lp section.staff ul li {
  text-align: center;
  font-family: "Alvaro";
  font-size: calc(15 / 375 * 100vw);
  line-height: calc(20 / 375 * 100vw);
  letter-spacing: 0.05em;
}
@media screen and (min-width: 769px) {
  .lp section.staff ul li {
    font-size: 15px;
    line-height: 20px;
  }
  .lp section.staff ul li:not(.last)::after {
    content: "_";
    display: inline-block;
    padding: 0 0.2em;
  }
}
.lp.start section.kv .kv-title img {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.lp.start section.kv .kv-image {
  clip-path: inset(0);
  transition: 1.3s ease;
}

@media screen and (max-width: 768px) {
  #footer {
    margin-top: 0;
    padding-top: 90px;
    background: #fff;
  }
}

@media (max-width: 767px) {
  .pc {
    display: none;
  }
}
@media (min-width: 768px) {
  .sp {
    display: none;
  }
}/*# sourceMappingURL=style.css.map */