.page__body a {
  color: #cd0000;
}
.page__mv {
  height: 24rem;
  margin-bottom: 9rem;
  background-image: url(../images/common/bg_page_mv.png);
  background-repeat: no-repeat;
  background-position: center 0;
  background-size: cover;
}
.page__mv .__inner {
  position: relative;
  height: 100%;
}

@media screen and (width < 768px) {
  .page__mv {
    background-image: url(../images/common/bg_page_mv_sp.png);
    background-position: 0 0;
  }
}
.page__mv__title {
  position: absolute;
  bottom: -4rem;
  left: calc((100% - 100vw) / 2);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: auto;
  height: 8rem;
  padding: 0 2.8rem 0 calc((100vw - 100%) / 2 + 2rem);
  background-color: #fff;
  font-size: 2.6rem;
  font-weight: 700;
  color: #222;
}

@media screen and (width < 768px) {
  .page__mv__title {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    bottom: -4.5rem;
    left: 2rem;
    width: auto;
    height: 9rem;
    padding: 0 2rem;
    font-size: 2.1rem;
  }
}
.page__body .__inner {
  max-width: 94rem;
}
.page__body h2 {
  font-size: 2.1rem;
  font-weight: 700;
  border-bottom: 1px solid #aaa;
  margin-bottom: 1em;
}
.page__body h2 span {
  padding-bottom: 0.4rem;
  border-bottom: 3px solid #cd0000;
}
.page__body p {
  margin-bottom: 1.5em;
}

.page__lead {
  font-size: 2.1rem;
  font-weight: 700;
  margin-bottom: 4.2rem;
}
.page__body ol {
  list-style-type: disc;
  margin-left: 2rem;
  margin-bottom: 4rem;
}
.page__body p.only-text {
  margin-bottom: 5rem;
}

/* ----- About ----- */
.about > ul {
  list-style-type: upper-roman;
  margin-left: 2.5rem;
  margin-bottom: 4rem;
}
.about > ul ol {
  list-style-type: upper-latin;
  margin-bottom: 2rem;
}
.about .management {
  padding-top: 3rem;
}
.about > ul ul {
  margin-bottom: 2rem;
  list-style-type: disc;
  margin-left: 2rem;
}

/* ----- Community ----- */
.community .frame {
  border: 1px solid #cd0000;
  padding: 2rem 3rem;
  margin-bottom: 4rem;
  font-weight: 700;
  color: #cd0000;
  background: #fff;
}
.community .frame strong {
  font-size: 2rem;
}
.community img {
  width: 250px !important;
}

/* ----- Contact ----- */
.contact .company {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 6rem;
}
@media screen and (width < 768px) {
  .contact .company {
    display: block;
  }
}
.contact .company img {
  width: 280px;
  filter: invert(10%) sepia(98%) saturate(7474%) hue-rotate(10deg) brightness(88%) contrast(111%);
}
@media screen and (width < 768px) {
  .contact .company img {
    width: 60%;
  }
}
.contact .company p {
  margin-bottom: 0;
  padding-left: 2rem;
}
@media screen and (width < 768px) {
  .contact .company p {
    padding-top: 1rem;
    padding-left: 0;
  }
}
.contact dl {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-top: 4rem;
  margin-bottom: 4rem;
}
@media screen and (width < 768px) {
  .contact dl {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}
.contact dl dt {
  width: 15%;
  font-weight: normal;
  border-bottom: 2px solid #bbb;
  padding: 1rem 0;
}
@media screen and (width < 768px) {
  .contact dl dt {
    width: 20%;
  }
}
.contact dl dt:nth-child(9) {
  border-bottom: none;
}
.contact dl dd {
  width: 85%;
  border-bottom: 1px solid #ccc;
  padding: 1rem 0 1rem 2rem;
}
@media screen and (width < 768px) {
  .contact dl dd {
    width: 80%;
  }
}
.contact dl dd:last-child {
  border-bottom: none;
}
.contact dl dd ol {
  list-style-type: decimal;
  margin-left: 2rem;
}
.contact dl dd ol ol {
  list-style-type: none;
  margin-left: 2rem;
  text-indent: -1.6rem;
}
@media screen and (width < 768px) {
  .contact dl dd ol ol {
    margin-left: 1.5rem;
  }
}
.contact input,
.contact textarea,
.contact select {
  background: #fff;
  border: 1px solid #ddd;
  padding: 0.8rem 1rem;
  margin-bottom: 1rem;
}
.contact table {
  width: 100%;
  margin-top: 4rem;
  margin-bottom: 4rem;
}
@media screen and (width < 768px) {
  .contact table {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}
.contact table th, .contact table td {
  padding-bottom: 1rem;
}
@media screen and (width < 768px) {
  .contact table td {
    padding-bottom: 0;
  }
}
.contact table th {
  width: 18rem;
  padding-top: 1rem;
}
.contact table td {
  width:  calc(100% - 18rem);
}
@media screen and (width < 768px) {
  .contact table th, .contact table td {
    display: block;
    width: 100%; 
  }
}
.contact table p {
  margin-bottom: 0;
}
.contact input::placeholder {
  color: #bbb;
}
.contact input.name-kanji,
.contact input.name-kana,
.contact input.company-name,
.contact input.email {
  width: 80%;
}
.contact input.address-1,
.contact input.address-2,
.contact textarea {
  width: 100%;
}
.contact phone {
  width: 40%;
}
.contact input.zipcode {
  width: 20%;
  margin-right: 1rem;
}
@media screen and (width < 768px) {
  .contact input.name-kanji,
  .contact input.name-kana,
  .contact input.company-name,
  .contact input.email,
  .contact input.address-1,
  .contact input.address-2,
  .contact textarea,
  .contact phone {
    width: 100%;
  }
}
.contact .submit {
  width: 100%;
  max-width: 100%;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
@media screen and (width < 768px) {
  .contact .wpcf7-spinner {
    display: block;
    margin: 12px 0 0 0;
  }
}
.contact input.wpcf7-submit {
  margin: 0 auto;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  width: 200px;
  padding: 1.5rem 0;
  text-align: center;
  background-color: #cd0000;
  border: none;
}
.contact .required {
  color: #cd0000;
}