/**
 * override
 */
:root {
  --base-size: 1500
}

@media (max-width: 768px) {
   :root {
    --base-size: 750
  }
}

@-webkit-keyframes step-end-left {
  0% {
    transform: rotate(0deg)
  }
  15% {
    transform: rotate(-10deg)
  }
  30% {
    transform: rotate(0deg)
  }
  45% {
    transform: rotate(-10deg)
  }
  60% {
    transform: rotate(0deg)
  }
  to {
    transform: rotate(0deg)
  }
}

@keyframes step-end-left {
  0% {
    transform: rotate(0deg)
  }
  15% {
    transform: rotate(-10deg)
  }
  30% {
    transform: rotate(0deg)
  }
  45% {
    transform: rotate(-10deg)
  }
  60% {
    transform: rotate(0deg)
  }
  to {
    transform: rotate(0deg)
  }
}

@-webkit-keyframes step-end-right {
  0% {
    transform: rotate(0deg)
  }
  15% {
    transform: rotate(10deg)
  }
  30% {
    transform: rotate(0deg)
  }
  45% {
    transform: rotate(10deg)
  }
  60% {
    transform: rotate(0deg)
  }
  to {
    transform: rotate(0deg)
  }
}

@keyframes step-end-right {
  0% {
    transform: rotate(0deg)
  }
  15% {
    transform: rotate(10deg)
  }
  30% {
    transform: rotate(0deg)
  }
  45% {
    transform: rotate(10deg)
  }
  60% {
    transform: rotate(0deg)
  }
  to {
    transform: rotate(0deg)
  }
}

html {
  font-size: 62.5%;
  height: 100%;
  scroll-behavior: smooth
}

@media(min-width: 1001px) {
  html {
      font-size:62.5%
  }
}

@media(max-width: 1000px)and (min-width:769px) {
  html {
      font-size:56.25%
  }
}

@media(max-width: 768px) {
  html {
      font-size:.66667vw;
      font-size: calc(100vw/var(--base-size)*10)
  }
}

@media screen and (prefers-reduced-motion:reduce) {
  html {
      scroll-behavior: auto
  }
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -webkit-print-color-adjust: exact;
  background-repeat: no-repeat;
  color: #383434;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: normal;
  margin: 0;
  overflow-x: hidden;
  width: 100%;
  word-break: break-all;
  word-spacing: 1px
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video{
  font-family: 'Noto Sans JP', sans-serif;
}

section {
  padding: 0;
}

.pc-class,.wrapper {
  display: block
}

@media (max-width: 768px) {
  .pc-class {
      display:none
  }
}

.sp-class {
  display: none
}

@media (max-width: 768px) {
  .sp-class {
      display:block
  }
}

.p-modal__wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.p-modal__wrapper .p-modal__video {
  position: relative;
  width: 90%;
  height: 25%;
}

.p-modal__wrapper .p-modal-close {
  top: -40%;
  right: 0;
  width: calc(100/var(--base-size)*90*1vw);
}

.p-modal__wrapper iframe {
  position: relative;
  z-index: 10;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .p-modal__wrapper .p-modal__video {
    width: 60%;
    height: 73.75%;
    max-height: 90vh;
  }

  .p-modal__wrapper .p-modal-close {
    top: -7%;
    right: -10%;
    width: calc(18px + 70 * (100vw - 769px) / 1151);
    height: calc(18px + 70 * (100vw - 769px) / 1151);
  }

  .p-modal__wrapper .p-modal__video iframe {
    display: block;
    width: 100%;
    height: 100%;
  }
}

/**
 * main
 */
.l-main {
  overflow: hidden;
  opacity: 0;
  transition: opacity 1s cubic-bezier(0.35, 0, 0.52, 1);
}

.l-main.is-active {
  opacity: 1;
}

/**
 * cta
 */
.p-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 10;
  padding: 0 10px;
  opacity: 0;
  transition: opacity 0.3s;
}

.p-cta.pc {
  display: none;
}

.p-cta.is-fixed {
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .p-cta {
    right: 0;
    bottom: 3.333333333vw;
    left: auto;
    padding: 0;
  }

  .p-cta__img {
    width: 13.3333vw;
  }

  .p-cta__btn {
    position: absolute;
    bottom: 0.933333333vw;
    left: 0.666666666vw;
  }

  .p-cta__btn img {
    width: 12.3333vw;
  }

  .p-cta.sp {
    display: none;
  }

  .p-cta.pc {
    display: block;
  }
}