.sp-only {
  display: none;
}

.site-container h2 {
  font-size: calc(var(--s-val) * 4);
}

.site-container .text-pink {
  color: var(--pink-color);
  font-weight: bold;
}

.kv_area {
  position: relative;
  margin-bottom: calc(var(--s-val) * 10);
}

.kv_area .contact_btn {
  position: absolute;
  background-color: var(--pink-color);
  font-size: calc(var(--s-val) * 2);
  color: #fff;
  bottom: 9rem;
  left: 12%;
  padding: 1rem 2rem;
  border-radius: 100px;
  display: flex;
  align-items: center;
  gap: calc(var(--s-val) * 1);
  width: 25%;
  justify-content: center;
}

.kv_area a.contact_btn span {
  width: calc(var(--s-val) * 3);
  height: calc(var(--s-val) * 3);
  background-image: url(../img/contact-icon.png);
  background-size: contain;
}

/*===common===*/

.site-container h2 {
  font-size: calc(var(--s-val) * 4);
  line-height: 1;
  text-align: center;
  margin-bottom: 1rem;
}

.sab_title {
  margin-bottom: 5rem;
}

.english-text {
  font-size: calc(var(--s-val) * 1.8);
  color: var(--blue-color);
  display: block;
  text-align: center;
}

.text-border {
  background: linear-gradient(transparent 50%, #fcd364 50%);
  font-weight: bold;
}

/*===overview===*/

.overview_area {
  margin: 0 auto 6rem;
  max-width: 610px;
  background-image: url(../img/overview-bg.png);
  background-repeat: no-repeat;
  background-position: left 0 bottom 0;
  background-size: 100%;
  width: 60%;
}

.overview_area .sab_title {
  margin-bottom: 2rem;
}

.overview_box {
  text-align: center;
  position: relative;
  max-width: 580px;
  margin: 0 auto;
  border: 1px solid;
  padding: 4rem 0;
}

h2.overview_title {
  width: 50%;
  margin: -5rem auto 0;
  background-color: #fff;
}

.overview_area figure {
  position: absolute;
  bottom: 0;
  right: -7rem;
  width: 30%;
}

.overview_detail p {
  font-size: calc(var(--s-val) * 2);
}

/*===merit===*/

.merit_area {
  background-image: url(../img/merit-bg.png);
  background-size: cover;
  background-repeat: no-repeat;
  padding: 6rem 0;
}

.merit_content_wrapper {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: calc(var(--s-val) * 2);
  width: 80%;
}

.merit_content {
  background-color: #fff;
  width: 100%;
  text-align: center;
  padding: 3rem 0;
  border: 1px solid;
  border-radius: 10px;
}

.merit-icon {
  width: 30%;
  margin: 0 auto 1rem;
  height: calc(var(--s-val) * 7);
}

.merit_content {
  font-size: calc(var(--s-val) * 1.6);
}

/*===worres===*/

.worres_area {
  padding: 5rem 0;
}

.worres_area .text-pink {
  font-size: calc(var(--s-val) * 5);
}

.worres_content-wrapper {
  height: 52vh;
  min-height: 570px;
  max-height: 570px;
  max-width: 810px;
  width: 80%;
  margin: 0 auto;
  position: relative;
}

.worres_content-wrapper::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 53%;
  transform: translateX(-50%);
  background-image: url(../img/worries.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: bottom 0 left 50%;
  width: 25%;
  max-width: 200px;
  height: 100%;
}

.worres_content {
  position: absolute;
  font-size: calc(var(--s-val) * 1.6);
  text-align: center;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top 1% left 50%;
  padding: 4rem 0rem 4.5rem;
  width: 15rem;
  line-height: 1.5;
}

.worres_content:nth-child(1) {
  top: 4rem;
  left: 1rem;
}

.worres_content:nth-child(2) {
  top: 18rem;
  left: 3rem;
}

.worres_content:nth-child(3) {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.worres_content:nth-child(4) {
  top: 2rem;
  right: 1rem;
}

.worres_content:nth-child(5) {
  top: 18rem;
  right: 2rem;
}

.worres_content:nth-child(1),
.worres_content:nth-child(2) {
  background-image: url(../img/worries-bg_left.png);
}

.worres_content:nth-child(3) {
  background-image: url(../img/worries-bg_center.png);
}

.worres_content:nth-child(4),
.worres_content:nth-child(5) {
  background-image: url(../img/worries-bg_right.png);
}

/*===reason===*/

.reason_area {
  background-image: url(../img/ami-bg.png);
  background-color: var(--blue-bg-color);
  padding: 10rem 0;
  position: relative;
}

.reason_area::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../img/triangle-deco.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top 0 left 50%;
  width: 10%;
  height: calc(var(--s-val) * 5);
}

.reason_area ul {
  display: flex;
  gap: calc(var(--s-val) * 6) calc(var(--s-val) * 3);
  flex-wrap: wrap;
  max-width: 1040px;
  margin: 0 auto;
  justify-content: center;
}

.reason_area li {
  width: calc(33.33% - calc(var(--s-val) * 2));
  position: relative;
  box-shadow: -3px 4px 5px -1px rgba(0, 0, 0, 0.1);
}

.reason_text {
  text-align: center;
  background: #fff;
  border-radius: 0 0 10px 10px;
  padding: 1.5rem 0;
  font-weight: 600;
  font-size: calc(var(--s-val) * 2.4);
}

p.reason_No {
  position: absolute;
  top: -2rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--pink-color);
  border-radius: 100px;
  width: calc(var(--s-val) * 6.4);
  height: calc(var(--s-val) * 6.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(var(--s-val) * 3.5);
  font-weight: bold;
  color: #fff;
}

/*===contact===*/

.contact-area {
  text-align: center;
  padding: 4rem 0;
  background-image: url(../img/contact-bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
}

.contact-area .contact_title {
  font-size: calc(var(--s-val) * 3.5);
  margin-bottom: 2rem;
  color: #fff;
  font-weight: 600;
}

.contact-area a.contact_btn {
  background-color: var(--pink-color);
  border-radius: 100px;
  color: #fff;
  padding: 0.5rem 0rem;
  font-size: calc(var(--s-val) * 3);
  display: flex;
  justify-content: center;
  margin: 0 auto;
  width: 35%;
  gap: calc(var(--s-val) * 1);
  align-items: center;
}

.course_content dl dd:nth-child(2) {
  font-size: calc(var(--s-val) * 1.4);
}

.contact-area a.contact_btn span {
  width: calc(var(--s-val) * 3);
  height: calc(var(--s-val) * 3);
  background-image: url(../img/contact-icon.png);
  background-size: contain;
}

/*===price===*/

.price-area {
  background-color: #f6f6f6;
  padding: 6rem 0;
}

.price_content {
  width: 30%;
  margin: 0 auto 1rem;
}

.price-annotation {
  font-size: calc(var(--s-val) * 2);
  font-weight: bold;
  line-height: 1;
  text-align: center;
}

/*===course_area===*/

.course_area {
  max-width: 1200px;
  width: 80%;
  margin: 0 auto;
  padding: 6rem 0;
}

.course_content_wrapper {
  display: flex;
  gap: calc(var(--s-val) * 2);
}

.course_content {
  width: 100%;
  box-shadow: -2px 5px 5px 0px rgba(0, 0, 0, 0.1);
  background: #fff;
}

.course_title {
  text-align: center;
  color: #fff;
  padding: 1.5rem 0;
  font-size: calc(var(--s-val) * 2.5);
  line-height: 1.5;
  margin-bottom: 3rem;
}

.course_title span {
  font-size: calc(var(--s-val) * 1.6);
  display: block;
}

.course_content:nth-child(1) {
  border: 2px solid #1ca400;
}

.course_content:nth-child(2) {
  border: 2px solid #e73072;
}

.course_content:nth-child(3) {
  border: 2px solid #1b3f8b;
}

.course_content:nth-child(1) .course_title {
  background-color: #1ca400;
}

.course_content:nth-child(2) .course_title {
  background-color: #e73072;
}

.course_content:nth-child(3) .course_title {
  background-color: #1b3f8b;
}

.course_content .course-icon {
  margin: 0 auto 1rem;
  height: 60px;
  display: flex;
  align-items: center;
}

.course_content:nth-child(1) .course-icon {
  width: 15%;
}

.course_content:nth-child(2) .course-icon {
  width: 18%;
}

.course_content:nth-child(3) .course-icon {
  width: 22%;
}

.course_content dl {
  margin-bottom: 2rem;
}

.course_content dt {
  text-align: center;
  font-size: calc(var(--s-val) * 2);
  font-weight: 600;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 80%;
  margin: 0 auto 1rem;
}

.course_content dt::before,
.course_content dt::after {
  content: "";
  width: 38%;
  height: 2px;
  display: block;
}

.course_content:nth-child(1) dt::before,
.course_content:nth-child(1) dt::after {
  background-color: #1ca400;
}

.course_content:nth-child(2) dt::before,
.course_content:nth-child(2) dt::after {
  background-color: #e73072;
}

.course_content:nth-child(3) dt::before,
.course_content:nth-child(3) dt::after {
  background-color: #1b3f8b;
}

.course_content:nth-child(1) dt {
  color: #1ca400;
}

.course_content:nth-child(2) dt {
  color: #e73072;
}

.course_content:nth-child(3) dt {
  color: #1b3f8b;
}

.course_content dl dd:nth-child(2) {
  text-align: center;
  margin-bottom: 1rem;
}

.course_content dl dd:nth-child(4) {
  display: flex;
  justify-content: center;
}

/*table*/

.table-area {
  padding: 2rem 0 7rem;
  width: 80%;
  margin: 0 auto;
}

.table-area .sab_title {
  margin-bottom: 4rem;
}

.table-area .size1 {
  font-size: 0.8em;
}

.price-table {
  width: 100%;
  max-width: 900px;
  margin: 0 auto 0.5rem;
  border-collapse: collapse;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  overflow: hidden;
  background-color: white;
}

.table-header-row th {
  background-color: #1b3f8b;
  color: white;
  font-size: calc(var(--s-val) * 1.8);
  font-weight: 700;
  padding: 1rem 0.5rem;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.table-header-row th:last-child {
  border-right: none;
}

.table-data-row td {
  font-size: calc(var(--s-val) * 2);
  font-weight: 700;
  padding: 1.25rem 0.5rem;
  text-align: center;
  border-top: 1px solid #d1d5db;
  border-right: 1px solid #d1d5db;
  vertical-align: middle;
}
.table-data-row td:last-child {
  border-right: none;
}

.price-cell-main {
  color: var(--pink-color);
  white-space: nowrap;
  font-size: calc(var(--s-val) * 2.4);
}
.price-cell-tax {
  font-size: 0.7em;
  font-weight: 500;
  display: inline-block;
}

.table-note {
  text-align: right;
  max-width: 900px;
  margin: 0 auto;
  font-weight: bold;
  font-size: calc(var(--s-val) * 1.6);
}

@media (max-width: 768px) {
  .sp-only {
    display: block;
  }

  .pc-only {
    display: none;
  }

  .price-table {
    line-height: 1.5;
  }

  .table-area {
    padding: 0 0 5rem;
  }

  .table-area .sab_title {
    margin-bottom: 2rem;
  }

  .price-table {
    border-radius: 8px;
  }

  .price-cell-main {
    font-size: calc(var(--s-val) * 1.8);
  }

  .table-header-row th {
    font-size: calc(var(--s-val) * 1.4);
  }

  .table-data-row td {
    font-size: calc(var(--s-val) * 1.5);
  }

  .table-data-row td:last-child {
    line-height: 1.2;
  }

  .table-note {
    font-size: calc(var(--s-val) * 1.4);
  }
}

/*===SKILL===*/

.skill_area {
  background-color: #f6f6f6;
  padding: 6rem 0;
}

.skill_content-wrapper {
  display: flex;
  max-width: 820px;
  width: 80%;
  margin: 0 auto;
  gap: calc(var(--s-val) * 2);
  flex-wrap: wrap;
}

.skill_content {
  width: calc(33.33% - calc(var(--s-val) * 1.333));
  background: #fff;
  padding: 2rem 0;
}

.skill_icon {
  width: 20%;
  height: calc(var(--s-val) * 8);
  margin: 0 auto;
  display: flex;
  align-items: center;
}

.skill-text {
  text-align: center;
  line-height: 1.5;
  font-size: calc(var(--s-val) * 1.6);
}

.skill-text span {
  font-size: calc(var(--s-val) * 1.3);
}

/*===FLOW===*/

.flow_area {
  margin-bottom: 10rem;
}

.flow_area h2 {
  margin-top: -1.5rem;
}

.flow_list {
  max-width: 760px;
  margin: 0 auto;
  width: 80%;
}

.flow_area li {
  position: relative;
  background-color: #ffee92;
  display: flex;
  align-items: center;
  margin-bottom: 2.5rem;
  gap: 5rem;
  padding: 1rem 2rem;
}

.flow_area li::before {
  position: absolute;
  content: "";
  background-image: url(../img/flow-arrow.png);
  background-size: contain;
  background-repeat: no-repeat;
  bottom: calc(var(--s-val) * -5);
  left: 50%;
  transform: translateX(-50%);
  width: calc(var(--s-val) * 5);
  height: calc(var(--s-val) * 5);
  z-index: 0;
}

.flow_area .last::before {
  display: none;
}

.flow_No {
  font-size: calc(var(--s-val) * 3);
  font-weight: 600;
  font-family: var(--font-roboto);
}

.flow-text {
  font-size: calc(var(--s-val) * 1.6);
}

/*===message===*/

.message_area {
  padding: 6rem 0 5rem;
  background-color: #f6f6f6;
}

.message_area h2 {
  margin-bottom: 8rem;
}

.message_content {
  display: flex;
  max-width: 1060px;
  margin: 0 auto;
  gap: calc(var(--s-val) * 6);
  padding-left: 5%;
}

.message_detail {
  width: 60%;
  font-size: calc(var(--s-val) * 1.4);
  text-align: left;
}

.message_detail span {
  display: block;
}

.message_text-box {
  width: 40%;
  font-weight: bold;
}

.message_text-box p {
  font-size: calc(var(--s-val) * 1.6);
  text-align: left;
}

.message-photo {
  margin-bottom: 2rem;
}

/*===company===*/

.company_area {
  padding: 6rem 0;
}

.company_area h2 {
  margin-bottom: 3rem;
}

.company_title-detail {
  text-align: center;
}

.company_list {
  max-width: 860px;
  width: 80%;
  margin: 0 auto;
  background-color: #f7f7f7;
}

.company_title-detail {
  margin-bottom: 3rem;
  font-size: calc(var(--s-val) * 1.8);
}

.company_list li {
  display: flex;
  border: 1px solid #dddddd;
  align-items: center;
}

.company_list li:last-child {
  border-bottom: 1px solid #dddddd;
}

.company_list-title {
  display: flex;
  border-bottom: 0;
  width: 40%;
  font-size: calc(var(--s-val) * 2);
  font-weight: bold;
  padding: 0 0 0 5%;
}

.company_list-text {
  width: 60%;
  padding: 1rem 0 1rem 6%;
  background-color: #fff;
  font-size: calc(var(--s-val) * 1.6);
  text-align: left;
}

.company_list li:nth-child(5) {
  line-height: 2.5;
}

.company_list li:nth-child(5) .company_list-text {
  padding: 2rem 0 2rem 5%;
}

.company_list-text a {
  color: #000;
  border-bottom: 1px solid #000;
}

@media screen and (max-width: 768px) {
  .site-container h2 {
    font-size: calc(var(--s-val) * 3);
    line-height: 1.3;
    margin: 0 auto 0;
  }

  .kv_area .contact_btn {
    bottom: 2rem;
    left: 12%;
    padding: 0.5rem 2rem;
    width: 80%;
    justify-content: center;
  }

  .overview_area figure {
    bottom: auto;
    top: 3rem;
    right: 0rem;
  }

  .sab_title {
    margin-bottom: 2rem;
  }

  .kv_area .contact-btn {
    font-size: calc(var(--s-val) * 2);
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.5rem 4rem;
    width: 90%;
  }

  /*===overview===*/

  .overview_box {
    padding: 5rem 0 3rem;
  }

  .overview_area {
    margin: 0 auto 5rem;
    width: 90%;
  }

  .overview_box {
    padding: 3rem 0 4rem;
  }

  .overview_detail p {
    font-size: calc(var(--s-val) * 1.6);
  }

  /*===merit===*/

  .merit_content_wrapper {
    flex-direction: column;
  }

  .merit_area {
    padding: 5rem 0;
  }

  /*===worres===*/

  .worres_area {
    padding: 5rem 0 2rem;
  }

  .worres_area .text-pink {
    font-size: calc(var(--s-val) * 4);
  }

  .worres_content-wrapper {
    height: 90vw;
    max-height: 580px;
    max-width: 810px;
    width: 100%;
    min-height: auto;
  }

  .worres_content-wrapper::before {
    background-position: bottom 15% left 50%;
    width: 25%;
    left: 50%;
  }

  .worres_content {
    font-size: calc(var(--s-val) * 1);
    padding: calc(var(--s-val) * 3) 0rem calc(var(--s-val) * 3);
    width: calc(var(--s-val) * 13);
  }

  .worres_content:nth-child(1) {
    top: 25%;
  }

  .worres_content:nth-child(2) {
    top: 60%;
    left: 0;
  }

  .worres_content:nth-child(3) {
    top: 0;
    width: 13rem;
    padding: 2rem 0rem 2.6rem;
  }

  .worres_content:nth-child(4) {
    top: 23%;
  }

  .worres_content:nth-child(5) {
    top: 58%;
    right: 0;
  }

  /*===reason===*/

  .reason_area ul {
    flex-direction: column;
    align-items: center;
  }

  .reason_area li {
    width: 80%;
  }

  .reason_area::before {
    width: 50%;
    height: calc(var(--s-val) * 5);
  }

  p.reason_No {
    width: calc(var(--s-val) * 6);
    height: calc(var(--s-val) * 6);
    font-size: calc(var(--s-val) * 3);
  }

  .reason_area .sab_title {
    margin-bottom: 4rem;
  }

  .reason_text {
    font-size: calc(var(--s-val) * 2);
  }

  .reason_area {
    padding: 5rem 0;
  }

  .contact-area a.contact_btn {
    width: 80%;
    font-size: calc(var(--s-val) * 2);
  }

  /*===contact===*/

  .contact-area {
    padding: 2rem 0;
  }

  .contact-area a.contact_btn span {
    width: calc(var(--s-val) * 2);
    height: calc(var(--s-val) * 2);
  }

  .contact-area .contact_title {
    font-size: calc(var(--s-val) * 2.5);
  }

  /*===price===*/

  .price-area {
    padding: 5rem 0;
  }

  .price_content {
    width: 70%;
  }

  .price-annotation {
    font-size: calc(var(--s-val) * 1.6);
  }

  /*===course===*/

  .course_area {
    padding: 5rem 0;
  }

  .course_content_wrapper {
    gap: calc(var(--s-val) * 2);
    flex-direction: column;
  }

  .course_content dt {
    width: 100%;
  }

  .course_content dt::before,
  .course_content dt::after {
    width: 30%;
  }

  .course_content .course-icon {
    height: calc(var(--s-val) * 3);
  }

  .course_title {
    font-size: calc(var(--s-val) * 2.2);
  }

  .course_content dl dd:nth-child(4) {
    width: 90%;
    margin: 0 auto;
    font-size: calc(var(--s-val) * 1.4);
  }

  /*===skill===*/

  .skill_area {
    padding: 5rem 0;
  }

  .skill_content-wrapper {
    flex-direction: column;
  }

  .skill_content {
    width: 100%;
  }

  /*===flow===*/

  .flow_area h2 {
    margin: -1rem auto 0;
  }

  .flow_area li {
    margin-bottom: calc(var(--s-val) * 3);
    gap: 0rem;
    padding: 1rem;
    flex-direction: column;
  }

  .flow_No {
    font-size: calc(var(--s-val) * 2.5);
  }

  .flow-text {
    font-size: calc(var(--s-val) * 1.4);
  }

  .flow_area {
    margin-bottom: 5rem;
  }

  /*===message===*/

  .message_area {
    padding: 5rem 0;
  }

  .message_content {
    padding-left: 0;
    width: 80%;
    flex-direction: column;
    gap: calc(var(--s-val) * 3);
  }

  .message_text-box,
  .message_detail {
    width: 100%;
  }

  .message_area h2 {
    margin-bottom: 4rem;
  }

  .message-photo {
    margin-bottom: 1rem;
  }

  /*===company===*/

  .company_area {
    padding: 5rem 0;
  }

  .company_area h2 {
    margin-bottom: 3rem;
  }

  .company_title-detail {
    margin-bottom: 2rem;
    font-size: calc(var(--s-val) * 1.6);
  }

  .company_list li {
    flex-direction: column;
  }

  .company_list-text {
    width: 100%;
  }

  .company_list-title {
    width: 100%;
    padding: 2% 0 2% 5%;
    font-size: calc(var(--s-val) * 1.8);
  }
}
