@charset "UTF-8";

html {
  overflow-x: hidden;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(10px, 2.66vw, 30px);
  line-height: 1.6;
  color: #2c2c2c;
}

main {
  position: relative;
  background-image: url(../images/white_bk@2x.jpg);
  background-size: contain;
  overflow-x: hidden;
}

a {
  display: inline-block;
  transition: .3s;
}

img {
  width: 100%;
}

.container {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 4vw;
}


@media screen and (min-width:1200px) {
  body{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
  }
}

/* 金色のあしらい線 */
.common-line {
  position: absolute;
  top: -.3%;
  left: 0;
  width: 30%;
}

.section06-common-line {
  z-index: 2;
  top: min(4.4vw, 50px);
}

.reverse-common-line {
  top: -.6%;
  right: 0;
  left: auto;
  transform: scale(-1, 1);
}

/*-------- CTAボタン --------*/
.cta {
  position: relative;
  padding: 0 30px;
  text-align: center;
}

.cta-head {
  font-size: clamp(12px, 2.26vw, 17px);
  position: absolute;
  z-index: 2;
  top: -13px;
  left: 50%;
  display: inline-block;
  width: min(46.3vw, 347px);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  border: 3px solid #06c655;
  border-radius: 5px;
  background-color: #fff;
}

.cta-body {
  font-size: min(4.8vw, 36px);
  line-height: 1;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 630px;
  margin: 0 auto;
  padding: min(4.13vw, 25px) 0 min(2.26vw, 18px);
  color: #fff;
  border-radius: 5px;
  background-image: -moz-linear-gradient(90deg, rgb(0, 201, 0) 0%, rgb(3, 200, 43) 1%, rgb(6, 199, 85) 19%, rgb(6, 199, 85) 38%, rgb(6, 199, 85) 58%, rgb(6, 199, 85) 67%, rgb(3, 189, 43) 85%, rgb(0, 179, 0) 95%);
  background-image: -webkit-linear-gradient(90deg, rgb(0, 201, 0) 0%, rgb(3, 200, 43) 1%, rgb(6, 199, 85) 19%, rgb(6, 199, 85) 38%, rgb(6, 199, 85) 58%, rgb(6, 199, 85) 67%, rgb(3, 189, 43) 85%, rgb(0, 179, 0) 95%);
  background-image: -ms-linear-gradient(90deg, rgb(0, 201, 0) 0%, rgb(3, 200, 43) 1%, rgb(6, 199, 85) 19%, rgb(6, 199, 85) 38%, rgb(6, 199, 85) 58%, rgb(6, 199, 85) 67%, rgb(3, 189, 43) 85%, rgb(0, 179, 0) 95%);
  box-shadow: 4px 4px 10px 0 #8da990;
  animation: shake-x 2s linear infinite;
}

/* 通常時のアニメーション（横揺れ） */
@keyframes shake-x {
  0% {
    transform: translateX(2px);
  }
  10% {
    transform: translateX(-2px);
  }
  20% {
    transform: translateX(2px);
  }
  30% {
    transform: translateX(-2px);
  }
  40% {
    transform: translateX(2px);
  }
  50% {
    transform: translateX(-2px);
  }
  60% {
    transform: translateX(0);
  }
}
@media screen and (min-width:1200px) {
  .cta-body:hover{
    animation: shake-y 2s linear infinite;
  }
}

/* ホバー時のアニメーション（縦揺れ） */
@keyframes shake-y {
  0% {
    transform: translateY(0);
  }
  10% {
    transform: translateY(-5px);
  }
  20% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-3px);
  }
  40% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-2px);
  }
  60% {
    transform: translateY(0);
  }
  70% {
    transform: translateY(-1px);
  }
  80% {
    transform: translateY(0);
  }
  90% {
    transform: translateY(-1px);
  }
  100% {
    transform: translateY(0);
  }
}

.cta-icon {
  width: 8.4%;
  margin-right: 2.5%;
  vertical-align: middle;
}

@media screen and (min-width:1200px) {
  .cta-head{
    font-size: clamp(12px, 2.26vw, 24px);
    width: min(46.3vw, 600px);
  }
  
  .cta-body{
    font-size: min(4.8vw, 42px);
    max-width: 800px;
    padding: min(4.13vw, 40px) 0 min(2.26vw, 18px);
  }
}

/*-------- KV --------*/
.kv {
  position: relative;
  padding-bottom: 100px;
  text-align: center;
  background-color: #ffffff;
}

.kv-text {
  position: absolute;
  z-index: 2;
  top: min(40.7vw,490px);
  left: 50%;
  width: 100%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
}

.kv-item {
  position: relative;
  z-index: 2;
  margin-top: min(10.85vw,125px);
  padding: 0 1.8vw;
}

/*-------- section01 --------*/
.section01 {
  position: relative;
  z-index: 0;
  margin-top: max(calc(-90.6vw - 100px),-1240px);
}

/*-------- section02 --------*/
.section02 {
  margin-top: -4vw;
  padding: 4vw 0 8.53vw;
}

.benefit-title {
  width: 63.3%;
  margin: 0 auto 2.93vw;
}

.benefit-item {
  margin-bottom: 2.66vw;
}

.benefit-item:last-of-type {
  margin-bottom: 6.13vw;
}

/*-------- section03 --------*/
.section03 {
  padding-bottom: 2.8vw;
}

.section03-title {
  padding: 4.26vw 0;
  text-align: center;
  background-color: #adacb1;
}

.section03-title-img {
  width: 84%;
  max-width: 800px;
}

.section03-inner {
  position: relative;
}

.section03-text-wrapper {
  position: absolute;
  top: 11.6vw;
  left: 50%;
  width: 100%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  text-align: center;
}

.section03-text-item {
  line-height: 1;
  margin-bottom: min(6.93vw,64px);
  color: #fafafa;
}

.section03-text-item:last-of-type {
  margin-bottom: 0;
}

.section03-text-yellow {
  position: relative;
  color: #fbed59;
}

.section03-text-yellow:before{
  position: absolute;
  z-index: -1;
  bottom: .3vw;
  left: 0;
  width: 100%;
  height: .53vw;
  content: '';
  background-color: #e74c3c;
}

.section03-middle {
  height: 18.93vw;
  padding-top: 2.93vw;
  text-align: center;
  color: #fafafa;
  background-color: #adacb1;
  clip-path: ellipse(68% 100% at 50% 0%);
}

.section03-middle-sub-title {
  position: relative;
  z-index: 2;
  width: 62.1%;
  margin: -5.1vw auto 2.8vw;
}

.section03-bottom-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7.3%;
}

.section03-bottom-item {
  width: 42.2%;
}

/*-------- section04 --------*/
.section04 {
  position: relative;
  z-index: 2;
  padding-top: 6.53vw;
}

.section04-inner {
  position: relative;
  z-index: 2;
}

.section04-title {
  width: 75.3%;
  margin: 0 auto 7.46vw;
}

.section04-item:nth-of-type(odd) {
  margin-right: 4%;
}

.section04-item:nth-of-type(even) {
  margin-left: 4%;
}

.section04-bg {
  position: absolute;
  z-index: 0;
  top: 0;
  height: 100%;
}


/*-------- section05 --------*/
.section05 {
  position: relative;
  z-index: 0;
  padding-bottom: min(4.53vw, 40px);
  text-align: center;
}

.section05-inner {
  position: relative;
  z-index: 1;
  padding: 4.6vw 2vw 0;
}

.section05-title {
  width: 60%;
  margin: 0 auto min(8.13vw, 70px);
}

.section05-intro {
  position: relative;
  padding-bottom: 5.6vw;
}

.section05-list-img {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 17%;
}

.section05-list {
  font-size: clamp(12px, 4vw, 35px);
  line-height: 1;
  position: relative;
  z-index: 1;
  margin-bottom: min(6.4vw, 58px);
  padding: 3.6vw 3.2vw 2.6vw;
  text-align: left;
  border: 1px solid #a5914a;
  border-radius: 5px;
  background-color: #fff;
}

.section05-list-item {
  margin-bottom: min(3.46vw, 30px);
}

.section05-list-item:last-of-type {
  margin-bottom: 0;
}

.section05-bottom-text {
  width: 87%;
  margin: 0 auto;
}

.under-line-red {
  position: relative;
  display: inline-block;
}

.under-line-red:before {
  position: absolute;
  z-index: -1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: min(.53vw, 4px);
  content: '';
  background-color: #e74c3c;
}

.text-red {
  color: #e74c3c;
}

.section05-bg {
  position: absolute;
  bottom: 0;
  left: 0;
  max-height: 800px;
}

/*-------- section06 --------*/
.section06 {
  position: relative;
  padding: 2.8vw 0 2.4vw;
}

.section06-inner {
  position: relative;
  z-index: 1;
}

.section06-list-wrapper {
  padding: min(5vw, 50px) min(6.5vw, 50px) min(5.3vw, 50px);
  border-radius: 5px;
  background-color: #fff;
}

.section06-title {
  line-height: 0;
  width: 89%;
  margin-bottom: min(5.86vw, 60px);
}

.section06-list-item {
  font-size: clamp(10px, 2.66vw, 26px);
  line-height: 1;

  display: flex;
  align-items: center;
  margin-bottom: min(4vw, 40px);
}

.section06-list-item:last-of-type {
  margin-bottom: 0;
}

.check-box {
  width: 1em;
  margin-right: 1.2vw;
}

.section06-chart {
  position: relative;
  z-index: 1;
  max-width: 1000px;
  margin: 0 auto;
  padding-bottom: 2.4vw;
}

.section06-bg {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
}

/*-------- section07 --------*/
.section07 {
  padding: 3.86vw 0 4.66vw;
}

.section07-title {
  margin-bottom: 6.4vw;
  padding: 2.4vw 0;
  text-align: center;
  border-top: .26vw solid #a5914a;
  border-bottom: .26vw solid #a5914a;
}

.section07-title-img {
  width: 85%;
  max-width: 1000px;
}

.section07-voice-card {
  margin-bottom: 4.13vw;
  padding: 2.8vw 4.26vw 4.26vw;
  border: .26vw solid #d2dcf1;
  border-radius: 2px;
}

.section07-voice-card:last-child {
  margin-bottom: 6vw;
}

.section07-voice-img {
  width: 90%;
  margin: 0 auto 3.33vw;
}

/*-------- section08 --------*/
.section08 {
  padding: 4.53vw 0 8vw;
  background-color: #fff;
}

.section08-title {
  width: 78.6%;
  max-width: 1000px;
  margin: 0 auto 7.19vw;
}

.section08-content {
  position: relative;
  max-width: 1000px;
  margin-bottom: 5.3vw;
  margin-left: 4vw;
}

.section08-content:last-of-type {
  margin-bottom: 8vw;
}

.section08-content-img {
  margin-bottom: 1.2vw;
}

.section08-content-text {
  position: absolute;
  top: 36%;
  left: 3.6vw;
}

.section08-content-text-item {
  font-size: clamp(12px, 4vw, 40px);
  line-height: 1.43em;

  margin-bottom: 1.6vw;
}

.section08-content-text-inner {
  display: inline-block;
  padding-right: 2.13vw;
  background-color: #fbed59;
}

.section08-content-two-line {
  line-height: 1.25em;
}

.section08-content-bottom-text {
  width: 83%;
  margin: 0 auto;
}

.section08-movie-title {
  font-size: clamp(12px, 4vw, 40px);

  margin-bottom: 5.46vw;
  text-align: center;
}

.section08-movie-thumbnail {
  width: 73%;
  max-width: 800px;
  margin: 0 auto;
}

@media screen and (min-width:1030px) {
  .section08-content {
    margin: 0 auto 4vw;
  }
}

/*-------- section09 --------*/
.section09 {
  position: relative;
  padding: 2vw 0 5.6vw;
  background-color: #fff;
  background-image: url(../images/section9-bg@2x.png);
  background-repeat: no-repeat;
  background-size: cover;
}

.section09-title {
  width: 16.4%;
  margin: 0 auto;
}

.section09-teacher {
  width: 70%;
  max-width: 800px;
  margin: 0 auto 2.8vw;
}

.section08-text {
  font-size: clamp(10px, 2.4vw, 26px);
  width: 84%;
  max-width: 1000px;
  margin: 0 auto;
}

.text-orange {
  color: #f39c12;
}

/*-------- section10 --------*/
.section10 {
  position: relative;
  padding: 2.93vw 0 4.66vw;
}

.section10-title {
  width: 32.5%;
  max-width: 450px;
  margin: 0 auto 6.8vw;
}

.section10-step {
  display: flex;
  justify-content: space-between;
  margin-bottom: 7.73vw;
  gap: 3.73vw;
}

/*-------- section11 --------*/
.section11 {
  padding: 3.6vw 0 3.86vw;
  background-image: url(../images/section11-bg@3x.png);
  background-repeat: no-repeat;
  background-size: cover;
}

.section11-title {
  width: 9.3%;
  margin: 0 auto 4.26vw;
}

.section11-faq-list {
  margin-bottom: 4.4vw;
  border: .26vw solid #fff;
  border-radius: 5px;
}

.section11-faq-list:last-of-type {
  margin-bottom: 0;
}

.section11-faq-title {
  font-size: clamp(12px, 4vw, 34px);
  font-weight: normal;

  display: flex;
  align-items: center;
  padding: .66em 1.06em .33em;
  border-radius: 5px;
  background-color: #fff;
  gap: .93em;
}

.section11-faq-icon {
  width: 1em;
}

.section11-faq-text {
  font-size: clamp(10px, 2.66vw, 26px);

  position: relative;
  z-index: 2;
  padding: 3.46vw 3.8vw 2.4vw;
}

.section11-faq-title {
  position: relative;
}

.text-bg-yellow {
  z-index: -1;
  border-radius: 5px;
  background-color: #fbed59;
}

/*-------- section12 --------*/
.section12 {
  padding-bottom: 6.13vw;
  background-color: #fff;
}

.section012-title {
  margin-bottom: 5.33vw;
  padding: 4.13vw 0 3.73vw;
  text-align: center;
  border-top: .26vw solid #a5914a;
  border-bottom: .26vw solid #a5914a;
}

.section12-title-img {
  width: 56.6%;
  max-width: 700px;
}

.section12-img {
  width: 77.2%;
  max-width: 700px;
  margin: 0 auto 3.33vw;
}

.section11-massage {
  margin-bottom: 4.66vw;
}

/*-------- フッター --------*/
.footer {
  font-size: clamp(12px, 2.4vw, 20px);

  margin-bottom: 3.73vw;
  text-align: center;
}