body {
  font-family: "M PLUS 2", sans-serif;
}

.wrap {
  padding: 20px;
  margin-top: 0;
  font-size: clamp(0.75em, 1vw, 1em);
}

@media screen and (max-width: 768px) {
  .grid--3 {
    margin-top: -10%;
  }
}
@media screen and (max-width: 768px) {
  .grid--3 .grid__list {
    margin-top: 10%;
  }
}

.red {
  color: #D6000F;
}

.main-ttl {
  text-align: center;
  font-size: 2.5em;
  margin-bottom: 1em;
  background: #9DC938;
  color: #FFF;
  padding: 1.5em 0;
}

.main-read {
  text-align: center;
  font-size: 1.125em;
}

.sim-sec {
  text-align: center;
  max-width: 1080px;
  margin: 5em auto;
}
.sim-sec__ttl {
  font-size: 2.25em;
  color: #9DC938;
  margin-bottom: 1.1111111111em;
  border-bottom: 0.1111111111em solid #9DC938;
  padding-bottom: 0.75em;
  line-height: 1.4;
}

.plan-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: space-evenly;
  -webkit-justify-content: space-evenly;
      -ms-flex-pack: space-evenly;
          justify-content: space-evenly;
}
@media screen and (max-width: 768px) {
  .plan-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
@media screen and (min-width: 769px) {
  .plan-list > li {
    width: 60%;
    margin-left: 1em;
  }
  .plan-list > li:nth-of-type(4n+1) {
    margin-left: 0;
  }
}
@media screen and (max-width: 768px) {
  .plan-list > li {
    margin-bottom: 2em;
  }
}

.plan-btn {
  background: #f2f2f2;
  font-size: 1.375em;
  padding: 0.5em 0;
  font-weight: bold;
  cursor: pointer;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.plan-btn.active, .plan-btn:hover {
  background: #9DC938;
  color: #FFF;
}
.plan-btn span {
  display: block;
  font-size: 0.6363636364em;
}

.plan-bdy {
  display: none;
  margin-top: 1.5em;
}
.plan-bdy__txt {
  font-size: 0.9375em;
  margin-top: 1.1111111111em;
  text-align: left;
}
@media screen and (min-width: 769px) {
  .plan-bdy__txt {
    height: 17.3333333333em;
  }
}
.plan-bdy__note {
  font-size: 0.9375em;
  border: 1px solid #CCC;
  padding: 1.0714285714em;
  margin-top: 1.3333333333em;
  font-weight: bold;
}
.plan-bdy__note span {
  font-size: 0.8em;
  display: block;
  margin-top: 0.25em;
}
.plan-bdy__table {
  font-size: 1.2rem;
  margin-top: 1.6666666667em;
  width: 100%;
}
.plan-bdy__table th, .plan-bdy__table td {
  padding: 0.5em 1em;
}
.plan-bdy__table th {
  background: #f2f2f2;
  border-bottom: 2px solid #fff;
}
.plan-bdy__table td {
  text-align: left;
  border-bottom: 2px solid #f2f2f2;
}
.plan-bdy__kome {
  text-align: left;
  font-size: 0.8125em;
  margin-top: 1.1111111111em;
}
.plan-bdy__kome li {
  margin-left: 1em;
  text-indent: -1em;
}
.plan-bdy__kome li + li {
  margin-top: 0.25em;
}
.plan-bdy__kome.--num li {
  margin-left: 2.75em;
  text-indent: -2.75em;
}

.faq-list {
  text-align: left;
}

.sim-area {
  border: 1px solid #cCC;
  padding: 2em 20px;
  margin-top: 2em;
}
.sim-area__txt {
  font-size: 1.125em;
  margin-bottom: 0.8333333333em;
  font-weight: bold;
}
.sim-area__txt:not(:first-child) {
  margin-top: 2em;
}
.sim-area__radio {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.sim-area__radio li {
  font-size: 1.25em;
  margin: 0 1em;
}
@media screen and (max-width: 768px) {
  .sim-area__radio li {
    margin: 0 0.75em;
  }
}
.sim-area__radio li input {
  margin-right: 0.25em;
}
.sim-area__num {
  font-size: 1.25em;
}
.sim-area__num input {
  width: 5em;
  padding: 0.25em;
  font-size: 0.8em;
  margin: 0 0.25em;
}
.sim-area__btn {
  display: block;
  margin: 2em auto 0;
  max-width: 320px;
  width: 100%;
  font-size: 1.125em;
  border: none;
  background: #9DC938;
  color: #fff;
  border-radius: 50em;
  padding: 1em 0;
  font-weight: bold;
}
.sim-area__btn:hover {
  opacity: 0.8;
}

.sim-plan {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around;
  margin-top: 3.125em;
}
@media screen and (max-width: 768px) {
  .sim-plan {
    display: block;
  }
}
.sim-plan > li {
  border: 0.25em solid #9DC938;
  background: #FFF;
}
@media screen and (min-width: 769px) {
  .sim-plan > li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    margin: 0 1em;
    width: 60%;
  }
}
@media screen and (max-width: 768px) {
  .sim-plan > li {
    margin-bottom: 2em;
  }
}
.sim-plan__bdy {
  padding: 20px;
}
@media screen and (min-width: 769px) {
  .sim-plan__bdy {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 100%;
  }
}
.sim-plan__name {
  background: #9DC938;
  color: #FFF;
  padding: 0.5em;
  font-size: 1.5em;
}
.sim-plan__txt {
  margin-bottom: 1em;
}
.sim-plan__price {
  margin-bottom: auto;
}
.sim-plan__price .price-txt {
  font-size: 3em;
  font-weight: bold;
  line-height: 1.6;
}
.sim-plan__price .price-txt span {
  font-size: 0.3333333333em;
}
.sim-plan__price .price-note {
  font-size: 0.8125em;
  margin-top: 0.5em;
  text-align: left;
}
.sim-plan__price .price-note li {
  text-indent: -1em;
  margin-left: 1em;
}
.sim-plan__price .price-note li + li {
  margin-top: 0.25em;
}
.sim-plan__btn {
  display: block;
  margin: 2em auto 0;
  max-width: 320px;
  width: 100%;
  font-size: 1.125em;
  border: none;
  background: #f2f2f2;
  border-radius: 50em;
  padding: 1em 0;
  font-weight: bold;
}
.sim-plan__btn:hover {
  background: #9DC938;
  color: #FFF;
}

.sim-form {
  text-align: left;
}
.sim-form dt {
  font-size: 1.25em;
  margin-bottom: 0.5em;
}
.sim-form dd {
  margin-bottom: 1em;
}
.sim-form dd input[type=text], .sim-form dd select {
  width: 100%;
  padding: 0.5em;
  border: 1px solid #CCC;
}
.sim-form dd select {
  max-width: 400px;
}
.sim-form dd input[type=checkbox] {
  margin-right: 0.25em;
}
.sim-form__btn {
  display: block;
  margin: 2em auto 0;
  max-width: 320px;
  width: 100%;
  font-size: 1.125em;
  border: none;
  background: #9DC938;
  color: #fff;
  border-radius: 50em;
  padding: 1em 0;
  font-weight: bold;
}
.sim-form__btn:not([disabled]) {
  opacity: 0.8;
}
.sim-form__btn[disabled] {
  background: #CCC;
}

.sim-agree {
  border: 0.3125em solid #CCC;
  padding: 3em;
  max-width: 960px;
  margin: 3em auto;
}
@media screen and (max-width: 768px) {
  .sim-agree {
    padding: 2em;
  }
}
.sim-agree__ttl {
  font-size: 1.875em;
  margin-bottom: 1em;
}
.sim-agree__cont {
  overflow-y: auto;
  max-height: 43.75em;
  margin-bottom: 2em;
  text-align: left;
  padding: 0 1em 0 0;
}
@media screen and (max-width: 768px) {
  .sim-agree__cont {
    max-height: 400px;
  }
}
.sim-agree__cont h4 {
  margin-top: 2em;
  margin-bottom: 0.75em;
  text-align: center;
  font-size: 1.25em;
}
.sim-agree__cont ol {
  font-size: 0.9375em;
}
.sim-agree__cont ol > li {
  list-style: decimal;
  margin-left: 1.5em;
}
.sim-agree__cont ol > li + li {
  margin-top: 0.5em;
}
.sim-agree__cont ul {
  font-size: 0.9375em;
}
.sim-agree__cont ul > li {
  margin-left: 1em;
  text-indent: -1em;
}
.sim-agree__cont ul > li + li {
  margin-top: 0.25em;
}
.sim-agree__txt {
  margin-bottom: 1em;
  font-size: 0.9375em;
}
.sim-agree__sign__ttl {
  font-size: 1.125em;
}
.sim-agree__check {
  font-size: 0.9375em;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.sim-agree__check label {
  text-align: left;
  line-height: 1.4;
  cursor: pointer;
}
.sim-agree__check input {
  margin-right: 0.75em;
  cursor: pointer;
}