@charset "utf-8";
/* ====================================================
送迎の仕組み .flow-area
==================================================== */
.contents-area.flow-area {
  padding: 80px 0 150px;
}
.contents-area.flow-area .sec-ttl {
  font-size: var(--fs40);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: #262626;
}
.contents-area.flow-area .flow-list {
  max-width: 1046px;
  margin: 40px auto 0;
}
.contents-area.flow-area .flow-box + .flow-box {
  margin-top: 60px;
}

.contents-area.flow-area .flow-box {
  position: relative;
  display: grid;
  grid-template-columns: 48%;
  grid-template-rows: auto auto;
  column-gap: 7.183581%; /* 63 / 877 */
  width: 93.117782%; /* 974 / 1046 */
  padding: 76px 0 62px 9.958932%; /* 左 97 / 974 */
  border-radius: 30px;
  background-color: #f7f7f7;
}
.contents-area.flow-area .flow-head {
  grid-row: 1;
  grid-column: 1;
}
.contents-area.flow-area .flow-body {
  grid-row: 2;
  grid-column: 1;
}
.contents-area.flow-area .flow-img {
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: start;
  overflow: hidden;
  margin-right: -72px; /* カード右端からのはみ出し */
  border-radius: 40px;
}
.contents-area.flow-area .flow-img img {
  width: 100%;
  height: auto;

  object-fit: cover;
}

/* 吹き出しバッジ */
.contents-area.flow-area .flow-badge {
  position: absolute;
  top: 32px;
  left: 3%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 130px;
  height: 150px;
  padding-bottom: 16px;
  font-size: var(--fs24);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  color: #fff;
}
.contents-area.flow-area .flow-box.school .flow-badge {
  background: url(../img/transfer/bubble_yellow.svg) no-repeat center / 100%;
}
.contents-area.flow-area .flow-box.home .flow-badge {
  background: url(../img/transfer/bubble_blue.svg) no-repeat center / 100%;
}
.contents-area.flow-area .flow-box.lesson .flow-badge {
  background: url(../img/transfer/bubble_pink.svg) no-repeat center / 100%;
}

/* 見出し */
.contents-area.flow-area .flow-lead,
.contents-area.flow-area .flow-ttl {
  padding-left: 18.826406%; /* 77 / 409 */
}
.contents-area.flow-area .flow-lead {
  font-size: var(--fs18);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
.contents-area.flow-area .flow-ttl {
  margin-top: 8px;
  font-size: var(--fs26);
  font-weight: 700;
  line-height: 1.4;
  color: #262626;
}
.contents-area.flow-area .flow-ttl span {
  margin-right: 8px;
  font-size: var(--fs36);
}

/* 本文・注釈 */
.contents-area.flow-area .flow-txt {
  font-size: var(--fs16);
  line-height: 1.75;
  color: #262626;
}
.contents-area.flow-area .flow-note {
  margin-top: 28px;
}
.contents-area.flow-area .flow-note li {
  font-size: var(--fs13);
  line-height: 1.75;
  color: #262626;
}

/* ボタン */
.contents-area.flow-area .flow-btn {
  margin-top: 34px;
  text-align: center;
}
.contents-area.flow-area .flow-btn-txt {
  margin-bottom: 8px;
  font-size: var(--fs15);
  font-weight: 700;
  color: #4bb23d;
}

/* カラー分岐 */
.contents-area.flow-area .flow-box.school .flow-lead {
  color: #f08300;
}
.contents-area.flow-area .flow-box.home .flow-lead {
  color: #3abde8;
}
.contents-area.flow-area .flow-box.lesson .flow-lead {
  color: #fc89b3;
}

/* 送迎割（自宅送迎カード内） */
.contents-area.flow-area .flow-discount {
  grid-row: 3;
  grid-column: 1 / 3; /* 写真列は暗黙の列のため -1 では届かない */
  margin-top: 60px;
  padding-right: 13.112885%; /* 115 / 877 */
}
.contents-area.flow-area .flow-discount .discount-ttl {
  font-size: var(--fs22);
  font-weight: 700;
  line-height: 1.5;
  color: #3abde8;
}
.contents-area.flow-area .flow-discount .discount-lead {
  margin-top: 6px;
  font-size: var(--fs15);
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #262626;
}
.contents-area.flow-area .flow-discount .discount-table-wrap {
  overflow: hidden;
  margin-top: 32px;
  border-radius: 20px;
  background-color: #fff;
}
.contents-area.flow-area .flow-discount .discount-table {
  width: 100%;
  table-layout: fixed;
}
.contents-area.flow-area .flow-discount .discount-table thead th,
.contents-area.flow-area .flow-discount .discount-table thead .blank {
  padding: 18px 5px;
  background-color: #3abde8;
  font-size: var(--fs18);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.05em;
  color: #fff;
}
.contents-area.flow-area .flow-discount .discount-table tbody th,
.contents-area.flow-area .flow-discount .discount-table tbody td {
  height: 72px;
  padding: 10px 5px;
  text-align: center;
  vertical-align: middle;
  letter-spacing: 0.05em;
  color: #262626;
}
.contents-area.flow-area .flow-discount .discount-table tbody tr + tr th,
.contents-area.flow-area .flow-discount .discount-table tbody tr + tr td {
  border-top: dashed 1px #dcdcdc;
}
.contents-area.flow-area .flow-discount .discount-table tbody th {
  font-size: var(--fs17);
  font-weight: 700;
  line-height: 1.4;
}
.contents-area.flow-area .flow-discount .discount-table tbody td {
  font-size: var(--fs16);
  font-weight: 500;
  line-height: 1.5;
}
.contents-area.flow-area .flow-discount .discount-note {
  margin-top: 22px;
  padding-left: 6px;
  font-size: var(--fs13);
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #262626;
}

/* ====================================================
TAB
==================================================== */
@media screen and (max-width: 1024px) {
  .contents-area.flow-area {
    padding: 70px 0 110px;
  }
  .contents-area.flow-area .flow-list {
    margin-top: 35px;
  }
  .contents-area.flow-area .flow-box {
    padding: 55px 0 45px 9.958932%;
  }
  .contents-area.flow-area .flow-box + .flow-box {
    margin-top: 45px;
  }
  .contents-area.flow-area .flow-img {
    margin-right: -55px;
  }
  .contents-area.flow-area .flow-badge {
    top: 25px;
    width: 104px;
    height: 120px;
    padding-bottom: 12px;
    font-size: var(--fs20);
  }
  .contents-area.flow-area .flow-lead,
  .contents-area.flow-area .flow-ttl {
    padding-left: 17%;
  }
  .contents-area.flow-area .flow-ttl span {
    margin-right: 8px;
  }
  .contents-area.flow-area .flow-txt {
    margin-top: 32px;
  }
  .contents-area.flow-area .flow-btn .btn a {
    width: 270px;
    height: 58px;
    padding: 0 60px 0 28px;
    border-radius: 29px;
  }
  /* flow-discount */
  .contents-area.flow-area .flow-discount {
    margin-top: 45px;
    padding-right: 55px;
  }
  .contents-area.flow-area .flow-discount .discount-table thead th,
  .contents-area.flow-area .flow-discount .discount-table thead .blank {
    padding: 20px 5px;
    font-size: var(--fs16);
  }
  .contents-area.flow-area .flow-discount .discount-table tbody th,
  .contents-area.flow-area .flow-discount .discount-table tbody td {
    height: 80px;
  }
  .contents-area.flow-area .flow-discount .discount-table tbody th {
    font-size: var(--fs16);
  }
  .contents-area.flow-area .flow-discount .discount-table tbody td {
    font-size: var(--fs15);
  }
}

/* ====================================================
SP
==================================================== */
@media screen and (max-width: 767px) {
  .contents-area.flow-area {
    padding: 50px 0 80px;
  }
  .contents-area.flow-area .sec-ttl {
    font-size: var(--fs22);
  }
  .contents-area.flow-area .flow-list {
    max-width: none;
    margin-top: 25px;
  }
  .contents-area.flow-area .flow-box {
    display: block;
    width: 100%;
    padding: 30px 6.4% 35px;
    border-radius: 20px;
  }
  .contents-area.flow-area .flow-box + .flow-box {
    margin-top: 30px;
  }
  .contents-area.flow-area .flow-img {
    margin: 25px 0 0;
    border-radius: 20px;
  }
  .contents-area.flow-area .flow-badge {
    top: 15px;
    left: 6.4%;
    width: 80px;
    height: 92px;
    padding-bottom: 10px;
    font-size: var(--fs15);
  }
  .contents-area.flow-area .flow-lead,
  .contents-area.flow-area .flow-ttl {
    padding-left: 90px;
  }
  .contents-area.flow-area .flow-lead {
    font-size: var(--fs14);
  }
  .contents-area.flow-area .flow-ttl {
    margin-top: 4px;
    font-size: var(--fs18);
  }
  .contents-area.flow-area .flow-ttl span {
    margin-right: 6px;
    font-size: var(--fs24);
  }
  .contents-area.flow-area .flow-txt {
    margin-top: 25px;
    font-size: var(--fs14);
    line-height: 1.9;
  }
  .contents-area.flow-area .flow-note {
    margin-top: 20px;
  }
  .contents-area.flow-area .flow-note li {
    font-size: var(--fs12);
  }
  .contents-area.flow-area .flow-btn {
    margin-top: 25px;
  }
  .contents-area.flow-area .flow-btn .btn a {
    width: 100%;
    max-width: 300px;
    height: 56px;
    padding: 0 56px 0 24px;
    border-radius: 28px;
    font-size: var(--fs15);
  }
  .contents-area.flow-area .flow-btn .btn a::before {
    right: 16px;
    width: 28px;
    height: 28px;
  }
  .contents-area.flow-area .flow-btn .btn a::after {
    right: 27px;
  }
  /* flow-discount（横スクロール） */
  .contents-area.flow-area .flow-discount {
    margin-top: 30px;
    padding-right: 0;
  }
  .contents-area.flow-area .flow-discount .discount-ttl {
    font-size: var(--fs18);
  }
  .contents-area.flow-area .flow-discount .discount-lead {
    font-size: var(--fs14);
    line-height: 1.8;
    letter-spacing: 0.03em;
  }
  .contents-area.flow-area .flow-discount .scroll-hint {
    margin-top: 16px;
    margin-bottom: 6px;
    font-size: var(--fs11);
    color: #707070;
  }
  .contents-area.flow-area .flow-discount .discount-table-wrap {
    overflow-x: auto;
    margin-top: 0;
    border-radius: 12px;

    -webkit-overflow-scrolling: touch;
  }
  .contents-area.flow-area .flow-discount .discount-table {
    min-width: 460px;
  }
  .contents-area.flow-area .flow-discount .discount-table thead th,
  .contents-area.flow-area .flow-discount .discount-table thead .blank {
    padding: 13px 4px;
    font-size: var(--fs13);
  }
  .contents-area.flow-area .flow-discount .discount-table thead .blank {
    position: sticky;
    left: 0;
    z-index: 1;
    width: 96px;
  }
  .contents-area.flow-area .flow-discount .discount-table tbody th,
  .contents-area.flow-area .flow-discount .discount-table tbody td {
    height: 56px;
    padding: 8px 4px;
    letter-spacing: normal;
  }
  .contents-area.flow-area .flow-discount .discount-table tbody th {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: #fff;
    font-size: var(--fs13);
  }
  .contents-area.flow-area .flow-discount .discount-table tbody td {
    font-size: var(--fs13);
  }
  .contents-area.flow-area .flow-discount .discount-note {
    margin-top: 12px;
    padding-left: 0;
    font-size: var(--fs12);
    letter-spacing: 0.03em;
  }
}
