html {
  font-size: 10px;
}

body {
  overflow-x: hidden;
}

#main_visual,
main {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
#main_visual div,
#main_visual p,
#main_visual ul,
#main_visual li,
#main_visual h1,
#main_visual h2,
#main_visual h3,
main div,
main p,
main ul,
main li,
main h1,
main h2,
main h3 {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
#main_visual ul,
main ul {
  list-style: none;
}
#main_visual img,
main img {
  width: 100%;
}

#main_visual {
  position: relative;
  margin-bottom: 50px;
  opacity: 0;
  transition: opacity 0.5s;
}
#main_visual .txt {
  display: block;
  position: absolute;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.5s 0.5s, transform 0.5s 0.5s;
}
@media (max-width: 599px) {
  #main_visual .txt {
    width: 43.3vw;
    top: 18.3vw;
    left: 5px;
  }
}
@media (min-width: 600px) {
  #main_visual .txt {
    width: 28.2vw;
    bottom: 7.9vw;
    left: 3.3vw;
  }
}
#main_visual.is_show {
  opacity: 1;
}
#main_visual.is_show .txt {
  opacity: 1;
  transform: translateY(0);
}

main {
  font-family: "Noto Sans JP", serif;
}
main section {
  display: block;
  overflow: hidden;
}

#infomation {
  margin: 0 auto 100px;
  padding: 0 15px;
}
#infomation .inner {
  max-width: 600px;
  margin: auto;
}
@media (min-width: 1024px) {
  #infomation .inner {
    display: flex;
    align-items: center;
    max-width: 950px;
  }
}
@media (min-width: 1024px) {
  #infomation .inner .left_block {
    flex-basis: 160px;
    margin-right: 80px;
  }
}
#infomation .inner .left_block .section_eng {
  font-size: 3rem;
  font-weight: bold;
  color: #5f6772;
  text-align: center;
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  #infomation .inner .left_block .section_eng {
    font-size: 2.2rem;
  }
}
#infomation .inner .left_block .section_name {
  font-size: 1.9rem;
  font-weight: 400;
  color: #5f6772;
  text-align: center;
}
@media (max-width: 1023px) {
  #infomation .inner .left_block .section_name {
    margin-bottom: 30px;
  }
}
@media (min-width: 1024px) {
  #infomation .inner .left_block .section_name {
    font-size: 1.4rem;
  }
}
#infomation .inner .left_block .more_pc {
  display: none;
  background-color: #6fc2ca;
  font-size: 1.4rem;
  color: #fff;
  text-align: center;
  text-decoration: none;
  width: 160px;
  margin-top: 30px;
  padding: 10px 0;
  border: 1px solid #6fc2ca;
  border-radius: 30px;
  transition: color 0.5s, background-color 0.5s;
}
#infomation .inner .left_block .more_pc:hover {
  color: #6fc2ca;
  background-color: #fff;
}
@media (min-width: 1024px) {
  #infomation .inner .left_block .more_pc {
    display: block;
  }
}
@media (min-width: 1024px) {
  #infomation .inner .right_block {
    flex-basis: calc(100% - 240px);
  }
}
#infomation .inner .right_block li {
  position: relative;
  padding-bottom: 15px;
  font-size: 1.4rem;
  font-weight: 500;
}
@media (min-width: 750px) {
  #infomation .inner .right_block li {
    display: flex;
    font-size: 1.2rem;
  }
}
#infomation .inner .right_block li:not(:last-child) {
  margin-bottom: 10px;
  border-bottom: 1px solid #b7b8b8;
}
#infomation .inner .right_block li .post_date {
  width: 100px;
  color: #9ba0a7;
  margin-right: 15px;
}
@media (max-width: 749px) {
  #infomation .inner .right_block li .post_date {
    margin-bottom: 5px;
  }
}
#infomation .inner .right_block li .post_title {
  flex-basis: calc(100% - 115px);
  color: #5f6772;
}
#infomation .inner .right_block li a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#infomation .inner .right_block li:hover .post_date,
#infomation .inner .right_block li:hover .post_title {
  opacity: 0.7;
}
#infomation .inner .more_sp {
  display: block;
  background-color: #6fc2ca;
  font-size: 2.1rem;
  color: #fff;
  text-align: center;
  text-decoration: none;
  width: 240px;
  margin: 50px auto 0;
  padding: 10px 0;
  border: 1px solid #6fc2ca;
  border-radius: 30px;
  transition: color 0.5s, background-color 0.5s;
}
#infomation .inner .more_sp:hover {
  color: #6fc2ca;
  background-color: #fff;
}
@media (min-width: 1024px) {
  #infomation .inner .more_sp {
    display: none;
  }
}

.back {
  padding: 50px 15px 100px;
  background-color: #fff;
  background-image: radial-gradient(rgba(123, 222, 217, 0.3) 20%, transparent 20%), radial-gradient(rgba(123, 222, 217, 0.3) 20%, transparent 20%);
  background-size: 30px 30px;
  background-position: 0 0, 15px 15px;
}
.back #registration {
  margin-bottom: 100px;
}
.back #registration .inner {
  max-width: 600px;
  margin: auto;
}
@media (min-width: 750px) {
  .back #registration .inner {
    max-width: 1024px;
    display: flex;
  }
}
.back #registration .inner .left_block,
.back #registration .inner .right_block {
  position: relative;
}
@media (min-width: 750px) {
  .back #registration .inner .left_block,
  .back #registration .inner .right_block {
    flex-basis: calc(50% - 7.5px);
  }
}
.back #registration .inner .left_block .txt_block,
.back #registration .inner .right_block .txt_block {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 30px;
  color: #fff;
}
.back #registration .inner .left_block .txt_block h3,
.back #registration .inner .right_block .txt_block h3 {
  font-size: 2.5rem;
  font-weight: 500;
  text-align: center;
}
@media (min-width: 750px) {
  .back #registration .inner .left_block .txt_block h3,
  .back #registration .inner .right_block .txt_block h3 {
    font-size: 3rem;
  }
}
.back #registration .inner .left_block .txt_block p,
.back #registration .inner .right_block .txt_block p {
  font-size: 1.5rem;
  font-weight: 500;
}
@media (min-width: 750px) {
  .back #registration .inner .left_block .txt_block p,
  .back #registration .inner .right_block .txt_block p {
    max-width: 330px;
    margin: 15px auto 0;
  }
}
@media (max-width: 749px) {
  .back #registration .inner .left_block {
    margin-bottom: 15px;
  }
}
@media (min-width: 750px) {
  .back #registration .inner .left_block {
    margin-right: 15px;
  }
}
.back #registration .inner .left_block .txt_block {
  background-color: rgba(241, 162, 190, 0.8);
}
.back #registration .inner .right_block .txt_block {
  background-color: rgba(111, 194, 202, 0.8);
}
.back #point .inner .icon {
  display: block;
  width: 112px;
  margin: 0 auto 15px;
}
@media (min-width: 1024px) {
  .back #point .inner .icon {
    width: 125px;
    margin: 0 auto 30px;
  }
}
.back #point .inner .section_eng {
  font-size: 3rem;
  font-weight: bold;
  color: #5f6772;
  text-align: center;
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  .back #point .inner .section_eng {
    font-size: 2.2rem;
  }
}
.back #point .inner .section_name {
  font-size: 1.9rem;
  color: #5f6772;
  text-align: center;
  margin-bottom: 30px;
}
@media (min-width: 1024px) {
  .back #point .inner .section_name {
    font-size: 1.4rem;
    margin-bottom: 80px;
  }
}
.back #point .inner .point_list {
  max-width: 600px;
  margin: auto;
}
@media (min-width: 1024px) {
  .back #point .inner .point_list {
    display: flex;
    max-width: 980px;
  }
}
.back #point .inner .point_list li {
  background-color: #fff;
  border: 2px solid #6fc2ca;
  border-radius: 5px;
  padding: 15px;
}
@media (max-width: 1023px) {
  .back #point .inner .point_list li:not(:last-child) {
    margin-bottom: 15px;
  }
}
@media (min-width: 1024px) {
  .back #point .inner .point_list li {
    flex-basis: calc(33.3% - 10px);
    padding: 30px;
  }
  .back #point .inner .point_list li:not(:last-child) {
    margin-right: 15px;
  }
}
.back #point .inner .point_list li .point_txt_pc,
.back #point .inner .point_list li .point_img_pc {
  display: none;
}
@media (min-width: 1024px) {
  .back #point .inner .point_list li .point_txt_pc,
  .back #point .inner .point_list li .point_img_pc {
    display: block;
  }
}
.back #point .inner .point_list li .point_txt_pc {
  width: 122px;
  margin: -70px auto 15px;
}
.back #point .inner .point_list li .point_img_pc {
  width: 145px;
  margin: 0 auto 15px;
}
.back #point .inner .point_list li .point_img_sp {
  display: block;
  max-width: 380px;
  margin: 0 auto 15px;
}
@media (min-width: 1024px) {
  .back #point .inner .point_list li .point_img_sp {
    display: none;
  }
}
.back #point .inner .point_list li .txt1,
.back #point .inner .point_list li .txt2 {
  color: #5f6772;
}
.back #point .inner .point_list li .txt1 {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  .back #point .inner .point_list li .txt1 {
    font-size: 1.8rem;
  }
}
.back #point .inner .point_list li .txt2 {
  font-size: 1.5rem;
}
@media (min-width: 1024px) {
  .back #point .inner .point_list li .txt2 {
    font-size: 1.4rem;
  }
}

#company .inner {
  max-width: 600px;
  width: calc(100% - 30px);
  margin: 100px auto;
}
@media (min-width: 1024px) {
  #company .inner {
    max-width: 900px;
  }
}
#company .inner .section_eng {
  font-size: 3rem;
  font-weight: bold;
  color: #5f6772;
  text-align: center;
  margin-bottom: 15px;
}
@media (min-width: 1024px) {
  #company .inner .section_eng {
    font-size: 2.2rem;
  }
}
#company .inner .section_name {
  font-size: 1.9rem;
  font-weight: 400;
  color: #5f6772;
  text-align: center;
  margin-bottom: 30px;
}
@media (min-width: 1024px) {
  #company .inner .section_name {
    font-size: 1.4rem;
  }
}
@media (min-width: 1024px) {
  #company .inner .detail {
    display: flex;
    align-items: center;
  }
}
@media (min-width: 1024px) {
  #company .inner .detail .left_block,
  #company .inner .detail .right_block {
    flex-basis: calc(50% - 25px);
  }
}
@media (min-width: 1024px) {
  #company .inner .detail .left_block {
    margin-right: 50px;
  }
}
@media (max-width: 1023px) {
  #company .inner .detail .left_block {
    margin-bottom: 30px;
  }
}
#company .inner .detail .left_block .map_wrap {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 75%;
}
#company .inner .detail .left_block .map_wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#company .inner .detail .right_block {
  font-size: 1.5rem;
  color: #5f6772;
}
#company .inner .detail .right_block li {
  display: flex;
}
#company .inner .detail .right_block li:not(:last-child) {
  margin-bottom: 10px;
}
#company .inner .detail .right_block li:not(:last-child) span:first-child {
  width: 45px;
  padding-right: 15px;
}
#company .inner .detail .right_block li:last-child span:first-child {
  width: 200px;
  padding-right: 15px;
}

.bottom_img {
  display: block;
  width: 100%;
  margin-bottom: 100px;
}

#contact {
  margin-top: -83px;
  padding-top: 83px;
}
@media (min-width: 1024px) {
  #contact {
    padding-top: 95px;
    margin-top: -95px;
  }
}

.contact {
  max-width: 720px;
  width: calc(100% - 30px);
  margin: 0 auto 100px;
  overflow: hidden;
}
.contact form {
  max-width: 100%;
}
.contact .form_title {
  font-size: 1.4rem;
  font-weight: 400;
  text-align: center;
  color: #fff;
  background-color: #f1a2be;
  padding: 98px 15px 15px;
  margin: -83px auto 30px;
}
@media (min-width: 1024px) {
  .contact .form_title {
    padding: 125px 30px 30px;
    margin: -95px auto 50px;
  }
}
.contact .form_title span {
  font-size: 2.5rem;
  font-weight: bold;
}
.contact table {
  font-size: 17px;
  font-weight: 400;
  margin: 0 auto 50px;
  width: 100%;
}
@media (max-width: 749px) {
  .contact table tr:not(:last-child) td {
    margin-bottom: 15px;
  }
}
@media (max-width: 749px) {
  .contact table th,
  .contact table td {
    display: block;
  }
}
.contact table th {
  min-width: 250px;
  font-weight: 400;
  text-align: left;
  vertical-align: top;
  color: #5f6772;
}
@media (min-width: 750px) {
  .contact table th {
    padding: 30px 15px;
  }
}
.contact table th span {
  color: #f1a2be;
}
.contact table td {
  padding: 15px 0;
  color: #5f6772;
}
@media (min-width: 750px) {
  .contact table td {
    padding: 30px 50px 30px 0;
  }
}
.contact table td input[type=text],
.contact table td textarea {
  background-color: #eaeaea;
  border-color: transparent;
  padding: 2px;
  border-radius: 5px;
}
.contact table td input[type=text]:not(.age),
.contact table td textarea:not(.age) {
  width: 100%;
}
.contact table td input[type=text].age,
.contact table td textarea.age {
  width: 80px;
}
.contact table td input[type=radio] {
  width: auto;
}
.contact table input[type=text],
.contact table textarea {
  font-size: 1.6rem;
  width: 100%;
  padding: 5px;
  background-color: #eff0f0;
}
.contact .submit_wrap {
  text-align: center;
}
.contact .submit_wrap button[type=submit],
.contact .submit_wrap input[type=submit] {
  cursor: pointer;
  font-family: "Noto Sans JP", serif;
  font-size: 1.9rem;
  font-weight: 500;
  color: #fff;
  background-color: #f1a2be;
  padding: 15px 30px;
  width: 240px;
  margin: auto auto 15px;
  border-radius: 5px;
  border-color: transparent;
  text-align: center;
}
.contact .form-privacy {
  max-width: 600px;
  margin: auto;
}
.contact .form-privacy h3.privacy-h3 {
  font-size: 23px;
  font-weight: 500;
}
.contact .form-privacy .privacy-wrap {
  overflow-y: auto;
  height: 150px;
  font-size: 14px;
  color: #5f6772;
  border: 1px solid #5f6772;
  padding: 15px;
  margin: 15px auto 50px;
}
@media (min-width: 750px) {
  .contact .form-privacy .privacy-wrap {
    padding: 30px;
  }
}
.contact .form-privacy .privacy-wrap .txt1,
.contact .form-privacy .privacy-wrap .txt2 {
  font-weight: 500;
}
.contact .form-privacy .privacy-wrap .txt1 {
  font-size: 1.6rem;
}
.contact .form-privacy .privacy-wrap .txt2 {
  margin-bottom: 15px;
}
.contact .form-privacy .privacy_check {
  background-color: #f6f6f6;
  padding: 15px;
  margin-bottom: 50px;
  text-align: center;
}
.contact .form-privacy .privacy_check .txt {
  font-size: 1.4rem;
  font-weight: 500;
  margin-bottom: 15px;
}
.contact .form-privacy .privacy_check .inner {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.4rem;
}
.contact .form-privacy .privacy_check .inner .icon {
  width: 50px;
  background-color: #6fc2ca;
  padding: 3px;
  margin-right: 15px;
  border-radius: 15px;
  font-size: 1.3rem;
  text-align: center;
  color: #fff;
}
.contact .form-privacy .privacy_check .inner input[type=checkbox] {
  width: auto;
}

.page_inner {
  max-width: 800px;
  width: calc(100% - 30px);
  margin: auto;
  padding: 100px 0;
}
.page_inner .txt1,
.page_inner .txt2 {
  color: #000;
}
.page_inner .txt1 {
  font-size: 3.3rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 50px;
}
.page_inner .txt2 {
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 100px;
}

.fadeUp {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.5s, transform 0.5s;
}
.fadeUp.is_show {
  opacity: 1;
  transform: translateY(0);
}