/* headings */
.ec-title {
  align-items: center;
  display: flex;
  flex-direction: column;
  font-weight: 700;
  justify-content: center;
}

.ec-title__wrapper--main {
  height: clamp(108px, 6.1px + 31.84vw, 165px);
}

.ec-title__wrapper--sub {
  height: clamp(95px, -3.3px + 30.73vw, 150px);
  width: clamp(225px, -7.4px + 72.63vw, 355px);
}

.ec-title__h1 {
  color: var(--green);
  font-size: var(--clamp-32sp);
  letter-spacing: calc(clamp(1.1px, 0.34vw, 1.7px) * -1);
  line-height: 1.2;
  margin-top: var(--clamp-8sp);
}

.ec-title__h1--sub-text {
  font-size: var(--clamp-12sp);
  margin-bottom: calc(var(--clamp-4sp) * -1);
}

.ec-title__caption--top {
  color: var(--green);
  font-size: var(--clamp-12sp);
  font-weight: 400;
  line-height: 1.2;
}

.ec-title__caption--bottom {
  color: var(--green);
  font-size: var(--clamp-14sp);
  font-weight: 400;
  line-height: 1.2;
  margin-top: var(--clamp-2sp);
}

.ec-title__caption--bottom span {
  font-size: .725em;
}

.ec-title__caption--right {
  color: var(--white);
  font-size: var(--clamp-32sp);
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}

.ec-heading__h2 {
  color: var(--blue);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.ec-heading__h2--std {
  font-size: var(--clamp-24sp);
}

.ec-heading__h2--small {
  font-size: var(--clamp-22sp);
}

@media all and (min-width: 744px) {
  .ec-title {
    flex-direction: row;
    justify-content: space-between;
    height: clamp(128px, -2.4px + 17.53vw, 250px);
    margin: 0 auto;
    width: clamp(478px, -5.2px + 64.94vw, 930px);
  }

  .ec-title__wrapper--main {
    height: auto;
    width: clamp(365px, 6.9px + 48.13vw, 700px);
  }
  
  .ec-title__wrapper--sub {
    height: auto;
    transform: translateY(calc(var(--clamp-10) * -1));
    width: clamp(92px, -2.1px + 12.64vw, 180px);
  }
  .ec-title__h1 {
    font-size: var(--clamp-42);
    letter-spacing: calc(clamp(0.9px, 0.3px + 0.1vw, 1.68px) * -1);
    margin-top: var(--clamp-16);
  }

  .ec-title__h1--sub-text {
    font-size: var(--clamp-f16);
    margin-bottom: calc(var(--clamp-8) * -1);
  }

  .ec-title__caption--top {
    font-size: var(--clamp-24);
  }

  .ec-title__caption--bottom {
    font-size: var(--clamp-24);
    margin-top: var(--clamp-10);
  }

  .ec-title__caption--bottom span {
    font-size: .6em;
  }

  .ec-title__caption--right {
    font-size: var(--clamp-64);
  }

  .ec-heading__h2--std {
    font-size: var(--clamp-32);
  }
  
  .ec-heading__h2--small {
    font-size: var(--clamp-26);
  }
}

/* layout */
.ec-content-container__days {
  margin-top: clamp(62.9px, -0.6px + 19.83vw, 98.4px);
  width: 100%;
}

@media all and (min-width: 744px) {
  .ec-content-container__days {
    display: flex;
    justify-content: space-between;
    margin: clamp(22.4px, 0.4px + 2.96vw, 43px) auto 0;
    width: clamp(724px, 403px + 43.1vw, 1024px);
  }
}

/* feedbacks */
.ec-feedbacks {
  margin-top: var(--clamp-104sp);
}

.ec-feedbacks__container {
  margin: var(--clamp-40sp) auto 0;
  width: clamp(292.4px, -2.8px + 92.23vw, 457.5px);
}

.ec-feedbacks__list--individuals {
  width: 100%;
}

.ec-feedbacks__message {
  align-items: center;
  background-color: var(--ex-light-gray);
  display: flex;
  flex-direction: column;
  font-weight: 700;
  line-height: 1.4;
  margin-top: var(--clamp-40sp);
  padding: var(--clamp-24sp);
  text-align: center;
}

.ec-feedbacks__message::before {
  background: url(../../images/icon/icon-balloon.svg) no-repeat center/contain;
  content: "";
  height: var(--clamp-32sp);
  margin-bottom: var(--clamp-10sp);
  width: var(--clamp-32sp);
}

@media all and (min-width: 744px) {
  .ec-feedbacks {
    margin-top: var(--clamp-104);
  }

  .ec-feedbacks__container {
    margin-top: var(--clamp-40);
    width: 100%;
  }

  .ec-feedbacks__list--individuals {
    width: clamp(257px, 146.9px + 14.8vw, 360px);
  }

  .ec-feedbacks__message {
    margin-top: var(--clamp-40);
    padding: var(--clamp-24);
  }
  
  .ec-feedbacks__message::before {
    height: var(--clamp-32);
    margin-bottom: var(--clamp-10);
    width: var(--clamp-32);
  }
}

/* goal */
.ec-goal {
  margin-top: var(--clamp-104sp);
}

.ec-goal__cta {
  display: flex;
  flex-direction: column;
  gap: var(--clamp-40sp);
  margin: var(--clamp-40sp) auto 0;
  width: clamp(286.5px, -2.6px + 90.34vw, 448.2px);
}

.ec-goal__cta--btn {
  font-size: var(--clamp-26sp);
  font-weight: 700;
  height: var(--clamp-100sp);
  width: 100%;
}

@media all and (min-width: 744px) {
  .ec-goal {
    margin-top: var(--clamp-104);
  }

  .ec-goal__cta {
    flex-direction: row;
    justify-content: center;
    gap: var(--clamp-40);
    margin-top: var(--clamp-40);
    width: auto;
  }

  .ec-goal__cta--btn {
    font-size: var(--clamp-26);
    height: var(--clamp-100);
    width: clamp(240px, 136.3px + 13.94vw, 337px);
  }
}

/* content table */
.ec-content-table {
  margin-top: var(--clamp-104sp);
}

@media all and (min-width: 744px) {
  .ec-content-table {
    margin-top: var(--clamp-104);
  }
}

/* course fee */
.ec-course-fee {
  margin-top: var(--clamp-104sp);
}

@media all and (min-width: 744px) {
  .ec-course-fee {
    margin-top: var(--clamp-104);
  }
}

/* camp schedule */
.ec-camp-schedule {
  margin-top: var(--clamp-104sp);
}

@media all and (min-width: 744px) {
  .ec-camp-schedule {
    margin-top: var(--clamp-104);
  }
}

/** faq */
.ec-faq {
  margin-top: var(--clamp-104sp);
}

.ec-faq__cta {
  margin-top: var(--clamp-40sp);
}

.ec-faq__cta--text {
  color: var(--blue);
  font-size: var(--clamp-22sp);
  font-weight: 700;
  text-align: center;
}

.ec-faq__cta--link {
  height: var(--clamp-100sp);
  font-size: var(--clamp-26sp);
  font-weight: 700;
  margin: var(--clamp-40sp) auto 0;
  width: clamp(251.6px, -2.4px + 79.39vw, 393.7px);
}

@media all and (min-width: 744px) {
  .ec-faq {
    margin-top: var(--clamp-104);
  }

  .ec-faq__cta {
    margin-top: var(--clamp-40);
  }

  .ec-faq__cta--text {
    font-size: var(--clamp-32);
  }

  .ec-faq__cta--link {
    font-size: var(--clamp-26);
    height: var(--clamp-100);
    margin-top: var(--clamp-40);
    width: var(--clamp-298);
  }
}