@charset "UTF-8";
/* ---------------------------------------*/
/* wave animation */
/* ---------------------------------------*/
/* Animation */
.parallax > use {
  -webkit-animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
          animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
}

.parallax > use:nth-child(1) {
  -webkit-animation-delay: -2s;
          animation-delay: -2s;
  -webkit-animation-duration: 7s;
          animation-duration: 7s;
}

.parallax > use:nth-child(2) {
  -webkit-animation-delay: -3s;
          animation-delay: -3s;
  -webkit-animation-duration: 10s;
          animation-duration: 10s;
}

.parallax > use:nth-child(3) {
  -webkit-animation-delay: -4s;
          animation-delay: -4s;
  -webkit-animation-duration: 13s;
          animation-duration: 13s;
}

.parallax > use:nth-child(4) {
  -webkit-animation-delay: -5s;
          animation-delay: -5s;
  -webkit-animation-duration: 20s;
          animation-duration: 20s;
}

@-webkit-keyframes move-forever {
  0% {
    -webkit-transform: translate3d(-90px, 0, 0);
            transform: translate3d(-90px, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(85px, 0, 0);
            transform: translate3d(85px, 0, 0);
  }
}

@keyframes move-forever {
  0% {
    -webkit-transform: translate3d(-90px, 0, 0);
            transform: translate3d(-90px, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(85px, 0, 0);
            transform: translate3d(85px, 0, 0);
  }
}
@-webkit-keyframes move-forever-sp {
  0% {
    -webkit-transform: translate3d(-45px, 0, 0);
            transform: translate3d(-45px, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(42px, 0, 0);
            transform: translate3d(42px, 0, 0);
  }
}
@keyframes move-forever-sp {
  0% {
    -webkit-transform: translate3d(-45px, 0, 0);
            transform: translate3d(-45px, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(42px, 0, 0);
            transform: translate3d(42px, 0, 0);
  }
}
/* ---------------------------------------*/
/* heading */
/* ---------------------------------------*/
.heading-02 {
  font-size: 2.8rem;
  line-height: 1.42;
  letter-spacing: -0.08em;
  text-align: left;
  position: relative;
  margin: 0 0 2em;
}
.heading-02 small {
  font-size: 1.8rem;
}
@media screen and (max-width: 768px) {
  .heading-02 {
    font-size: 2rem;
    margin: 0 0 1.5em;
  }
  .heading-02 small {
    font-size: 1.3rem;
  }
}

.underline {
  font-size: 2.8rem;
  line-height: 1.42;
  letter-spacing: -0.08em;
  display: inline-block;
  position: relative;
}
.underline::after {
  display: block;
  content: "";
  width: 100%;
  height: 0.7em;
  background: url(../img/wave.svg) repeat-x center/cover;
  position: absolute;
  left: 0;
  bottom: -0.2em;
  z-index: -1;
  clip-path: inset(0 100% 0 0); /* 最初は右端を隠す */
  -webkit-transition: clip-path 1000ms ease-out 2s;
  transition: clip-path 1000ms ease-out 2s; /* 1秒遅延 */
}
@media screen and (max-width: 768px) {
  .underline {
    font-size: 2rem;
  }
}

.underline.visible::after {
  clip-path: inset(0 0 0 0); /* ビューに入った時に全体を表示 */
}

/* ---------------------------------------*/
/* keyvisual */
/* ---------------------------------------*/
#keyvisual {
  width: 100%;
  height: 800px;
  background: url(../img/keyvisual_bg-pc.jpg) no-repeat top/cover;
  position: absolute; /* fixedをabsoluteに変更 */
  top: 0;
  will-change: transform; /* パフォーマンス向上 */
}

@media screen and (max-width: 768px) {
  #keyvisual {
    height: 550px;
    background: url(../img/keyvisual_bg-sp.jpg) no-repeat center/cover;
  }
}
.keyvisual-maintitile {
  width: 17.75%;
  position: absolute;
  top: 460px;
  right: 16%;
  -webkit-animation: liquidMotion 8s infinite ease-in-out;
          animation: liquidMotion 8s infinite ease-in-out;
}
@media screen and (max-width: 768px) {
  .keyvisual-maintitile {
    width: 30.4%;
    top: 350px;
    right: 23%;
  }
}

@-webkit-keyframes liquidMotion {
  0% {
    -webkit-transform: translate(0px, 0px) scale(1);
            transform: translate(0px, 0px) scale(1);
    clip-path: ellipse(50% 50% at 50% 50%);
  }
  20% {
    -webkit-transform: translate(0px, -2px) scale(1.01);
            transform: translate(0px, -2px) scale(1.01);
    clip-path: ellipse(52% 48% at 50% 49%);
  }
  40% {
    -webkit-transform: translate(0px, 3px) scale(0.99);
            transform: translate(0px, 3px) scale(0.99);
    clip-path: ellipse(48% 52% at 50% 51%);
  }
  60% {
    -webkit-transform: translate(0px, -1px) scale(1.02);
            transform: translate(0px, -1px) scale(1.02);
    clip-path: ellipse(51% 49% at 50% 50%);
  }
  80% {
    -webkit-transform: translate(0px, 2px) scale(0.98);
            transform: translate(0px, 2px) scale(0.98);
    clip-path: ellipse(49% 51% at 50% 50%);
  }
  100% {
    -webkit-transform: translate(0px, 0px) scale(1);
            transform: translate(0px, 0px) scale(1);
    clip-path: ellipse(50% 50% at 50% 50%);
  }
}

@keyframes liquidMotion {
  0% {
    -webkit-transform: translate(0px, 0px) scale(1);
            transform: translate(0px, 0px) scale(1);
    clip-path: ellipse(50% 50% at 50% 50%);
  }
  20% {
    -webkit-transform: translate(0px, -2px) scale(1.01);
            transform: translate(0px, -2px) scale(1.01);
    clip-path: ellipse(52% 48% at 50% 49%);
  }
  40% {
    -webkit-transform: translate(0px, 3px) scale(0.99);
            transform: translate(0px, 3px) scale(0.99);
    clip-path: ellipse(48% 52% at 50% 51%);
  }
  60% {
    -webkit-transform: translate(0px, -1px) scale(1.02);
            transform: translate(0px, -1px) scale(1.02);
    clip-path: ellipse(51% 49% at 50% 50%);
  }
  80% {
    -webkit-transform: translate(0px, 2px) scale(0.98);
            transform: translate(0px, 2px) scale(0.98);
    clip-path: ellipse(49% 51% at 50% 50%);
  }
  100% {
    -webkit-transform: translate(0px, 0px) scale(1);
            transform: translate(0px, 0px) scale(1);
    clip-path: ellipse(50% 50% at 50% 50%);
  }
}
.keyvisual-illust {
  width: 35%;
  position: absolute;
  top: 155px;
  left: 4.6%;
}
@media screen and (max-width: 768px) {
  .keyvisual-illust {
    width: 45%;
    top: 230px;
    left: 5px;
  }
}

.keyvisual-gokugoku {
  width: 54.8%;
  position: absolute;
  top: 180px;
  right: 4.3%;
}
@media screen and (max-width: 768px) {
  .keyvisual-gokugoku {
    width: 88%;
    top: 94px;
    height: 25px;
  }
}

.keyvisual_package {
  width: 10.4%;
  position: absolute;
  top: 450px;
  right: 7.5%;
}
@media screen and (max-width: 768px) {
  .keyvisual_package {
    width: 22%;
    top: 335px;
    right: 20px;
  }
}

/* ---------------------------------------*/
/* toromi */
/* ---------------------------------------*/
#toromi {
  margin: -8px 0 0;
  padding: 50px 0 200px;
  background: #fff;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  #toromi {
    margin: -251px 0 0;
    padding: 0 0 140px;
  }
}

.toromi-heading {
  width: 61%;
  margin: 100px auto 110px;
  letter-spacing: -0.08em;
}
@media screen and (max-width: 768px) {
  .toromi-heading {
    width: 100%;
    margin: 80px auto 40px;
  }
}

.toromi-image-package {
  width: 35%;
  position: absolute;
  top: 200px;
  left: 0;
  right: 0;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .toromi-image-package {
    width: 65%;
    position: relative;
    top: 0;
    margin: 0 auto 50px;
  }
}

.toromi-left {
  width: 32.4%;
}
@media screen and (max-width: 768px) {
  .toromi-left {
    width: 100%;
    margin: 0 0 75px;
  }
}

.toromi-right {
  width: 34%;
  margin: -100px 0 0 auto;
}
@media screen and (max-width: 768px) {
  .toromi-right {
    width: 100%;
    margin: 0;
  }
}

.toromi-note {
  display: block;
  font-size: 1rem;
  line-height: 2;
  text-align: left;
  letter-spacing: -0.08em;
  text-indent: -1em;
  padding-left: 1em;
  margin: 30px 0 0;
}
@media screen and (max-width: 768px) {
  .toromi-note {
    margin: 10px 0 0;
  }
}

.waves {
  position: relative;
  width: 100%;
  height: 150px;
  margin-top: -180px;
  margin-bottom: -7px; /*Fix for safari gap*/
}
@media screen and (max-width: 768px) {
  .waves {
    height: 50px;
    margin-top: -86px;
  }
}

/* ---------------------------------------*/
/* secret */
/* ---------------------------------------*/
#secret {
  margin: -100px 0 0;
  padding: 150px 0 200px;
  background: #fff;
  position: relative;
  z-index: 2;
}
#secret .heading-02 {
  display: inline-block;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #secret {
    margin: -50px 0 0;
    padding: 80px 0 170px;
  }
}

.secret-heading {
  width: 26%;
  position: absolute;
  top: 0;
  right: 13%;
}
.secret-heading.underline::after {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  height: 27px;
  width: 129%;
  top: 0;
  bottom: 0;
  right: -48%;
  left: auto;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .secret-heading {
    position: relative;
    right: auto;
    width: 46%;
    margin: 0 auto 30px;
  }
  .secret-heading.underline::after {
    height: 10%;
  }
}

.secret-content {
  width: 57%;
  margin: 0 0 0 7.5%;
  padding: 80px 0 0;
}
@media screen and (max-width: 768px) {
  .secret-content {
    width: 100%;
    margin: 0;
    padding: 0;
  }
}

/* ---------------------------------------*/
/* reason */
/* ---------------------------------------*/
#reason {
  margin: -100px 0 0;
  padding: 150px 0 260px;
  background: #fff;
  position: relative;
  z-index: 2;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  #reason {
    margin: -50px 0 0;
    padding: 80px 0 165px;
  }
}

.reason-heading {
  width: 32%;
  margin: 0 auto 38px 40.5%;
}
@media screen and (max-width: 768px) {
  .reason-heading {
    width: 57.8%;
    margin: 0 auto 150px 7.5%;
  }
}

.reason-image-milk {
  width: 50%;
  position: absolute;
  top: 200px;
  right: -40px;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .reason-image-milk {
    width: 68%;
    top: 7.2vw;
    right: -20vw;
  }
}

/* ---------------------------------------*/
/* voice */
/* ---------------------------------------*/
#voice {
  margin: -100px 0;
  padding: 150px 0 630px;
  background: #fff;
  position: relative;
  width: 100%;
  position: sticky;
  top: calc(var(--voice-height) * -1 + 130vh);
  z-index: 2;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  #voice {
    margin: -50px 0 0;
    padding: 80px 0 315px;
    top: calc(var(--voice-height) * -1 + 70vh); /* 適宜調整 */
  }
}

.fixed {
  position: fixed;
  bottom: 0;
  width: 100%;
}

#voice .content {
  position: relative;
  -webkit-transition: -webkit-transform 0.23s ease;
  transition: -webkit-transform 0.23s ease;
  transition: transform 0.23s ease;
  transition: transform 0.23s ease, -webkit-transform 0.23s ease; /* コンテンツの移動にトランジション */
}

.voice-heading {
  width: 19.7%;
  position: absolute;
  top: 0;
  right: 6%;
}
@media screen and (max-width: 768px) {
  .voice-heading {
    width: 35%;
    position: relative;
    right: auto;
    margin: 0 auto 44px;
  }
}

.voice-list__item {
  position: relative;
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: opacity 1s ease-out, -webkit-transform 1s ease-out, -webkit-filter 1s ease-out;
  transition: opacity 1s ease-out, -webkit-transform 1s ease-out, -webkit-filter 1s ease-out;
  transition: opacity 1s ease-out, transform 1s ease-out, filter 1s ease-out;
  transition: opacity 1s ease-out, transform 1s ease-out, filter 1s ease-out, -webkit-transform 1s ease-out, -webkit-filter 1s ease-out;
  -webkit-animation: float-animation 6s ease-in-out infinite;
          animation: float-animation 6s ease-in-out infinite;
  -webkit-animation-delay: calc(var(--random-delay, 0) * 1s);
          animation-delay: calc(var(--random-delay, 0) * 1s);
  -webkit-filter: blur(4px);
          filter: blur(4px);
}
.voice-list__item.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-filter: blur(0);
          filter: blur(0);
}
.voice-list__item:nth-child(1) {
  width: 42%;
  margin: 0 auto 0 36%;
  --random-delay: 0;
}
.voice-list__item:nth-child(2) {
  width: 40%;
  margin: -12% auto 0 2.5%;
  --random-delay: 1.2;
}
.voice-list__item:nth-child(3) {
  width: 43%;
  margin: -4% auto 0 27%;
  z-index: 2;
  --random-delay: 0.8;
}
.voice-list__item:nth-child(4) {
  width: 41%;
  margin: -5% auto 0 0;
  --random-delay: 1.5;
}
.voice-list__item:nth-child(5) {
  width: 42%;
  margin: -10% auto 0 41.6%;
  --random-delay: 0.4;
}
@media screen and (max-width: 768px) {
  .voice-list__item:nth-child(1) {
    width: 104%;
    margin: 0 -12% 0 auto;
  }
  .voice-list__item:nth-child(2) {
    width: 100%;
    margin: 5% auto 0 -10%;
  }
  .voice-list__item:nth-child(3) {
    width: 106%;
    margin: 3% auto 0 8%;
    z-index: 2;
  }
  .voice-list__item:nth-child(4) {
    width: 103%;
    margin: 0 auto 0 -13%;
  }
  .voice-list__item:nth-child(5) {
    width: 104%;
    margin: 0 -12% 0 auto;
  }
}

@-webkit-keyframes float-animation {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  20% {
    -webkit-transform: translate(0.5px, -1px) scale(1.005);
            transform: translate(0.5px, -1px) scale(1.005);
  }
  40% {
    -webkit-transform: translate(-1px, 1px) scale(0.995);
            transform: translate(-1px, 1px) scale(0.995);
  }
  60% {
    -webkit-transform: translate(1px, -0.5px) scale(1.01);
            transform: translate(1px, -0.5px) scale(1.01);
  }
  80% {
    -webkit-transform: translate(-0.5px, 0.5px) scale(0.99);
            transform: translate(-0.5px, 0.5px) scale(0.99);
  }
  100% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
}

@keyframes float-animation {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  20% {
    -webkit-transform: translate(0.5px, -1px) scale(1.005);
            transform: translate(0.5px, -1px) scale(1.005);
  }
  40% {
    -webkit-transform: translate(-1px, 1px) scale(0.995);
            transform: translate(-1px, 1px) scale(0.995);
  }
  60% {
    -webkit-transform: translate(1px, -0.5px) scale(1.01);
            transform: translate(1px, -0.5px) scale(1.01);
  }
  80% {
    -webkit-transform: translate(-0.5px, 0.5px) scale(0.99);
            transform: translate(-0.5px, 0.5px) scale(0.99);
  }
  100% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
}
/* ---------------------------------------*/
/* package */
/* ---------------------------------------*/
#package {
  background: #F2F2F6;
  padding: 120px 0 300px;
  position: relative;
  position: sticky;
  top: calc(var(--package-height) * -1 + 100vh);
  z-index: 2;
}
#package .wrapper {
  top: -50px;
}
@media screen and (max-width: 768px) {
  #package {
    padding: 80px 0 70px;
    top: calc(var(--package-height) * -1 + 120vh);
  }
}

.package-heading {
  width: 64%;
  margin: 0 0 60px;
  position: relative;
  left: -18%;
  z-index: 3;
}
.package-heading.underline::after {
  height: 27px;
  width: 40%;
  bottom: 3%;
}
@media screen and (max-width: 768px) {
  .package-heading {
    width: 100%;
    left: auto;
    margin: 0 0 48px;
  }
  .package-heading.underline::after {
    height: 25%;
  }
}

.pacage-image_product {
  width: 90%;
  margin: 90px auto 50px;
}
@media screen and (max-width: 768px) {
  .pacage-image_product {
    width: calc(100% + 50px);
    margin: 50px -25px 70px;
  }
}

.package-description_box {
  position: relative;
  padding: 90px 35.7% 10% 14%;
}
.package-description_box::before {
  display: block;
  content: "";
  width: 70%;
  height: auto;
  aspect-ratio: 772/267;
  background: url(../img/package_balloon-01.png) no-repeat center/100%;
  position: absolute;
  top: 0;
  left: 4%;
}
.package-description_box::after {
  display: block;
  content: "";
  width: 62.3%;
  height: auto;
  aspect-ratio: 686/318;
  background: url(../img/package_balloon-02.png) no-repeat center/100%;
  position: absolute;
  bottom: 0;
  left: 9%;
}
@media screen and (max-width: 768px) {
  .package-description_box {
    padding: 70px 8% 27%;
    margin: 0 0 44em;
  }
  .package-description_box::before {
    width: 100%;
    aspect-ratio: 668/178;
    background: url(../img/package_balloon-01-sp.png) no-repeat center/100%;
    left: 0;
  }
  .package-description_box::after {
    display: block;
    content: "";
    width: 100%;
    aspect-ratio: 674/269;
    background: url(../img/package_balloon-02-sp.png) no-repeat center/100%;
    left: 0;
  }
}

.package-description-heading {
  margin: 0 0 39px;
}
@media screen and (max-width: 768px) {
  .package-description-heading {
    margin: 0 0 30px;
  }
}

.package-kariya__description {
  font-size: 1.8rem;
  line-height: 2;
  text-align: left;
  margin: 0 0 2em;
}
.package-kariya__description:last-of-type {
  margin: 0;
}
@media screen and (max-width: 768px) {
  .package-kariya__description {
    font-size: 1.3rem;
  }
}

.package-illust {
  width: 20%;
  position: absolute;
  bottom: -270px;
  left: 0;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .package-illust {
    width: 38%;
    bottom: 100px;
    left: 0;
    right: 0;
    margin: auto;
  }
}

.package-kariya {
  width: 22.7%;
  position: absolute;
  top: 50px;
  right: 0;
}
.package-kariya figure img {
  margin: 0 0 25px;
}
.package-kariya figure figcaption {
  display: block;
  font-size: 2rem;
  text-align: left;
  letter-spacing: -0.09em;
  margin: 0 0 0.7em;
}
@media screen and (max-width: 768px) {
  .package-kariya {
    width: 56%;
    width: 13em;
    top: auto;
    bottom: -25em;
    left: 0;
    right: 0;
    margin: auto;
  }
  .package-kariya figure img {
    width: 80%;
    margin: 0 0 20px;
  }
  .package-kariya figure figcaption {
    display: block;
    font-size: 1.5rem;
    text-align: center;
    letter-spacing: -0.08em;
  }
}

.package-kariya__description {
  font-size: 1.6rem;
  line-height: 1.9;
  text-align: left;
  letter-spacing: -0.09em;
}
@media screen and (max-width: 768px) {
  .package-kariya__description {
    font-size: 1.3rem;
    text-align: center;
  }
}

.waves2 {
  width: 100%;
  height: 250px;
  margin-top: -150px;
  margin-bottom: -7px; /*Fix for safari gap*/
  position: absolute;
  top: -100px;
  left: 0;
}
@media screen and (max-width: 768px) {
  .waves2 {
    height: 100px;
    margin-top: -99px;
    top: 0;
  }
}

/* ---------------------------------------*/
/* product */
/* ---------------------------------------*/
#product {
  background: #fff;
  margin: -100px 0 0;
  padding: 100px 0 calc(220px + 15vw);
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  #product {
    padding: 70px 0 170px;
  }
}

.product-heading {
  width: 30%;
  margin: 0 auto 60px;
}
@media screen and (max-width: 768px) {
  .product-heading {
    width: 61.5%;
    margin: 0 auto 40px;
  }
}

.product-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0 0 80px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .product-content {
    display: block;
    margin: 0 0 40px;
    padding: 40px 0 0;
  }
}

.product-content__image {
  width: 42.6%;
  margin: 0 0 0 70px;
}
@media screen and (max-width: 768px) {
  .product-content__image {
    width: 100%;
    margin: 0 0 55px;
    position: relative;
    right: 1.5%;
  }
}

.product-content__text {
  width: 46%;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .product-content__text {
    width: 100%;
  }
}

.product-heading-02 {
  font-size: 3.6rem;
  line-height: 1.4;
  letter-spacing: -0.05em;
  margin: 0 0 54px;
}
@media screen and (max-width: 768px) {
  .product-heading-02 {
    font-size: 2.1rem;
    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
}

.package-description {
  margin: 0 0 40px !important;
}
@media screen and (max-width: 768px) {
  .package-description {
    margin: 0 !important;
  }
}

@media screen and (max-width: 768px) {
  .p-package-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: distribute;
        justify-content: space-around;
    position: absolute;
    top: 88vw;
    left: 0;
    right: 0;
    margin: auto;
  }
}

.p-package-list__item {
  font-size: 1.8rem;
  line-height: 1.4;
  margin: 0 0 0.5em;
  position: relative;
}
.p-package-list__item small {
  font-size: 66%;
}
@media screen and (max-width: 768px) {
  .p-package-list__item {
    font-size: 1.3rem;
    text-align: center !important;
  }
  .p-package-list__item:nth-child(1) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .p-package-list__item:nth-child(2) {
    left: 4%;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}

.product-button {
  display: inline-block;
  background: #007FDC;
  padding: 25px 40px;
  border-radius: 50px;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .product-button {
    font-size: 1.8rem;
    padding: 16px 25px;
  }
}

.waves3 {
  position: absolute;
  width: 100%;
  height: 200px;
  margin-top: -199px;
  margin-bottom: -7px; /*Fix for safari gap*/
  top: 0;
  left: 0;
}
@media screen and (max-width: 768px) {
  .waves3 {
    height: 100px;
    margin-top: -99px;
  }
}

/* ---------------------------------------*/
/* Q&A */
/* ---------------------------------------*/
#qa {
  background: #F5F5F5;
  margin: -100px 0 0;
  padding: 130px 0 160px;
  position: relative;
  z-index: 2;
}
#qa::before {
  display: block;
  content: "";
  width: 100%;
  height: 13vw;
  background: url(../img/qa_curcle.svg) no-repeat top/cover;
  position: absolute;
  top: -13vw;
  left: 0;
}
@media screen and (max-width: 768px) {
  #qa {
    margin: -50px 0 0;
    padding: 10px 0 87px;
  }
}

.qa-heading {
  width: 15%;
  position: absolute;
  top: -5vw;
  left: 0;
  right: 0;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .qa-heading {
    width: 30%;
    top: 16vw;
  }
}

.qa-lead {
  font-size: 1.8rem;
  padding: 50px 0 80px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .qa-lead {
    font-size: 1.3rem;
    padding: 35vw 0 68px;
  }
}

.qa-list {
  padding: 0 16%;
}
@media screen and (max-width: 768px) {
  .qa-list {
    padding: 0;
  }
}

.qa-list__item {
  padding: 0 6.8%;
  margin: 0 0 160px;
  text-align: left;
  position: relative;
}
.qa-list__item::after {
  display: block;
  content: "";
  width: 100%;
  height: 21px;
  background: url(../img/qa_list_line.png) no-repeat center/cover;
  position: absolute;
  left: 0;
  bottom: -90px;
}
.qa-list__item:last-child {
  margin: 0;
}
.qa-list__item:last-child::after {
  display: none;
}
.qa-list__item dt {
  font-size: 2.8rem;
  line-height: 1.4;
  position: relative;
  padding: 0 0 30px 1.8em;
}
.qa-list__item dt::before {
  content: "Q.";
  font-size: 4.5rem;
  color: #007FDC;
  position: absolute;
  top: -0.4em;
  left: 0;
}
.qa-list__item dd {
  font-size: 1.8rem;
  line-height: 1.66;
  padding: 0 20px 0 2.8em;
  position: relative;
}
.qa-list__item dd::before {
  content: "A.";
  font-size: 2.8rem;
  color: #007FDC;
  position: absolute;
  top: -0.4em;
  left: 20px;
}
@media screen and (max-width: 768px) {
  .qa-list__item {
    padding: 0;
    margin: 0 0 82px;
  }
  .qa-list__item::after {
    display: block;
    content: "";
    width: 100%;
    height: 10px;
    bottom: -46px;
  }
  .qa-list__item dt {
    font-size: 1.8rem;
    padding: 0 0 10px 1.6em;
  }
  .qa-list__item dt::before {
    font-size: 2.6rem;
    top: -0.3em;
  }
  .qa-list__item dd {
    font-size: 1.3rem;
    padding: 0 0 0 2.1em;
    position: relative;
  }
  .qa-list__item dd::before {
    font-size: 1.8rem;
    top: -0.3em;
    left: 10px;
  }
}