@media screen and (max-width: 640px) {
  @charset "utf-8";

  html {
    font-size: 60%;
  }

  .menu {
    font-size: 1rem;
    height: 30px;
    line-height: 30px;
  }

  .menu li a {
    padding: 0 0.5em;
  }

  #menu-after {
    display: none !important;
  }

  h2 {
    line-height: 30px;
    height: 30px;
    font-size: 1.4rem;
  }

  .a-block {
    padding-top: 0;
    padding-bottom: 10px;
  }

  .a-block h3 {
    font-size: 1.5rem;
    line-height: 160%;
    margin-top: 10px;
  }

  .a-block h3::before {
    top: -4px;
    width: 30px;
    margin-right: 5px;
  }

  .a-block h3::after {
    top: -4px;
    width: 30px;
    margin-left: 5px;
  }

  .a-block p {
    font-size: 1.2rem;
    line-height: 150%;
  }

  .g-block01,
  .g-block03,
  .s-block01,
  .s-block02,
  .d-block01,
  .o-block01,
  .o-block03,
  .p-block01 {
    height: 200px;
  }

  .g-block01 p.big,
  .s-block01 p.big,
  .o-block01 p.big {
    /* 左配置 */
    top: 40px;
    left: 3%;
  }

  .g-block01 p.normal,
  .s-block01 p.normal,
  .o-block01 p.normal {
    top: 70px;
    left: 3%;
  }

  .g-block03 p.big,
  .s-block02 p.big,
  .d-block01 p.big,
  .o-block03 p.big,
  .p-block01 p.big {
    /* 右配置 */
    top: 40px;
    right: 3%;
  }

  .g-block03 p.normal,
  .s-block02 p.normal,
  .d-block01 p.normal,
  .o-block03 p.normal,
  .p-block01 p.normal {
    top: 70px;
    right: 3%;
  }

  .p-block01 p.big {
    top: 85px;
  }

  .p-block01 p.normal {
    top: 45px;
  }

  .leftbox {
    display: block;
    float: inherit;
    width: 100%;
    margin-bottom: 20px;
  }

  .rightbox {
    display: block;
    float: inherit;
    width: 100%;
    height: 100%;
  }

  .img_left,
  .img_right {
    margin: 0 auto;
  }

  .g-block02 {
    margin: 10px auto;
    width: 100%;
  }

  .g-block04 {
    margin-top: -30px;
    margin-bottom: 10px;
    width: 100%;
  }

  .gb02,
  .db02 {
    margin-left: 10%;
    margin-right: 10%;
    margin-top: 5%;
  }

  .forsmart {
    display: block;
  }

  .forpc {
    display: none;
  }

  figure img {
    width: 80%;
    padding-bottom: 0;
  }

  .g-block02 figure img {
    padding-bottom: 20px;
  }

  .price {
    border-spacing: 5px 0;
  }

  .price p {
    width: 100px;
    height: 100px;
    border-radius: 50px;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
  }

  .button {
    margin-top: 15px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 30px;
    width: 280px;
    height: 40px;
    line-height: 40px;
  }

  .s-block03,
  .s-block04 {
    margin: 20px auto;
  }

  video {
    height: 200px;
  }

  .d-block01 {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
  }

  .o-block02 {
    margin-top: 50px;
  }

  .ob02,
  .ob03 {
    width: 90%;
    margin: 0 auto;
    margin-top: 20px;
  }

  .conpe .normal {
    margin-left: 5%;
  }

  ul.ac {
    width: 90%;
  }

  dl.accordion dt {
    font-size: 1.3rem;
  }

  dl.accordion dd ul {
    padding: 0 0 15px 0;
    margin-left: 0;
  }

  .o-block04 {
    margin-top: -120px;
  }

  .o-block04 div {
    width: 100px;
    height: 100px;
    border-radius: 50px;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
  }

  .contact-top01 {
    border-spacing: 10px 0;
  }

  .contact-top01 div {
    width: 100px;
    height: 100px;
    border-radius: 50px;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
  }

  .contact-top01 img {
    border-radius: 50px;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
  }

  .contact-top01 p {
    width: 100px;
    font-size: 1.1rem;
  }

  footer {
    line-height: 1.2rem;
  }

  .s-no-animation {
    visibility: visible !important;
  }

  .onlymobile {
    margin-top: -110px;
    margin-bottom: -10px;
  }
}
