/*-------------------------------------------
common
-------------------------------------------*/
html {
  font-size: 62.5%;
  overflow: auto;
}

body {
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体",
    "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ",
    "Meiryo", "verdana", sans-serif;
  font-style: normal;
  font-size: 1.6rem;
  color: #232323;
  letter-spacing: -0.1em;
  line-height: 1.7;
  overflow: hidden;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

video {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

li {
  display: inline-block;
}

.sp {
  display: inline-block;
}

.inner {
  margin: 5% 5%;
}

.button {
  width: 100%;
  height: auto;
  margin: 8% 0;
  /* animation: btn 3s ease infinite; */
}

.bg {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  background-image: url(../img/bg.webp);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/*-------------------------------------------
  fv
  -------------------------------------------*/
.fv-wrapper {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  position: relative;
}

.fv {
  width: 100%;
}

.fv-btn {
  width: 27%;
  top: 5%;
  right: 5%;
  position: absolute;
  z-index: 1;
}

.logo {
  width: 30%;
  top: 3%;
  left: 3%;
  position: absolute;
  z-index: 1;
}

.fv-wrapper {
  position: relative;
  overflow: hidden;
  z-index: 1;
}

/* 共通スタイル */
.fv-wrapper .star {
  position: absolute;
  width: 4px;
  height: 4px;
  background: white;
  border-radius: 50%;
  opacity: 0;
  animation: riseStar 5s linear infinite;
  filter: drop-shadow(0 0 4px white);
}

/* 個別の位置・遅延を指定 */
.fv-wrapper .star:nth-child(1) {
  left: 10%;
  bottom: -10px;
  animation-delay: 0s;
}

.fv-wrapper .star:nth-child(2) {
  left: 30%;
  bottom: -20px;
  animation-delay: 1s;
}

.fv-wrapper .star:nth-child(3) {
  left: 50%;
  bottom: -15px;
  animation-delay: 2s;
}

.fv-wrapper .star:nth-child(4) {
  left: 70%;
  bottom: -25px;
  animation-delay: 3s;
}

.fv-wrapper .star:nth-child(5) {
  left: 85%;
  bottom: -5px;
  animation-delay: 4s;
}

@keyframes riseStar {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translateY(-100vh);
    opacity: 0;
  }
}

/*-------------------------------------------
  sec1
  -------------------------------------------*/
.sec1-wrapper {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  text-align: center;
  z-index: 0;
  overflow: hidden;
}

.sec1-container {
  position: relative;
}

.sec1-img {
  width: 100%;
}

.man1 {
  position: absolute;
  width: 25%;
  left: 43%;
  top: 5%;
  animation: rotate 1.8s ease-in-out infinite alternate-reverse;
}

.man2 {
  position: absolute;
  width: 25%;
  left: 42%;
  bottom: 3%;
  animation: rotate2 1.8s ease-in-out infinite alternate-reverse;
}

.man3 {
  position: absolute;
  width: 30%;
  left: -6%;
  top: 40%;
  animation: rotate3 1.8s ease-in-out infinite alternate-reverse;
}

.sec1-text {
  font-size: 2.7rem;
  text-shadow: 0 0 1px #fff, 0 0 4px #fff, 0 0 8px #fff,
    0 0 12px rgb(255, 255, 255), 0 0 16px rgb(255, 255, 255),
    0 0 20px rgb(255, 255, 255), 0 0 20px rgb(255, 255, 255),
    0 0 20px rgb(255, 255, 255), 0 0 20px rgb(255, 255, 255),
    0 0 20px rgb(255, 255, 255), 0 0 24px rgb(255, 255, 255);
  margin-bottom: 15%;
}

@media screen and (max-width: 768px) {
  .sec1-text {
    font-size: 3.6vw;
  }
}

/*-------------------------------------------
  sec2
  -------------------------------------------*/
.sec2-wrapper {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  text-align: center;
  z-index: 0;
}

.sec2-inner {
  padding: 0 10%;
}

.sec2-container {
  margin-bottom: 8%;
}

.sec2-title {
  width: 60%;
}

.sec2-column {
  display: flex;
}

.column-contents1 {
  width: 40%;
}

.column-contents2 {
  width: 60%;
}

.woman {
  width: 90%;
}

.sec2-text {
  text-align: left;
  font-size: 2.2rem;
  line-height: 1.9;
  margin: 8% 0 0 10%;
  text-shadow: 0 0 1px #fff, 0 0 4px #fff, 0 0 8px #fff,
    0 0 12px rgb(255, 255, 255), 0 0 16px rgb(255, 255, 255),
    0 0 20px rgb(255, 255, 255), 0 0 20px rgb(255, 255, 255),
    0 0 20px rgb(255, 255, 255), 0 0 20px rgb(255, 255, 255),
    0 0 20px rgb(255, 255, 255), 0 0 24px rgb(255, 255, 255);
}

@media screen and (max-width: 768px) {
  .sec2-text {
    font-size: 3vw;
  }
}

/*-------------------------------------------
  sec3
  -------------------------------------------*/
.sec3_wrapper {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  position: relative;
  z-index: 0;
  overflow: hidden;
}

.sec3_title_box {
  text-align: center;
}

.sec3_title {
  width: 50%;
}

.faq {
  width: 100%;
  font-size: 2.5rem;
  margin-bottom: 5%;
}

@media screen and (max-width: 768px) {
  .faq {
    font-size: 3.5vw;
  }
}

.faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  background: #e1c38b;
  color: #fff;
  padding: 5% 2%;
  border-radius: 8px 8px 0px 0px;
  border: #dbdbdb 1px solid;
}

.faq__toggleIcon {
  display: block;
  width: 15px;
  height: 15px;
  position: relative;
}

.faq__toggleIcon::before {
  content: "";
  display: inline-block;
  height: 2px;
  width: 9px;
  background: #fff;
  transform: translateY(50%) rotate(45deg);
  position: absolute;
  top: 50%;
  left: 0;
}

.faq__toggleIcon::after {
  content: "";
  display: inline-block;
  height: 2px;
  width: 9px;
  background: #fff;
  transform: translateY(50%) rotate(-45deg);
  position: absolute;
  top: 50%;
  right: 0;
}

.faq__answer {
  display: none;
  padding: 5% 2%;
  background: #ffffff;
  border-radius: 0px 0px 8px 8px;
  color: #232323;
  border: #dbdbdb 1px solid;
}

.answer {
  padding-left: 2.1em;
  text-indent: -1.5em;
  line-height: 1.7;
}

.faq__toggleIcon {
  transition: transform 0.3s ease-in-out;
}

.faq__question.is-open .faq__toggleIcon {
  transform: rotate(180deg);
}

.faq__answer::first-letter {
  font-weight: bold;
  color: #e1c38b;
}

.sec3-img {
  width: 100%;
}

.button-container2 {
  position: absolute;
  bottom: 3%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  padding: 0 5%;
}

.button2 {
  width: 100%;
  height: auto;
}

/*-------------------------------------------
  footer
  -------------------------------------------*/
.footer-wrapper {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  text-align: center;
  background-color: #232323;
  color: #ffffff;
  line-height: 1.6;
  letter-spacing: 0;
  font-weight: 100;
  padding: 30px 10px 30px;
  position: relative;
}

.footer-contents {
  font-size: 1.8rem;
  margin-bottom: 3%;
}

@media screen and (max-width: 768px) {
  .footer-contents {
    font-size: 2vw;
  }
  .footer-wrapper {
    padding: 3% 5%;
  }
}

/*-------------------------------------------
  
  
  ここからアニメーション
  
  
  -------------------------------------------*/
@keyframes btn {
  0%,
  40%,
  80%,
  100% {
    transform: translateY(5px) translateX(0);
  }
  20%,
  60% {
    transform: translateY(-15px) translateX(0);
  }
}

@keyframes rotate {
  0% {
    transform: rotate(5deg);
  }
  100% {
    transform: rotate(-5deg);
  }
}

@keyframes rotate2 {
  0% {
    transform: rotate(6deg);
  }
  100% {
    transform: rotate(-4deg);
  }
}

@keyframes rotate3 {
  0% {
    transform: rotate(3deg);
  }
  100% {
    transform: rotate(-5deg);
  }
}

/* アニメーション設定 */
.scr-target {
  /* アニメーション開始から終了までの所要時間 */
  animation-duration: 1s;
  /* アニメーションが開始するまでの遅延時間 */
  animation-delay: 0.3s;
  /* アニメーションのループ回数 - infiniteで無限ループ */
  animation-iteration-count: 1;
  /* キーフレームアニメーションで指定したプロパティをアニメーション開始前、終了後に適用するかどうか */
  animation-fill-mode: both;
}
.scr-target[class*="fadeIn"],
.scr-target[class*="zoom"] {
  opacity: 0;
}

/* フェードイン */
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
.anime__fadeIn.is-active {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

/* フェードイン(上から) */
@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
.anime__fadeInDown.is-active {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}

/* フェードイン(下から) */
@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 30%, 0);
    transform: translate3d(0, 30%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 30%, 0);
    transform: translate3d(0, 30%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
.anime__fadeInUp.is-active {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}

/* フェードイン(左から) */
@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
.anime__fadeInLeft.is-active {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}

/* フェードイン(右から) */
@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
.anime__fadeInRight.is-active {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

/* ズームイン */
@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  100% {
    opacity: 1;
  }
}
@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  100% {
    opacity: 1;
  }
}
.anime__zoomIn.is-active {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

/* ズームアウト */
@-webkit-keyframes zoomOut {
  from {
    opacity: 0;
    -webkit-transform: scale3d(1.6, 1.6, 1.6);
    transform: scale3d(1.6, 1.6, 1.6);
  }
  100% {
    opacity: 1;
  }
}
@keyframes zoomOut {
  from {
    opacity: 0;
    -webkit-transform: scale3d(1.6, 1.6, 1.6);
    transform: scale3d(1.6, 1.6, 1.6);
  }
  100% {
    opacity: 1;
  }
}
.anime__zoomOut.is-active {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut;
}

.timing02 {
  animation-delay: 0.2s;
}
.timing03 {
  animation-delay: 0.3s;
}
.timing04 {
  animation-delay: 0.4s;
}
.timing05 {
  animation-delay: 0.5s;
}
.timing06 {
  animation-delay: 0.6s;
}
.timing1 {
  animation-delay: 1s;
}
