* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Kiwi Maru", serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(10px, calc(10 / 1024 * 100vw), 12px);
}

/* body内全部 */
.facility_service_wrap {
  width: 100%;
  max-width: 128rem;
  margin: 0 auto;
}

/* ロゴと施設・サービス紹介の見出し */
.logo_introduction_wrap {
  display: flex;
  align-items: center;
  color: #a54c2f;
  margin: 5rem auto 2rem;
  width: 90%;
  max-width: 128rem;
  padding-left: 4rem;
}

/* 見出しの横のロゴ */
.main_logo {
  width: 5.5rem;
  height: auto;
  object-fit: cover;
  margin-top: -5rem;
  margin-right: 0.5rem;
}

section {
  /* ヘッダーの高さに合わせて数値を調整してください（例：80pxの場合） */
  scroll-margin-top: 80px;
}

/* 施設・サービス紹介 */
.introduction_title {
  font-size: 3rem;
  font-weight: 400;
}

/* 通う・泊まる・暮らしを～ */
.introduction_text {
  font-size: 3.7rem;
  font-weight: 400;

}

/* sectionを包んだもの */
.introduction_section {
  width: 90%;
  height: auto;
  border-radius: 1rem;
  margin: 0 auto 6rem;
  padding-top: 3rem;
  padding-bottom: 10rem;
  position: relative;
  overflow: visible;
  z-index: 0;
}

/* 背景のぼかし */
.introduction_section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ceda9e;
  border-radius: inherit;
  filter: blur(10px);
  transform: scale(0.96);
  z-index: -1;
}

/* section内の施設名とロゴを包んだもの */
.facilityname_logo_wrap {
  display: flex;
  align-items: center;
  margin: 6rem 0 6rem 7rem;
}

/* 縦棒 */
.height_border {
  width: 0.5rem;
  height: 5.5rem;
}

/* 施設名と英名 */
.facilityname_wrap {
  margin-left: 1rem;
}

/* 施設名 */
.facilityname {
  color: #a54c2f;
  font-size: 3.5rem;
  font-weight: 400;

}

/* 英名 */
.facilityname_en {
  font-family: "Poppins", sans-serif;
  color: #ac9c97;
  font-size: 1.4rem;
}

/* section内見出し */
.section_title {
  color: #a54c2f;
  font-size: 2.3rem;
  margin: 0 0 0.5rem 7.5rem;
  font-weight: 400;

}

/* section内見出しの本文 */
.section_text {
  margin-left: 7.5rem;
  margin-bottom: 3rem;
  font-size: 1.8rem;
}

/* 提供サービス等各タイトルと横棒 */
.section_item_wrap {
  display: flex;
  align-items: center;
  margin-left: 7.5rem;
}

/* 横棒 */
.width_border {
  width: 2.5rem;
  height: 0.4rem;
  margin-right: 0.5rem;
}

/* 提供サービス・特徴・アクセスのタイトル */
.section_item {
  font-size: 2rem;
  font-weight: 400;

}

/* 提供サービスの内容全体 */
.service_list_wrap {
  display: flex;
  flex-wrap: nowrap;
  /* ★PC時（広い時）は絶対に折り返さず一列にする */
  justify-content: center;
  gap: 2rem;
  width: 100%;
  margin: 0 auto 4rem;
}

/* 提供サービスの黄色背景の画像 */
.service_icon {
  width: 20rem;
  height: auto;
  object-fit: cover;
}

.service_icon_wrap {
  position: relative;
  display: inline-block;
  margin: 2rem 0 -2rem;
}

.service_text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-53%, -50%);
  font-size: 2rem;
  color: #a54c2f;
  line-height: 1.3;
  text-align: center;
  margin: 0 auto;
  width: 75%;

}

.gallery_arrow {
  display: none;
}

/* 提供サービスの画像一覧を包んだもの */
.service_image_wrap {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  width: 90%;
  max-width: 128rem;
  margin: 0 auto 3rem;
}

/* 提供サービスの外装内装画像 */
.service_image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 10px;
  transition: transform 0.4s ease;
}

.service_image_wrap a {
  overflow: hidden;
  border-radius: 10px;
  display: block;
}

.service_image:hover {
  transform: scale(1.08);
}

/* 特徴の内容全体 */
.feature_ul {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(16rem, 30rem));
  column-gap: 0.5rem;
  row-gap: 1rem;
  margin: 1rem 0 3rem 10rem;
}

/* 特徴のリストの丸 */
.circle {
  color: #87ae41;
  font-size: 1.2rem;
  margin-right: 0.5rem;
}

/* 特徴の内容の１文１文 */
.feature_li {
  color: #a54c2f;
  font-size: 1.8rem;
}

/* アクセス全体 */
.access_wrap {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
}

/* 住所と案内全体 */
.access_text_wrap {
  display: flex;
}

/* 住所と案内１つ１つ */
.access_text {
  font-size: 1.8rem;
  color: #a54c2f;
  margin-top: 2rem;
  margin-left: 3rem;
}

.access_tel {
  font-size: 1.8rem;
  color: #a54c2f;
  margin-left: 3rem;
  text-decoration: none;
}

/* Googleマップ */
.access_map {
  width: 100%;
  max-width: 100rem;
  height: 40rem;
  border-radius: 10px;
  display: block;
  /* ★確実に真ん中寄せが効くようにブロック要素にする */
  margin: 0 auto;
}

@media screen and (max-width: 1279px) {

  .facility_service_wrap {
    width: 100%;
    overflow: hidden;
    /* 万が一中身が数ピクセル出ても画面をスクロールさせない */
  }

  .logo_introduction_wrap {
    width: 85%;
  }

  .introduction_section {
    padding: 3rem 8rem 10rem;
    width: 90%;
    margin: 0 auto;
  }

  /* section内のロゴと施設名 */
  .facilityname_logo_wrap {
    margin: 5rem 0;
  }

  /* section内の見出しとその内容 */
  .section_title,
  .section_text {
    margin-left: 0;
    margin-right: 0;
  }

  /* 各項目と横棒 */
  .section_item_wrap {
    margin-left: 0;
  }

  .width_border {
    margin-left: 0;
  }

  .service_gallery {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .service_slider {
    overflow: hidden;
  }

  .service_image_wrap {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 12px;
    width: 100%;
    padding: 0;
    margin: 0 auto 4rem;
    scroll-behavior: smooth;
    scrollbar-width: none;
  }

  .service_image_wrap::-webkit-scrollbar {
    display: none;
  }

  /* 3枚表示 */
  .service_image_wrap a {
    flex: 0 0 calc((100% - 12px) / 2);
    display: block;
  }

  .service_image {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    display: block;
  }

  /* 矢印 */
  .gallery_arrow {
    display: block;
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    z-index: 10;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.8);
    font-size: 28px;
    cursor: pointer;
  }

  .gallery_arrow.prev {
    left: 20px;
    background: rgba(255, 248, 240, 0.8);
  }

  .gallery_arrow.next {
    right: 20px;
    background: rgba(255, 248, 240, 0.8);
  }

  /* 画像のポップアップ表示・ここから */
  .lb-outerContainer {
    width: 80vw;
    max-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    top: 70px;
  }

  .lb-image {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 70vh;
    object-fit: contain;
  }

  .lb-close {
    margin-top: 80px;
  }

  /* ここまで */

  /* 特徴の内容 */
  .feature_ul {
    margin-left: 2rem;
  }

  /* Googleマップ */
  .access_map {
    width: 100%;
    max-width: 70rem;
    height: 40rem;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 1rem;
  }

  .access_map {
    width: 100%;
    max-width: 100rem;
    /* タブレット時は少しマップを広げる */
    height: 40rem;
    margin: 0 auto 1rem;
    /* ★ここも左右 auto にして中央寄せをキープ */
  }
}

@media screen and (max-width: 1024px) {
  .service_list_wrap {
    flex-wrap: wrap;
    /* 折り返しを許可 */
    max-width: 90%;
    /* 3個のサイズに制限して3対2にする */
    row-gap: 0rem;
  }
}

@media screen and (max-width:905px) {

  .main_logo {
    margin-top: -10rem;
  }

}

@media screen and (max-width:767px) {

  /* body内全体 */
  .facility_service_wrap {
    width: 100%;
  }

  .logo_introduction_wrap {
    margin: 2rem auto 1rem;
    width: 90%;
  }

  .main_logo {
    width: 3rem;
    margin-top: -4rem;
  }

  .introduction_title {
    font-size: 1.8rem;
  }

  .service_icon {
    width: 13.5rem;
  }

  .service_text {
    font-size: 1.6rem;
  }

  .introduction_wrap {
    width: 100%;
  }

  /* 通う・泊まる・・・安心で */
  /* なぜかmarginがついてるので削除 */
  .introduction_text {
    margin-left: 0;
    text-align: left;
    font-size: 2.7rem;
  }

  .introduction_section {
    width: 90%;
    padding: 8rem 5rem;
  }

  .facility_logo {
    width: 9rem;
  }

  .height_border {
    height: 4rem;
  }

  .facilityname_logo_wrap {
    margin: 0rem;
  }

  .facilityname {
    font-size: 3rem;
  }

  .facilityname_en {
    font-size: 1.6rem;
  }

  .section_title,
  .section_text {
    margin-left: 0;
  }

  .section_title {
    font-size: 1.8rem;
    margin-top: 2rem;
  }


  .section_item_wrap {
    margin-left: 0rem;
  }

  .service_list_wrap {
    width: 100%;
    flex-wrap: wrap;
  }


  .service_gallery {
    overflow: visible;
  }

  .service_image {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  /* 1枚表示 */
  .service_image_wrap {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .service_image_wrap a {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }

  .gallery_arrow {
    width: 32px;
    height: 32px;
    font-size: 22px;
  }

  .gallery_arrow.prev {
    left: -23px;
  }

  .gallery_arrow.next {
    right: -23px;
  }

  .feature_ul {
    margin-left: -5px;
    display: block;
  }

  .access_wrap {
    display: flex;
    flex-direction: column;
    align-items: start;
  }

  .access_text_wrap {
    display: block;
    margin-top: 1rem;
  }

  .access_text,
  .access_tel {
    margin-left: 0;
  }

  .access_map {
    width: 100%;
    height: 30rem;
    margin-left: 0;
  }

}

@media screen and (max-width:699px) {

  .main_logo {
    margin-top: -3rem;
  }

  .introduction_text {
    font-size: 2.5rem;
  }

}

@media screen and (max-width:655px) {

  .main_logo {
    margin-top: -5rem;
  }

}

@media screen and (max-width:580px) {

  .facilityname {
    font-size: 2.6rem;
  }

}


@media screen and (max-width:521px) {

  .facilityname {
    font-size: 2.3rem;
  }

}

@media screen and (max-width:477px) {

  .facilityname {
    font-size: 1.6rem;
  }

  .facilityname_en {
    font-size: 0.8rem;
  }

  .section_title {
    font-size: 1.3rem;
  }

  .section_text {
    font-size: 1.5rem;
  }

  .feature_li {
    font-size: 1.6rem;
  }

  .access_text {
    font-size: 1.5rem;
  }

}


@media screen and (max-width:469px) {

  .service_list_wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  /* 5個ある場合だけ最後を中央 */
  .service_icon_wrap:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
  }

  .height_border {
    height: 2.8rem;
  }

  .introduction_text{
    font-size: 1.8rem;
    width: 22rem;
  }

}

@media screen and (max-width:376px) {

  .main_logo {
    margin-top: -5rem;
  }


}