html {
  overflow-x: hidden;
}

body {
  overflow-x: hidden;
}

.mv {
  margin: 0 auto 114px;
  max-width: 1920px;
  width: 100%;
}

.news {
  margin: 0 0 120px;
}

.news_contents {
  display: flex;
  justify-content: space-between;
}

.news_contents_left {
  width: 20%;
}

.news_title {
  margin: 0 0 158px;
  width: 42.5%;
}

.news_contents_link {
  color: #2d2d2d;
  font-size: 18px;
  font-weight: bold;
  line-height: 55px;
  opacity: 1;
  transition: 0.2s;
  position: relative;
}

.news_contents_link:hover {
  opacity: 0.6;
}

.news_contents_link::after {
  background-image: url("../img/top/news_contents_link_arrow.jpg");
  background-size: 100%;
  content: "";
  position: absolute;
  top: 0;
  right: -24px;
  bottom: 0;
  margin: auto;
  height: 23px;
  width: 22px;
}

.news_contents_link.news_contents_link_pc {
  display: inline;
}

.news_contents_link.news_contents_link_sp {
  display: none;
}

.news_contents_right {
  width: 75%;
}

.news_contents_right.no_post .news_post_link {
  pointer-events: none;
}

.news_contents_right.no_post .news_post_link::after {
  content: unset;
}

.news_contents_right.no_post .news_post_link:hover {
  opacity: 1;
}

.news_post {
  border-bottom: 2px solid #cfd2d2;
  display: flex;
  align-items: flex-start;
  padding: 0 0 27px 0;
  margin: 0 0 27px;
}

.news_post_link {
  color: #2d2d2d;
  font-size: 18px;
  font-weight: bold;
  display: flex;
  align-items: flex-start;
  position: relative;
  padding: 0 40px 0 0;
  opacity: 1;
  transition: 0.2s;
  line-height: 34px;
  width: 100%;
}

.news_post_link:hover {
  opacity: 0.6;
}

.news_post_link::after {
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  content: "";
  display: inline-block;
  height: 16px;
  margin: auto;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 6px;
  width: 16px;
}

.new_post_date {
  background-color: #c8f0eb;
  border-radius: 6px;
  color: #2d2d2d;
  font-size: 16px;
  font-weight: bold;
  line-height: 24px;
  padding: 7px 12px 6px;
  margin: 0 30px 0 0;
}

.facility {
  background-image: url("../img/top/facility_bg.jpg");
  background-position-x: center;
  background-size: 1920px;
  padding: 100px 0;
}

.facility_title {
  margin: 0 auto 60px;
  width: 384px;
}

.facility_img {
  max-width: 1920px;
  position: relative;
  margin: 0 auto 46px;
  width: 100%;
}

.facility_img_contents {
  position: absolute;
  right: 0;
  bottom: 20px;
  left: 0;
  margin: auto;
  width: 1100px;
}

.facility_img_contents_head {
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  line-height: 56px;
  text-shadow: 0 0 12px #000;
}

.facility_img_contents_text {
  background-color: rgb(255 255 255 / 0.7);
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  padding: 16px;
  text-align: justify;
  text-shadow: 0 0 6px #fff;
}

.facility_contents {
  display: flex;
  justify-content: center;
}

.facility_contents_img {
  display: flex;
  justify-content: center;
  margin: 0 auto 20px;
  width: 1490px;
}

.facility_contents_img img {
  width: inherit;
}

.facility_contents_link {
  display: flex;
  justify-content: center;
  opacity: 1;
  margin: 0 auto 120px;
  transition: 0.2s;
  text-align: center;
  width: 500px;
}

.facility_contents_link:hover {
  opacity: 0.6;
}

.facility_introduce {
  background-color: #fff;
  max-width: 1200px;
  margin: 0 auto;
  padding: 90px 50px;
  width: 100%;
}

.facility_introduce_title {
  margin: 0 auto 60px;
  width: 16.33333333%;
}

.facility_introduce_item_title {
  color: #3c3c3c;
  font-size: 24px;
  font-weight: bold;
  line-height: 56px;
  text-align: center;
}

.facility_introduce_item_text {
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  margin: 0 0 56px;
  text-align: justify;
}

.facility_introduce_item_img {
  margin: 0 0 60px;
  width: 100%;
}

.facility_introduce_item_link {
  display: flex;
  justify-content: center;
  margin: 0 auto;
  opacity: 1;
  transition: .2s;
  width: 45.45454545%;
}

.facility_introduce_item_link:hover {
  opacity: .6;
}

.program {
  background-image: url("../img/top/program_bg.png");
  background-position-x: center;
  background-size: 1920px;
  padding: 130px 0;
  margin: 0 auto;
  max-width: 1920px;
}

.program_title {
  margin: 0 auto 60px;
  width: 172px;
}

.program_img {
  margin: 0 auto 64px;
  width: 100%;
}

.program_text {
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  margin: 0 auto 44px;
  text-align: justify;
  width: 1095px;
}

.program_btn {
  display: block;
  margin: 0 auto;
  opacity: 1;
  transition: .2s;
  width: 500px;
}

.program_btn:hover {
  opacity: .6;
}

.bg_dot {
  background-image: url("../img/top/schedule_bg.jpg");
  background-size: auto;
  background-repeat: repeat;
  margin: 0 auto;
  padding: 0 0 120px;
  max-width: 1920px;
}

.schedule {
  padding: 120px 0;
  margin: 0 auto;
  width: 1200px;
}

.schedule_title {
  margin: 0 auto 60px;
  width: 188px;
}

.schedule_text {
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  margin: 0 0 60px;
}

.schedule_img {
  margin: 0 0 60px;
  width: 100%;
}

.schedule_btn {
  display: block;
  margin: 0 auto;
  opacity: 1;
  transition: .2s;
  width: 41.66666666%;
}

.schedule_btn:hover {
  opacity: .6;
}

.restaurant {
  background-color: #fffac3;
  padding: 25px;
  margin: 0 auto 120px;
  width: 1200px;
}

.restaurant_inner {
  border: 2px solid #23b99b;
  padding: 95px 75px;
}

.restaurant_title {
  margin: 0 auto 60px;
  width: 23.493975%;
}

.restaurant_head {
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 56px;
  line-height: 30px;
}

.restaurant_item01 {
  margin: 0 0 55px;
}

.restaurant_item01_img {
  margin: 0 0 14px;
}

.restaurant_item01_text {
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  text-align: justify;
}

.restaurant_item02 {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.restaurant_item02 > div:not(:nth-of-type(3n)) {
  margin: 0 4.8% 2% 0;
}

.restaurant_item02_col {
  width: 30.120481%;
}

.restaurant_item02_img {
  margin: 0 0 14px;
}

.restaurant_item02_text {
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  text-align: justify;
}

.company {
  background-color: #fff;
  margin: 0 auto;
  padding: 62px 50px;
  width: 1200px;
}

.company_title {
  margin: 0 auto 60px;
  width: 39.636363%;
}

.company_text {
  color: #3c3c3c;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  text-align: justify;
  margin: 0 0 60px;
}

.company_logo {
  margin: 0 auto;
  width: 45%;
}

.links {
  background-image: url("../img/top/links_bg.jpg");
  background-size: 1920px;
  background-position-x: center;
  margin: 0 auto;
  padding: 104px 0;
  max-width: 1920px;
}

.links_title {
  margin: 0 auto 60px;
  /* width: 14.322916%; */
  width: 275px;
}

.links_text {
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  line-height: 30px;
  text-align: justify;
  margin: 0 auto 60px;
  /* width: 57.03125%; */
  width: 1043px;
}

.links_items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto;
  /* width: 57.03125%; */
  width: 1043px;
}

.links_item {
  margin: 0 1%;
}

.links_item a {
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  line-height: 55px;
  padding: 0 40px 0 0;
  position: relative;
  opacity: 1;
  transition: 0.2s;
}

.links_item a:hover {
  opacity: 0.6;
}

.links_item a::after {
  background-image: url("../img/top/links_item_icon.png");
  background-size: 100%;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  height: 29px;
  width: 29px;
}

@media screen and (max-width: 1200px) {
  .mv {
    margin: 0 auto 9.5vw;
    max-width: 160vw;
  }
  
  .news {
    margin: 0 0 10vw;
  }
  
  .news_title {
    margin: 0 0 13.167vw;
  }
  
  .news_contents_link {
    font-size: 1.5vw;
    line-height: 4.583vw;
  }
  
  .news_contents_link::after {
    right: -2vw;
    height: 1.917vw;
    width: 1.833vw;
  }
  
  .news_post {
    border-bottom: 2px solid #cfd2d2;
    padding: 0 0 2.25vw 0;
    margin: 0 0 2.25vw;
  }
  
  .news_post_link {
    font-size: 1.5vw;
    padding: 0 3.333vw 0 0;
    line-height: 2.833vw;
  }
  
  .news_post_link::after {
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    height: 1.333vw;
    right: .5vw;
    width: 1.333vw;
  }
  
  .new_post_date {
    border-radius: .5vw;
    font-size: 1.333vw;
    line-height: 2vw;
    padding: .583vw 1vw .5vw;
    margin: 0 2.5vw 0 0;
  }
  
  .facility {
    background-size: 160vw;
    padding: 8.333vw 0;
  }
  
  .facility_title {
    margin: 0 auto 5vw;
    width: 32vw;
  }
  
  .facility_img {
    max-width: 160vw;
    margin: 0 auto 3.833vw;
  }
  
  .facility_img_contents {
    bottom: 1.667vw;
    width: 91.667vw;
  }
  
  .facility_img_contents_head {
    font-size: 2vw;
    line-height: 4.667vw;
    text-shadow: 0 0 1vw #000;
  }
  
  .facility_img_contents_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
    padding: 1.333vw;
    text-shadow: 0 0 .5vw #fff;
  }
  
  .facility_contents_img {
    margin: 0 auto 1.667vw;
    width: 124.167vw;
  }
  
  .facility_contents_link {
    margin: 0 auto 10vw;
    width: 41.667vw;
  }
  
  .facility_introduce {
    max-width: 100vw;
    padding: 7.5vw 4.167vw;
  }
  
  .facility_introduce_title {
    margin: 0 auto 5vw;
  }
  
  .facility_introduce_item_title {
    font-size: 2vw;
    line-height: 4.667vw;
  }
  
  .facility_introduce_item_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
    margin: 0 0 4.667vw;
  }
  
  .facility_introduce_item_img {
    margin: 0 0 5vw;
  }
  
  .program {
    background-size: 160vw;
    padding: 10.833vw 0;
    max-width: 160vw;
  }

  .program_title {
    margin: 0 auto 5vw;
    width: 14.333vw;
  }
  
  .program_img {
    margin: 0 auto 5.333vw;
  }
  
  .program_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
    margin: 0 auto 3.667vw;
    width: 91.25vw;
  }
  
  .program_btn {
    width: 41.667vw;
  }
  
  .bg_dot {
    padding: 0 0 10vw;
    max-width: 160vw;
  }
  
  .schedule {
    padding: 10vw 0;
    width: 96%;
  }
  
  .schedule_title {
    margin: 0 auto 5vw;
    width: 15.667vw;
  }
  
  .schedule_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
    margin: 0 0 5vw;
  }
  
  .schedule_img {
    margin: 0 0 5vw;
  }
  
  .restaurant {
    padding: 2.083vw;
    margin: 0 auto 10vw;
    width: 96%;
  }
  
  .restaurant_inner {
    padding: 7.917vw 6.25vw;
  }
  
  .restaurant_title {
    margin: 0 auto 5vw;
  }
  
  .restaurant_head {
    font-size: 1.5vw;
    margin: 0 0 4.667vw;
    line-height: 2.5vw;
  }
  
  .restaurant_item01 {
    margin: 0 0 4.583vw;
  }
  
  .restaurant_item01_img {
    margin: 0 0 1.167vw;
  }
  
  .restaurant_item01_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
  }
  
  .restaurant_item02_img {
    margin: 0 0 1.167vw;
  }
  
  .restaurant_item02_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
  }
  
  .company {
    padding: 5.167vw 4.167vw;
    width: 96%;
  }
  
  .company_title {
    margin: 0 auto 5vw;
  }
  
  .company_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
    margin: 0 0 5vw;
  }
  
  .links {
    background-size: 160vw;
    padding: 8.667vw 0;
    max-width: 160vw;
  }
  
  .links_title {
    margin: 0 auto 5vw;
    width: 22.917vw;
  }
  
  .links_text {
    font-size: 1.5vw;
    line-height: 2.5vw;
    margin: 0 auto 5vw;
    width: 86.917vw;
  }
  
  .links_items {
    width: 86.917vw;
  }
  
  .links_item a {
    font-size: 2vw;
    line-height: 4.583vw;
    padding: 0 3.333vw 0 0;
  }
  
  .links_item a::after {
    height: 2.417vw;
    width: 2.417vw;
  }
}

@media screen and (max-width: 768px) {
  .mv {
    margin: 0 auto 13.333vw;
    max-width: 100%;
  }

  .news {
    margin: 0 0 13.333vw;
  }

  .news_contents {
    display: block;
  }

  .news_contents_left {
    width: 100%;
  }

  .news_title {
    margin: 0 auto 9.333vw;
    width: 21.076923%;
  }

  .news_contents_right {
    width: 100%;
  }

  .news_post {
    margin: 0 0 2.85vw;
  }

  .news_post_link {
    flex-direction: column;
    font-size: 2.933vw;
    padding: 0;
    line-height: 4.267vw;
  }

  .news_post_link::after {
    content: unset;
  }

  .new_post_date {
    border-radius: 0.8vw;
    margin: 0 2.5vw 1.2vw 0;
    font-size: 1.867vw;
    padding: 0 1.333vw;
    line-height: 3.467vw;
  }

  .news_contents_link::after {
    background-image: url("../img/top/news_contents_link_arrow_sp.jpg");
    right: 0;
    height: 4.533vw;
    width: 4.533vw;
  }

  .news_contents_link.news_contents_link_pc {
    display: none;
  }
  
  .news_contents_link.news_contents_link_sp {
    display: flex;
    justify-content: flex-end;
    font-size: 3.733vw;
    line-height: 6.667vw;
    padding: 0 5.333vw 0 0;
  }

  .facility {
    background-image: url("../img/top/facility_bg_sp.jpg");
    background-size: cover;
    padding: 8vw 0 13.333vw;
  }

  .facility_title {
    margin: 0 auto 8vw;
    width: 69.066666%;
  }

  .facility_img {
    max-width: 100%;
    margin: 0 auto 46vw;
  }

  .facility_img_contents {
    bottom: -42.333vw;
    width: 86.666666%;
  }

  .facility_img_contents_head {
    font-size: 4.267vw;
    line-height: 5.6vw;
    margin: 0 0 1.333vw;
    text-shadow: 0 0 1.6vw #000;
    text-align: center;
  }

  .facility_img_contents_text {
    font-size: 3.733vw;
    line-height: 5.6vw;
    padding: 3vw 9.333vw;
    text-shadow: none;
  }

  .facility_contents_img {
    margin: 0 auto 6.667vw;
    width: 100%;
  }

  .facility_contents_img picture {
    width: 100%;
  }

  .facility_contents_link {
    margin: 0 auto 13.333vw;
    width: 66.133333%;
  }

  .facility_introduce {
    padding: 8vw 9.6vw 9.333vw;
    max-width: 100%;
    width: 86.666666%;
  }

  .facility_introduce_title {
    margin: 0 auto 9.6vw;
    width: 40%;
  }

  .facility_introduce_item_title {
    font-size: 4.267vw;
    line-height: 5.6vw;
    margin: 0 0 8vw;
  }

  .facility_introduce_item_text {
    font-size: 3.733vw;
    line-height: 6.4vw;
    margin: 0 0 4.667vw;
  }

  .facility_introduce_item_link {
    width: 100%;
  }

  .program {
    background-image: url("../img/top/program_bg_sp.png");
    background-size: cover;
    padding: 12vw 0 14vw;
    position: relative;
    max-width: 100%;
  }

  .program_title {
    margin: 0 auto 9.333vw;
    width: 30.933333%;
  }

  .program_img {
    margin: 0 auto 9.333vw;
  }

  .program_text {
    font-size: 3.733vw;
    line-height: 6.4vw;
    margin: 0 auto 6.667vw;
    width: 86.666666%;
  }

  .program_btn {
    width: 70.4%;
  }

  .bg_dot {
    padding: 0 0 13.333vw;
    max-width: 100%;
    margin: -4vw 0 0;
  }

  .schedule {
    padding: 11.733vw 0 13.333vw;
    width: 86.666666%;
  }

  .schedule_title {
    margin: 0 auto 9.733vw;
    width: 38.769230%;
  }

  .schedule_text {
    font-size: 3.733vw;
    line-height: 6.4vw;
    margin: 0 0 9.333vw;
  }

  .schedule_img {
    margin: 0 auto 6.667vw;
    width: 77.692307%;
  }

  .schedule_btn {
    width: 79.692307%;
  }

  .restaurant {
    padding: 2.667vw;
    margin: 0 auto 13.333vw;
    width: 86.666666%;
  }

  .restaurant_inner {
    padding: 12vw 6.667vw 11.733vw;
  }

  .restaurant_title {
    margin: 0 auto 9.333vw;
    width: 62.05533%;
  }

  .restaurant_head {
    font-size: 3.733vw;
    margin: 0 0 6.133vw;
    line-height: 5.6vw;
    text-align: justify;
  }

  .restaurant_item01 {
    margin: 0 0 5.867vw;
  }

  .restaurant_item01_img {
    margin: 0 0 2vw;
  }

  .restaurant_item01_text {
    font-size: 3.733vw;
    line-height: 5.6vw;
  }

  .restaurant_item02 {
    display: block;
  }

  .restaurant_item02 > div:not(:nth-of-type(3n)) {
    margin: 0 0 5.867vw;
  }

  .restaurant_item02_col {
    margin: 0 0 5.867vw;
    width: 100%;
  }

  .restaurant_item02_col:last-child {
    margin: 0;
  }

  .restaurant_item02_img {
    margin: 0 0 2vw;
  }

  .restaurant_item02_text {
    font-size: 3.733vw;
    line-height: 5.6vw;
  }

  .company {
    padding: 8.267vw 1.333vw 13.333vw;
    width: 86.666666%;
  }

  .company_title {
    margin: 0 auto 8vw;
    width: 55.230769%;
  }

  .company_text {
    font-size: 3.733vw;
    line-height: 5.6vw;
    margin: 0 0 5.6vw;
  }

  .company_logo {
    width: 77.692307%;
  }

  .links {
    background-image: url("../img/top/links_bg_sp.jpg");
    background-size: cover;
    padding: 12vw 0 15vw;
    max-width: 100%;
  }

  .links_title {
    margin: 0 auto 9.333vw;
    width: 49.2%;
  }

  .links_text {
    font-size: 3.733vw;
    line-height: 6.4vw;
    margin: 0 auto 13.333vw;
    width: 86.666666%;
  }

  .links_items {
    flex-wrap: wrap;
    width: 86.666666%;
  }

  .links_item {
    margin: 0 0 5vw;
    width: 50%;

    text-align: center;
    width: 100%;
  }

  .links_item a {
    font-size: 4.267vw;
    line-height: 5.333vw;
    padding: 0 5.333vw 0 0;
  }

  .links_item a::after {
    background-image: url("../img/top/links_item_icon_sp.png");
    top: unset;
    bottom: .6vw;
    height: 4.533vw;
    width: 4.533vw;
  }
}
