/* ===========================================================
  フロントページ
=============================================================*/

/* イーネットスクールとは？ */
.fp-about {
  display: flex;
  align-items: center;
  gap: 40px;
}

.fp-about__main {
  flex: 2;
}

.fp-about__side {
  flex: 1;
}

.fp-about__img {
  display: block;
  width: 100%;
  max-width: 360px;
  height: auto;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

@media only screen and (max-width: 767.98px) {
  .fp-about {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* 個人別学習支援・療育カリキュラム
=============================================================*/
.fp-intro-bcg {
  width: 100%;
  margin: 0;
  padding: 80px 0 0;
  background-color: #f5f7f9;
}

.fp-intro {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  padding: 4%;
  background-size: 100% 100%;
  background-color: #3691bf;
}

.fp-intro__heading {
  color: #ffffff;
  font-size: 32px;
  line-height: 1.5em;
  font-family: var(--font-family-genjyuugothic);
  text-align: center;
}

.fp-intro__target {
  margin: 1em 0 0;
  padding: .5em;
  background-color: #ffffff;
  font-weight: 700;
  font-size: 32px;
  line-height: 2em;
  font-family: var(--font-family-genjyuugothic);
  text-align: center;
}

@media only screen and (max-width: 767.98px) {
  .fp-intro__heading {
    font-size: 20px;
  }

  .fp-intro__target {
    font-size: 20px;
  }
}

/* 育成にはどちらも大事 */

.fp-nurture {
  width: 92%;
  max-width: 992px;
  margin: auto;
  background-image: url(../images/oyatsu.png);
  background-position: bottom center;
  background-size: 100% auto;
  background-repeat: no-repeat;
}

.fp-nurture img {
  display: block;
  width: 100%;
  max-width: 768px;
  height: auto;
  margin: 0 auto;
  padding: 0 0 38%;
  box-sizing: content-box;
}



/* お問い合わせ
=============================================================*/

.fp-contact {
  width: 92%;
  max-width: 768px;
  margin: 0 auto;
  padding: 40px 0;
  background-color: #ffffff;
}

.fp-contact__heading {
  margin-bottom: 1em;
  font-size: 42px;
  font-family: var(--font-family-genjyuugothic);
  text-align: center;
}

.fp-contact__heading span:nth-of-type(1) {
  font-size: .7em;
  line-height: 1.5em;
}

.fp-contact__heading span:nth-of-type(2) {
  line-height: 1.5em;
  letter-spacing: .1em;
  text-indent: .1em;
}

.fp-contact__links {
  display: flex;
  justify-content: center;
  align-items: stretch;
  width: fit-content;
  margin: 0 auto;
  padding: 0 4.3%;
}

.fp-contact__link {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 500;
  text-decoration: none;
  text-align: center;
}

.fp-contact__link img {
  display: block;
  width: 100%;
  max-width: 400px;
  height: auto;
  padding: 30px;
}

.fp-contact__link:hover {
  opacity: .8;
  transition: opacity .2s ease-out;
}

.fp-contact__link--tel {
  flex: 3;
  background-color: #e1f3f6;
}

.fp-contact__link--mail {
  flex: 1;
  background-color: #207eb0;
}

@media only screen and (max-width: 767.98px) {
  .fp-contact__heading {
    font-size: 24px;
  }

  .fp-contact__link {
    font-size: 20px;
  }
}


/* コンセプト
=============================================================*/
.fp-concept-bcg {
  min-height: 200px;
  background-image: url(../images/illust_child.png);
  background-position: top 20px right 10%;
  background-size: auto 180px;
  background-repeat: no-repeat;
}

@media only screen and (max-width: 767.98px) {
  .fp-concept-bcg {
    padding-bottom: 180px;
    background-position: bottom center;
    background-size: auto 140px;
  }
}

.fp-concept {
  width: 100%;
  margin: 0;
}

.fp-list-concept {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  width: 100%;
  max-width: 992px;
  margin: 0 auto;
}

.fp-list-concept__item {
  display: block;
  width: calc(100% / 3);
  padding: 20px;
  background-color: #207eb0;
  aspect-ratio: 1 / 1;
}

.fp-list-concept__order {
  color: #ffff00;
  font-weight: 400;
  font-size: 42px;
  font-family: var(--font-family-opensans);
  text-align: right;
}

.fp-list-concept__text {
  margin: 1em 0 0;
  color: #ffffff;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.8em;
  text-align: justify;
}

@media only screen and (min-width: 992px) {
  .fp-list-concept__item:nth-child(2n) {
    background-color: #2697d3;
  }
}

@media only screen and (max-width: 991.98px) {
  .fp-list-concept {
    max-width: 768px;
  }
  .fp-list-concept__item {
    width: calc(100% / 2);
  }
  .fp-list-concept__item:nth-child(4n - 2), .fp-list-concept__item:nth-child(4n - 1) {
    background-color: #2697d3;
  }
}

@media only screen and (max-width: 767.98px) {
  .fp-list-concept__order {
    font-size: 24px;
  }

  .fp-list-concept__text {
    font-size: 16px;
  }
}

/* 個別支援学習
=============================================================*/
.fp-study {
  width: 100%;
  margin: 0;
}

.fp-study-figure {
  padding: 0 2%;
}

@media only screen and (max-width: 767.98px) {
  .fp-study-figure {
    padding: 0;
  }
}

.fp-study-figure img {
  display: block;
  width: 100%;
  max-width: 640px;
  height: auto;
  margin: 0 auto;
}

/* スケジュール
=============================================================*/
.fp-schedule {
  width: 100%;
}

/* タイムテーブル見出し */
.fp-time-schedule-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  margin: 0 auto;
  font-size: 28px;
  font-family: var(--font-family-genjyuugothic);
  letter-spacing: .1em;
  text-indent: .1em;
}

.fp-time-schedule-heading img {
  display: block;
  width: 5em;
  height: 5em;
  object-fit: contain;
}

.fp-time-schedule-heading--dayoff img {
  padding-right: .5em;
}

/* スケジュール表 */
.time-schedule-twocol {
  display:flex;
  justify-content: center;
  gap:0 200px;
}

@media only screen and (max-width: 991.98px) {
  .time-schedule-twocol {
    gap:0 120px;
  }
}

@media only screen and (max-width: 767.98px) {
  .time-schedule-twocol {
    flex-direction: column;
    align-items: center;
  }
}

.time-schedule {
  width:fit-content;
  margin:0 auto;
}

.time-schedule__caption {
  font-size:32px;
  text-align:center;
  letter-spacing: .25em;
  text-indent: .25em;
  color:#666;
  margin:1em 0;
  font-family: var(--font-family-genjyuugothic);
}

.time-schedule dl {
  display: flex;
  position: relative;
  font-size: 24px;
}

.time-schedule dl:not(:last-child) {
  padding-bottom: 40px;
}

.time-schedule dl:not(:last-child)::before {
  display: block;
  position: absolute;
  top: 1em;
  left: 4.5em;
  transform: translate(-50%, 0);
  height: 100%;
  border-right: 4px dotted #ffff00;
  content: "";
}

.time-schedule dl::after {
  display: block;
  position: absolute;
  top: 1em;
  left: 4.5em;
  transform: translate(-50%,-50%);
  width: .4em;
  height: .4em;
  border-radius: 50%;
  background-color: var(--color-main);
  content: "";
}

.time-schedule dt {
  width: 6em;
  padding-top: .2em;
  color: var(--color-sub);
  font-weight: 700;
  font-family: var(--font-family-opensans);
  letter-spacing: .1em;
}

.time-schedule dd {
  padding-top:80px;
  font-size: 20px;
  line-height: 2em;
}

@media only screen and (max-width: 767.98px) {
  .time-schedule dl {
    font-size: 18px;
  }

  .time-schedule dd {
    font-size: 16px;
  }
}

/* 利用までの流れ
=============================================================*/

.fp-list-use {
  list-style: none;
  position: relative;
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
}

.fp-list-use::before {
  display: block;
  position: absolute;
  top: 40px;
  left: calc(28.5% - (28.5% - 98px) / 2);
  z-index: 1;
  width: 0;
  height: calc(100% - 160px);
  border-left: 4px dotted #ffff00;
  content: "";
}

.fp-list-use__item {
  display: flex;
  width: 100%;
  min-height: 160px;
  margin: 40px auto;
}

.fp-list-use__side {
  position: relative;
  width: 28.5%;
  min-width: 80px;
}

.fp-list-use__side::before {
  display: block;
  position: absolute;
  top: 36px;
  z-index: 2;
  width: 100%;
  height: 8px;
  background-color: #f5f7f9;
  content: "";
}

.fp-list-use__side-number {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 3;
  width: 100px;
  height: 80px;
  background-color: #f5f7f9;
  font-weight: 300;
  font-size: 30px;
  font-family: var(--font-family-opensans);
}

.fp-list-use__side-number span {
  margin-right: -.0625em;
  letter-spacing: .0625em;
}

.fp-list-use__main {
  position: relative;
  z-index: 4;
  width: 68.5%;
}

.fp-list-use__main-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  padding: 1em;
  background-color: #207eb0;
  color: #ffffff;
  font-size: 24px;
  font-family: var(--font-family-genjyuugothic);
}

.fp-list-use__main-heading span {
  margin-right: -.0625em;
  letter-spacing: .0625em;
}

.fp-list-use__main-text {
  margin: 20px 0 0;
  padding: 0 2em;
  background-color: #ffffff;
  line-height: 1.5em;
  text-align: justify;
}

@media only screen and (max-width: 767.98px) {
  .fp-list-use::before {
    left: 40px;
  }

  .fp-list-use__item-wrapper::before {
    left: 38px;
  }

  .fp-list-use__side-number {
    width: 100%;
    height: 60px;
    font-size: 24px;
  }

  .fp-list-use__main {
    width: 100%;
  }

  .fp-list-use__side {
    width: 80px;
  }

  .fp-list-use__side::before {
    display: none;
  }

  .fp-list-use__main-heading {
    height: 60px;
    font-size: 20px;
  }

  .fp-list-use__main-text {
    padding: 0;
    font-size: 14px;
  }
}

/* 利用料金
=============================================================*/

.fp-fee {
  max-width:768px;
  margin: 0 auto;
}

.fp-fee__text {
  padding:0 1em;
}

.tbl-fee {
  width: 100%;
  border-collapse: collapse;
}

.tbl-fee caption {
  color: #207eb0;
  font-weight: 700;
  letter-spacing: .05em;
  text-align: center;
  text-indent: .05em;
  font-size:32px;
  margin-bottom: .5em;
}

.tbl-fee th,
.tbl-fee td{
  border-top:6px solid #fff;
}

.tbl-fee th {
  padding: .75em 1.5em;
  background-color: #f5f7f9;
  font-weight: 500;
  line-height: 2em;
  font-size:20px;
  text-align: left;
  font-feature-settings: "palt";
  letter-spacing: .05em;
}

.tbl-fee th span {
  display: inline-block;
}

.tbl-fee td {
  padding: .75em;
  background-color: #207eb0;
  color: #ffffff;
  font-weight: 700;
  font-size: 28px;
  text-align: center;
  white-space: nowrap;
  font-feature-settings: "palt";
}

@media only screen and (max-width: 767.98px) {
  .tbl-fee caption {
    font-size:24px;
  }

  .tbl-fee th{
    padding: .75em;
    font-size:16px;
    letter-spacing: 0;
  }

  .tbl-fee td {
    padding: .75em;
    font-size:20px;
  }
}


