@media only screen and (max-device-width: 480px) {
  .main-visual {
    max-width: 1070px;
  }
  .main-tx1 {
    font-size: 23px;
    margin-top: 25px;
  }

  .container {
    padding: 10px 0;
  }

  .inner {
    padding: 0 15px;
  }

  .is-pc {
    display: none;
  }

  .is-sp {
    display: block;
  }

  .inner-gray {
    margin: 15px;
    padding: 15px;
  }

  h3 {
    font-size: 20px;
  }

  .blue-heading {
    font-size: 25px;
    margin-top: 30px;
  }

  .heading2 {
    font-size: 20px;
  }

  ul {
    padding-left: 30px;
  }

  .balloon {
    padding: 15px;
  }

  h2 {
    font-size: 20px;
  }

  p,
  li {
    font-size: 16px;
  }

  a.btn-c {
    font-size: 2em;
    padding: 0.25rem 2rem 2rem 2.4rem;
  }

  a.btn-c span {
    font-size: 1.25rem;
    left: calc(50% - 170px);
    width: 90%;
  }

  .item {
    display: block;
    width: 100%;
  }

  .item3 {
    padding: 0 10px 5px 10px;
  }

  .text {
    padding: 10px 0 20px 0;
  }

  .cp_qa .cp_actab {
    margin: 0 0 2em 0;
  }

  .cp_qa .cp_actab label {
    font-size: 16px;
    padding: 0.5em 1.5em 0.7em 2em;
  }

  .cp_qa .cp_actab label::before {
    margin-left: -2em;
    padding-right: 0.3em;
    font-size: 19px;
  }

  .cp_qa .cp_actab label::after {
    top: 0.45em;
    right: 1.1em;
    font-size: 20px;
  }

  .name {
    text-align: center;
  }

  .check {
    padding-left: 5px;
  }
  .check li {
    padding-left: 25px;
    padding: 1px 0 10px 25px;
  }

  .how-to li {
    padding: 1px 0 10px 25px;
  }
  .how-to li:after {
    top: 0.67em;
    left: 1.4px;
  }
  .cp_qa .cp_actab .cp_actab-content p {
    font-size: 16px;
    margin: 0.5em 1em 0.6em 0;
  }

  .cp_qa .cp_actab .cp_actab-content {
    padding: 0 0 0 3.15em;
  }

  .cp_qa .cp_actab .cp_actab-content::before {
    font-size: 2em;
    margin-left: -1em;
    line-height: 1.6;
  }

  .flow {
    padding: 0;
  }

  .flow > li dl {
    display: block;
  }

  .flow > li dl dt .icon {
    width: 100%;
  }
  dd {
    margin: 15px 0;
  }

  .jisseki-box {
    margin: 35px 15px;
    padding: 10px;
  }

  .hexagon-box {
    left: -10px;
  }

  footer {
    margin-top: 30px;
  }

  .btn-wrap {
    margin-top: 40px;
  }

  .balloon2 {
    width: 95%;
    padding: 5px;
  }

  .balloon2 p {
    font-size: 20px;
  }

  .top-btn-tx {
    font-size: 20px;
    padding-left: 18px;
  }

  .main-btn {
    margin-top: 30px;
  }

  .tokushoho-tbl td,
  .tokushoho-tbl th {
    display: block;
    width: 100%;
    text-align: center;
  }

  .sub-container {
    padding: 40px 0 20px 0;
  }

  .margin-top {
    margin-top: 60px;
  }
}

@media only screen and (max-device-width: 375px) {
  a.btn-c span {
    left: calc(50% - 155px);
  }

  a.btn-c {
    font-size: 1.9em;
  }
}

@media only screen and (max-device-width: 320px) {
  a.btn-c {
    font-size: 1.7em;
    padding: 0.25rem 2rem 1.5rem 2.4rem;
  }

  a.btn-c span {
    left: calc(50% - 130px);
  }

  .main-tx1 {
    font-size: 20px;
  }
}
