@media (min-width: 769px) {
  html {
    background: linear-gradient(#fff 80.4rem, #fbf6fa 108.9rem, #fbf6fa 337.9rem, #fff 365.9rem);
  }
}
@media screen and (max-width: 768px) {
  html {
    background: linear-gradient(#fff 182.8rem, #fbf6fa 203.1rem, #fbf6fa 654.8rem, #fff 669.8rem);
  }
}

.main_outer {
  background: none;
}

.js-subline {
  position: relative;
  letter-spacing: 0.2em;
  line-height: 1;
  font-weight: 400;
  font-family: "Josefin Sans", sans-serif;
  color: #ff5b7d;
  opacity: 0;
  translate: 0 8px;
  transition: opacity 0.4s linear, translate 0.4s ease-out;
}
@media (min-width: 769px) {
  .js-subline {
    font-size: 3.6rem;
  }
}
@media screen and (max-width: 768px) {
  .js-subline {
    font-size: 5.6rem;
    text-align: center;
  }
}
.js-subline .js-sublineBefore {
  transition: opacity 0.6s linear 2s;
}
.js-subline .js-sublineAfter {
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .js-subline .js-sublineAfter {
    right: 0;
  }
}
.js-subline .js-sublineAfter > span {
  display: inline-block;
  opacity: 0;
  translate: 8px 14px;
}
.js-subline .js-sublineAfter > span:nth-of-type(1) {
  transition: opacity 0.4s linear 3.2s, translate 0.4s ease-out 3.2s;
}
.js-subline .js-sublineAfter > span:nth-of-type(2) {
  transition: opacity 0.4s linear 3.4s, translate 0.4s ease-out 3.4s;
}
.js-subline .js-sublineAfter > span:nth-of-type(3) {
  transition: opacity 0.4s linear 3.6s, translate 0.4s ease-out 3.6s;
}
.js-subline .js-sublineAfter > span:nth-of-type(4) {
  transition: opacity 0.4s linear 3.8s, translate 0.4s ease-out 3.8s;
}
.js-subline .js-sublineAfter > span:nth-of-type(5) {
  transition: opacity 0.4s linear 4s, translate 0.4s ease-out 4s;
}
.js-subline .js-sublineAfter > span:nth-of-type(6) {
  transition: opacity 0.4s linear 4.2s, translate 0.4s ease-out 4.2s;
}
.js-subline .js-sublineAfter > span:nth-of-type(7) {
  transition: opacity 0.4s linear 4.4s, translate 0.4s ease-out 4.4s;
}
.js-subline .js-sublineAfter > span:nth-of-type(8) {
  transition: opacity 0.4s linear 4.6s, translate 0.4s ease-out 4.6s;
}
.js-subline .js-sublineAfter > span:nth-of-type(9) {
  transition: opacity 0.4s linear 4.8s, translate 0.4s ease-out 4.8s;
}
.js-subline .js-sublineAfter > span:nth-of-type(10) {
  transition: opacity 0.4s linear 5s, translate 0.4s ease-out 5s;
}
.js-subline .js-sublineAfter > span:nth-of-type(11) {
  transition: opacity 0.4s linear 5.2s, translate 0.4s ease-out 5.2s;
}
.js-subline .js-sublineAfter > span:nth-of-type(12) {
  transition: opacity 0.4s linear 5.4s, translate 0.4s ease-out 5.4s;
}
.js-subline .js-sublineAfter > span:nth-of-type(13) {
  transition: opacity 0.4s linear 5.6s, translate 0.4s ease-out 5.6s;
}
.js-subline .js-sublineAfter > span:nth-of-type(14) {
  transition: opacity 0.4s linear 5.8s, translate 0.4s ease-out 5.8s;
}
.js-subline .js-sublineAfter > span:nth-of-type(15) {
  transition: opacity 0.4s linear 6s, translate 0.4s ease-out 6s;
}
.js-subline.is-animated {
  opacity: 1;
  translate: 0 0;
}
.js-subline.is-animated .js-sublineBefore {
  opacity: 0;
}
.js-subline.is-animated .js-sublineAfter > span {
  opacity: 1;
  translate: 0 0;
}

.js-animation.slideUpIn {
  opacity: 0;
  transition: 3s cubic-bezier(0.4, 0, 0.2, 1) 0.4s;
}
.js-animation.slideUpIn.is-animated {
  opacity: 1;
}

.lead_section {
  position: relative;
}
@media (min-width: 769px) {
  .lead_section {
    padding: 12.5rem 0 10rem;
  }
}
@media screen and (max-width: 768px) {
  .lead_section {
    padding: 14rem 0 46rem;
  }
}
.lead_section .js-parallax_img video {
  scale: 1.05;
}
.lead_section .parallax1 {
  position: absolute;
}
@media (min-width: 769px) {
  .lead_section .parallax1 {
    width: 28.8rem;
    height: 28.8rem;
    left: 13.1rem;
    top: 5.7rem;
  }
}
@media screen and (max-width: 768px) {
  .lead_section .parallax1 {
    width: 40.9rem;
    height: 33.4rem;
    left: 0;
    bottom: -40rem;
  }
}
.lead_section .parallax2 {
  position: absolute;
}
@media (min-width: 769px) {
  .lead_section .parallax2 {
    width: 38.6rem;
    height: 27.3rem;
    right: 5.3rem;
    bottom: -7.2rem;
  }
}
@media screen and (max-width: 768px) {
  .lead_section .parallax2 {
    width: 32.8rem;
    height: 34.8rem;
    right: 0;
    top: -14.2rem;
  }
}

.lead_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 769px) {
  .lead_inner {
    max-width: 150rem;
  }
}
@media screen and (max-width: 768px) {
  .lead_inner {
    max-width: 75rem;
  }
}

.lead_h1 {
  position: relative;
  letter-spacing: 0.45em;
  line-height: 1;
  font-weight: 400;
  font-family: "Josefin Sans", sans-serif;
  text-align: center;
}
@media (min-width: 769px) {
  .lead_h1 {
    font-size: 3.6rem;
  }
}
@media screen and (max-width: 768px) {
  .lead_h1 {
    font-size: 6.2rem;
  }
}

.lead_text {
  position: relative;
  text-align: center;
}
@media (min-width: 769px) {
  .lead_text {
    padding-top: 10rem;
    line-height: 2.358;
    font-size: 1.4rem;
  }
  .lead_text > p {
    font: inherit;
  }
  .lead_text > p:first-of-type {
    margin-top: -0.678em;
  }
  .lead_text > p:last-of-type {
    margin-bottom: -0.678em;
  }
}
@media screen and (max-width: 768px) {
  .lead_text {
    padding-top: 8.5rem;
    line-height: 1.965;
    font-size: 2.8rem;
  }
  .lead_text > p {
    font: inherit;
  }
  .lead_text > p:first-of-type {
    margin-top: -0.482em;
  }
  .lead_text > p:last-of-type {
    margin-bottom: -0.482em;
  }
}
.lead_text p {
  opacity: 0;
  transition: opacity 3s cubic-bezier(0.4, 0, 0.2, 1) 0s;
}
.lead_text p:not(.first) {
  transition: opacity 3s cubic-bezier(0.4, 0, 0.2, 1) 1s;
}
@media (min-width: 769px) {
  .lead_text p + p {
    padding-top: 1.358em;
  }
}
@media screen and (max-width: 768px) {
  .lead_text p + p {
    padding-top: 1.536em;
  }
}
.is-animated .lead_text p {
  opacity: 1;
}

.lead_copy {
  position: relative;
  margin: 0 auto;
  line-height: 0;
  opacity: 0;
  transition: 3s cubic-bezier(0.4, 0, 0.2, 1) 1s;
}
@media (min-width: 769px) {
  .lead_copy {
    width: 23.8rem;
    padding-top: 5rem;
  }
}
@media screen and (max-width: 768px) {
  .lead_copy {
    width: 36.704rem;
    padding-top: 8.5rem;
  }
}
.is-animated .lead_copy {
  opacity: 1;
}

.routine_section {
  position: relative;
}
@media (min-width: 769px) {
  .routine_section {
    padding: 19.5rem 0 13rem;
  }
}
@media screen and (max-width: 768px) {
  .routine_section {
    padding: 8.5rem 0 0.5rem;
  }
}
@media (min-width: 769px) {
  .routine_section .parallax1 {
    position: absolute;
    width: 74.9rem;
    height: 40.6rem;
    left: 0;
    top: -4.3rem;
  }
}
@media screen and (max-width: 768px) {
  .routine_section .parallax1 {
    width: 65rem;
    height: 47.2rem;
    margin-top: 4rem;
    margin-bottom: 4rem;
  }
}
@media (min-width: 769px) {
  .routine_section .parallax2 {
    width: 40.7rem;
    height: 25.4rem;
    margin-left: 80.6rem;
    margin-top: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .routine_section .parallax2 {
    width: 39.9rem;
    height: 25rem;
    margin-left: 30.1rem;
    margin-top: 5rem;
  }
}

.routine_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 769px) {
  .routine_inner {
    max-width: 150rem;
  }
}
@media screen and (max-width: 768px) {
  .routine_inner {
    max-width: 75rem;
  }
}

.routine_caption {
  display: flex;
  flex-direction: column;
}
@media (min-width: 769px) {
  .routine_caption {
    align-items: flex-start;
    gap: 3.5rem;
    margin-left: 80.6rem;
  }
}
@media screen and (max-width: 768px) {
  .routine_caption {
    align-items: center;
    width: 65rem;
    margin-top: 4rem;
    margin-left: 5rem;
  }
}

.routine_text {
  letter-spacing: 0.02em;
}
@media (min-width: 769px) {
  .routine_text {
    line-height: 2.072;
    font-size: 1.4rem;
  }
  .routine_text > p {
    font: inherit;
  }
  .routine_text > p:first-of-type {
    margin-top: -0.535em;
  }
  .routine_text > p:last-of-type {
    margin-bottom: -0.535em;
  }
}
@media screen and (max-width: 768px) {
  .routine_text {
    line-height: 1.929;
    font-size: 2.8rem;
  }
  .routine_text > p {
    font: inherit;
  }
  .routine_text > p:first-of-type {
    margin-top: -0.464em;
  }
  .routine_text > p:last-of-type {
    margin-bottom: -0.464em;
  }
  .routine_text {
    text-align: justify;
  }
}

.with_section {
  position: relative;
}
@media (min-width: 769px) {
  .with_section {
    padding: 11.4rem 0 10rem;
  }
}
@media screen and (max-width: 768px) {
  .with_section {
    padding: 20rem 0 0;
  }
}
@media (min-width: 769px) {
  .with_section .parallax1 {
    position: absolute;
    width: 79.4rem;
    height: 47.8rem;
    right: 0;
    top: -4.7rem;
  }
}
@media screen and (max-width: 768px) {
  .with_section .parallax1 {
    width: 65rem;
    height: 49.8rem;
    margin-top: 5rem;
    margin-bottom: 4rem;
  }
}
@media (min-width: 769px) {
  .with_section .parallax2 {
    width: 31rem;
    height: 31rem;
    margin-left: 33.9rem;
    margin-top: 7rem;
  }
}
@media screen and (max-width: 768px) {
  .with_section .parallax2 {
    width: 32.5rem;
    height: 32.6rem;
    margin-left: 5rem;
    margin-top: 6rem;
  }
}

.with_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 769px) {
  .with_inner {
    max-width: 150rem;
  }
}
@media screen and (max-width: 768px) {
  .with_inner {
    max-width: 75rem;
  }
}

.with_caption {
  display: flex;
  flex-direction: column;
}
@media (min-width: 769px) {
  .with_caption {
    align-items: flex-start;
    gap: 3.5rem;
    width: 45.3rem;
    margin-left: 25rem;
  }
}
@media screen and (max-width: 768px) {
  .with_caption {
    align-items: center;
    width: 65rem;
    margin-left: 5rem;
  }
}

.with_text {
  letter-spacing: 0.02em;
}
@media (min-width: 769px) {
  .with_text {
    line-height: 2.072;
    font-size: 1.4rem;
  }
  .with_text > p {
    font: inherit;
  }
  .with_text > p:first-of-type {
    margin-top: -0.535em;
  }
  .with_text > p:last-of-type {
    margin-bottom: -0.535em;
  }
}
@media screen and (max-width: 768px) {
  .with_text {
    line-height: 1.929;
    font-size: 2.8rem;
  }
  .with_text > p {
    font: inherit;
  }
  .with_text > p:first-of-type {
    margin-top: -0.464em;
  }
  .with_text > p:last-of-type {
    margin-bottom: -0.464em;
  }
  .with_text {
    text-align: justify;
  }
}

.quality_section {
  position: relative;
}
@media (min-width: 769px) {
  .quality_section {
    padding: 8.3rem 0 0;
  }
}
@media screen and (max-width: 768px) {
  .quality_section {
    padding: 20rem 0 0;
  }
}
@media (min-width: 769px) {
  .quality_section .parallax1 {
    width: 77rem;
    height: 48.2rem;
    margin-left: 19rem;
  }
}
@media screen and (max-width: 768px) {
  .quality_section .parallax1 {
    width: 65rem;
    height: 53.6rem;
    margin-top: 5.5rem;
    margin-bottom: 5.5rem;
  }
}
@media (min-width: 769px) {
  .quality_section .parallax2 {
    position: absolute;
    width: 30rem;
    height: 41.5rem;
    right: 18.9rem;
    top: 24.1rem;
  }
}
@media screen and (max-width: 768px) {
  .quality_section .parallax2 {
    width: 38.7rem;
    height: 27.6rem;
    margin: 4.5rem 5rem 0 auto;
  }
}

.quality_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 769px) {
  .quality_inner {
    max-width: 150rem;
  }
}
@media screen and (max-width: 768px) {
  .quality_inner {
    max-width: 75rem;
  }
}

.quality_caption {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 769px) {
  .quality_caption {
    gap: 3.5rem;
    margin-left: 30.5rem;
    margin-top: 5.5rem;
  }
}
@media screen and (max-width: 768px) {
  .quality_caption {
    align-items: center;
    width: 65rem;
    margin-left: 5rem;
  }
}

.quality_text {
  letter-spacing: 0.02em;
}
@media (min-width: 769px) {
  .quality_text {
    line-height: 2.072;
    font-size: 1.4rem;
  }
  .quality_text > p {
    font: inherit;
  }
  .quality_text > p:first-of-type {
    margin-top: -0.535em;
  }
  .quality_text > p:last-of-type {
    margin-bottom: -0.535em;
  }
}
@media screen and (max-width: 768px) {
  .quality_text {
    line-height: 1.929;
    font-size: 2.8rem;
  }
  .quality_text > p {
    font: inherit;
  }
  .quality_text > p:first-of-type {
    margin-top: -0.464em;
  }
  .quality_text > p:last-of-type {
    margin-bottom: -0.464em;
  }
  .quality_text {
    text-align: justify;
  }
}

.outline_section {
  position: relative;
}
@media (min-width: 769px) {
  .outline_section {
    padding: 28rem 0 14rem;
  }
}
@media screen and (max-width: 768px) {
  .outline_section {
    padding: 15rem 0 27rem;
  }
}
@media (min-width: 769px) {
  .outline_section .parallax1 {
    position: absolute;
    width: 36.8rem;
    height: 26rem;
    left: 8.3rem;
    top: -10.6rem;
  }
}
@media screen and (max-width: 768px) {
  .outline_section .parallax1 {
    width: 100%;
    height: 42.2rem;
    left: 0;
  }
}
.outline_section .parallax2 {
  position: absolute;
}
@media (min-width: 769px) {
  .outline_section .parallax2 {
    width: 19.6rem;
    height: 23.4rem;
    right: 11.4rem;
    bottom: -8rem;
  }
}
@media screen and (max-width: 768px) {
  .outline_section .parallax2 {
    width: 24.5rem;
    height: 18.8rem;
    right: 5rem;
    bottom: -22.5rem;
  }
}

.outline_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 769px) {
  .outline_inner {
    max-width: 150rem;
  }
}
@media screen and (max-width: 768px) {
  .outline_inner {
    max-width: 75rem;
  }
}

.outline_caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transition: opacity 3s cubic-bezier(0.4, 0, 0.2, 1) 0.4s;
}
@media (min-width: 769px) {
  .outline_caption {
    gap: 9rem;
  }
}
@media screen and (max-width: 768px) {
  .outline_caption {
    gap: 7rem;
    margin-top: 9rem;
  }
}
.outline_caption.is-animated {
  opacity: 1;
}

.outline_h2 {
  width: 33.4rem;
  line-height: 0;
}

.outline_text {
  letter-spacing: 0.1em;
  text-align: center;
}
@media (min-width: 769px) {
  .outline_text {
    line-height: 2.358;
    font-size: 1.4rem;
  }
  .outline_text > p {
    font: inherit;
  }
  .outline_text > p:first-of-type {
    margin-top: -0.678em;
  }
  .outline_text > p:last-of-type {
    margin-bottom: -0.678em;
  }
}
@media screen and (max-width: 768px) {
  .outline_text {
    line-height: 2.347;
    font-size: 2.6rem;
  }
  .outline_text > p {
    font: inherit;
  }
  .outline_text > p:first-of-type {
    margin-top: -0.673em;
  }
  .outline_text > p:last-of-type {
    margin-bottom: -0.673em;
  }
}
@media (min-width: 769px) {
  .outline_text p + p {
    padding-top: 1.9rem;
  }
}
@media screen and (max-width: 768px) {
  .outline_text p + p {
    padding-top: 4.5rem;
  }
}