/* =======================================================
* sub_main
* ======================================================= */
.sub_img {
  background: url(../images/bg-plan.jpg) no-repeat center/cover;
}


/* =======================================================
* plan
* ======================================================= */
#plan ul {
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
}

#plan ul li {
  background: var(--color-white);
  padding: 50px;
  position: relative;
}

#plan ul li .label {
  position: absolute;
  top: 20px;
  left: 20px;
  background: var(--color-black);
  border-radius: 50%;
  width: 70px;
  height: 70px;
  color: var(--color-white);
  text-align: center;
  padding: 14px 0;
  line-height: 1.3;
  font-size: 1.4rem;
}

#plan ul li h3 {
  margin-bottom: 40px;
  position: relative;
}

#plan ul li h3::after {
  position: absolute;
  content: "";
  width: 250px;
  height: 2px;
  background: var(--color-black);
  bottom: -10px;
  left: 50%;
  transform: translate(-50%);
}

#plan dl {
  margin: 20px 0;
}

#plan dl dt {
  width: 110px;
  background: var(--color-greige);
  color: var(--color-white);
  text-align: center;
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 10px;
  padding: 3px 0;
  letter-spacing: .2em;
}

#plan dl dd {
  width: 63%;
  font-size: 2.2rem;
  margin-bottom: 10px;
}

#plan dl dd small {
  font-size: 1.3rem;
  margin-left: 3px;
}

/* plan_apply */
.plan_apply {
  margin-top: 90px;
  padding: 5rem 0 7rem;
  background: rgb(160 148 130 / 70%);
  color: var(--color-white);
  line-height: 2;
}

.plan_apply img {
  width: 220px;
  margin: 0 auto 15px;
}

.plan_apply .flex {
  margin-top: 40px;
}

.plan_apply .flex a {
  background: var(--color-black);
  color: var(--color-white);
  text-align: center;
  font-size: 2rem;
  letter-spacing: .15em;
  padding: 15px 0;
  margin: 10px 0;
}

.plan_apply .flex a span {
  display: block;
  font-size: 1.2rem;
  letter-spacing: .08em;
}

@media screen and (max-width:768px) {
  #plan ul {
    gap: 20px;
    grid-template-columns: 1fr;
    margin-top: 20px;
  }

  #plan ul li {
    padding: 30px 15px 10px;
  }

  #plan ul li h3::after {
    width: 80px;
    bottom: -15px;
  }

  #plan dl dt {
    width: 90px;
    font-size: 1.3rem;
  }

  #plan ul li .label {
    top: -10px;
    left: -10px;
  }

  .plan_apply img {
    width: 190px;
  }
}

/* =======================================================
* flow
* ======================================================= */
#flow .flow_icn img {
  width: 22px;
  margin-right: 3px;
}

#flow ul {
  display: flex;
  overflow-x: scroll;
  padding-bottom: 30px;
  margin-top: 40px;
  margin-right: calc(50% - 50vw);
}

#flow ul li {
  min-width: 25%;
  background: var(--color-white);
  box-shadow: 1px 1px 10px rgb(0 0 0 / 10%);
  margin: 0 10px;
  padding: 20px;
  box-sizing: border-box;
  border-radius: 12px;
  font-size: 1.4rem;
  position: relative;
}

#flow ul li h4 {
  font-size: 1.3rem;
  background: var(--color-greige);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  position: absolute;
  top: 10px;
  left: 10px;
  color: var(--color-white);
  padding: 16px 8px;
}

#flow ul li p {
  padding-top: 40px;
}

#flow ul li p img {
  display: block;
  height: 70px;
  object-fit: contain;
  margin: 0 auto 20px;
}

@media screen and (max-width:768px) {
  #flow ul li {
    min-width: 55%;
  }

  #flow ul li h4 {
    font-size: 1.2rem;
    width: 50px;
    height: 50px;
  }

  #flow ul li p img {
    height: 55px;
  }
}




/* =======================================================
* caution
* ======================================================= */
#caution ul li {
  position: relative;
  padding-left: 20px;
}

#caution ul li::before {
  position: absolute;
  content: "※";
  top: 0;
  left: 0;
}

#caution ol {
  padding-left: 20px;
}

#caution ol li {
  padding-left: 0;
}

#caution ol li::before {
  content: none;

}