/* =============================================
   TOPページ用CSS
   ============================================= */

/* ---------------------------------------------
   1. ベーススタイル
   --------------------------------------------- */
body {
  font-family: "Zen Old Mincho", serif;
}

section {
  padding: 90px 0 0;
}
@media (width >= 769px) {
  section {
    padding: 155px 0;
  }
}

a,
button {
  cursor: pointer;
  &:hover {
    opacity: 0.8;
    transition: opacity 0.3s;
  }
}

/* ---------------------------------------------
   2. ユーティリティクラス
   --------------------------------------------- */
.pc-none {
  display: block;
}
@media (width >= 769px) {
  .pc-none {
    display: none;
  }
}

.sp-none {
  display: none;
}
@media (width >= 769px) {
  .sp-none {
    display: block;
  }
  .TopTtl .subTitl {
    margin-bottom: 25px;
  }
}

/* ---------------------------------------------
   3. 共通コンポーネント
   --------------------------------------------- */
.TopTtl {
  margin-bottom: 85px;

  h2 {
    --clamp-min: 22;
    --clamp-max: 30;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: center;
  }
  .subTitle {
    --clamp-min: 12;
    --clamp-max: 14;
    color: #bebebe;
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin-bottom: 15px;
    /* font-weight: 300; */
    text-align: center;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
}

/* ボタンエリア */
.BtnArea {
  margin-top: 50px;
  text-align: center;
  .btn {
    font-size: 1.6rem;
    color: #000;
    text-decoration: none;
    display: inline-block;
    padding: 18px 50px;
    border: 1px solid #ccc;
    letter-spacing: 0.1em;
    transition: all 0.3s ease;
    background: #fff;
  }
  .btn:hover {
    background: #f5f5f5;
    border-color: #999;
  }
}

/* ---------------------------------------------
   4. イントロアニメーション
   --------------------------------------------- */
#intro {
  width: 100%;
  height: 100svh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background: #fff;
}

#introInner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding-bottom: 60px;
}

#introInnerTop {
  width: 17.13vw;
  margin-bottom: 1vw;
}

#introInnerBottom {
  width: 9.22vw;
  margin-bottom: 2vw;
  opacity: 0;
  visibility: hidden;
  transition-duration: 0.5s;

  &.active {
    opacity: 1;
    visibility: visible;
  }
}

#introInnerLogo {
  width: 17.13vw;
  opacity: 0;
  visibility: hidden;
  transition-duration: 0.5s;

  &.active {
    opacity: 1;
    visibility: visible;
  }
}

@media (max-width: 768px) {
  #introInnerTop {
    width: 200px;
    margin-bottom: 12px;
  }
  #introInnerLogo {
    width: 200px;
  }
  #introInnerBottom {
    width: 120px;
    margin-bottom: 15px;
  }
}

/* ---------------------------------------------
   5. メインビジュアル (Swiper)
   --------------------------------------------- */
#mainVisualImgInner {
  position: relative;
  overflow: hidden;
  height: 140vw;
}

.swiper-container {
  overflow: hidden;
}

.mainVisualLogo {
  width: 26.6vw;
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 1111;
}

#mainVisualCopy {
  z-index: 1111;
  position: absolute;
  top: 90px;
  left: 0;
  font-family: "Shippori Mincho";
  font-style: normal;
  font-weight: 400;
  font-size: 20px;
  line-height: 160%;
  display: flex;
  align-items: center;
  color: #000000;
  background: #fff;
  width: fit-content;
  padding: 25px 20px;
  /* img {
    width: 80vw;
  } */
}

@media (width >= 769px) {
  div#mainVisual {
    margin-top: 90px;
  }

  #mainVisualImgInner {
    /* height: 52vw; */
    height: unset;
  }

  #mainVisualCopy {
    top: 10vw;
    left: 6vw;
    font-size: 40px;

    /* img {
      width: 30vw;
    } */
  }
}

#mainVisualImg {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#mainVisual li {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;

  .swiper-img {
    height: 100%;

    img {
      object-fit: cover;
      display: block;
    }
  }
}

/* ズームインアニメーション */
@keyframes zoomIn {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}

.swiper-slide-active .swiper-img,
.swiper-slide-duplicate-active .swiper-img,
.swiper-slide-prev .swiper-img {
  animation: zoomIn 7s linear 0s normal both;
}

.swiper-slide img {
  height: auto;
  width: 100%;
}

/* メインビジュアルヘッダー（ロゴ部分） */
#mainVisualHeader {
  width: 100%;
  height: 146px;
  position: relative;
  background: #fff;
}

#mainVisualHeaderLogo {
  width: 216px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 20px;
}

/* PC用 (min-width: 1000px) */
@media (width >= 1000px) {
  .mainVisualLogo {
    width: 136px;
    top: 30px;
    left: 30px;
  }

  #mainVisualImg,
  #mainVisual li,
  #mainVisual li .swiper-img img {
    height: calc(100vh - 146px);
  }

  #mainVisualHeaderLogo {
    width: 20vw;
    left: 30px;
  }
}

/* SP用 (max-width: 999px) */
@media (width < 999px) {
  #mainVisualHeader {
    height: 116px;
  }
}

/* ---------------------------------------------
   6. TopAbout - 桜十字ホスピタルメントのこだわり
   --------------------------------------------- */
.TopAbout {
  .TopAbout-inner {
    width: 90%;
    /* max-width: 1240px; */
    max-width: 1180px;
    margin: 0 auto;
  }

  .grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px 0;
    list-style: none;
    padding: 0;
    margin: 40px 0 0;

    li {
      text-align: center;
      margin: unset;

      /* 5つ目をセンター配置 (SP) */
      &:nth-child(5) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
      }

      picture img {
        /* width: 100%; */
        width: min(90%, 110px);
        border-radius: 50%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
      }
    }
  }

  .AboutTtl {
    margin-top: 20px;

    h3 {
      --clamp-min: 14;
      --clamp-max: 16;
      /* letter-spacing: 0.05em; */
      font-weight: 500;
      line-height: 1.6;
    }
  }

  .AboutBtn {
    margin-top: 15px;

    .btn {
      font-size: 1.4rem;
      color: #000;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      letter-spacing: 0.05em;
      line-height: 1.5;

      &::before {
        content: "";
        width: 20px;
        height: 1px;
        background: #000;
      }
    }
  }
}

/* PC: 5列横並び */
@media (width >= 769px) {
  .TopAbout .grid {
    grid-template-columns: repeat(5, 1fr);
    gap: 40px;

    li:nth-child(5) {
      grid-column: auto;
      max-width: none;
    }
  }
  .AboutTtl {
    h3 {
      font-size: min(1.18vw, 16px);
      letter-spacing: 0.05em;
    }
  }
}

/* ---------------------------------------------
   7. TopMedical - 医療を"しあわせ"というものさしで
   --------------------------------------------- */
.TopMedical {
  position: relative;
  background: #fbfbfb;
  .grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 35px;
    list-style: none;
    padding: 0;
    margin: 40px 0 0;

    li {
      text-align: center;
      margin: auto;
      width: 33.6vw;

      /* 5つ目をセンター配置 (SP) */
      &:nth-child(5) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
      }

      picture img {
        width: 100%;
        border-radius: 50%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
      }
    }
  }
}

/* MD: 769px */
@media (width >= 769px) {
  .TopMedical {
    .grid {
      grid-template-columns: repeat(5, 1fr);
      gap: 40px;
      li {
        width: unset;
      }
      li:nth-child(5) {
        grid-column: auto;
        max-width: none;
      }
    }
  }
}

/* TopMedical-support */
.TopMedical-support {
  margin-top: 70px;
  .TopTtl h2 {
    /* text-align: left; */
    margin: unset;
    --clamp-min: 18;
  }
  .TopTtl span {
    font-size: 14px;
    text-align: center;
    display: block;
    color: #bebebe;
    margin-bottom: 20px;
  }
}

/* SP用 */
@media (width < 769px) {
  .TopMedical-support .TopTtl {
    margin-bottom: 40px;
  }
}

/* MD: 769px */
@media (width >= 769px) {
  .TopMedical-support {
    margin-top: 115px;
    /* .TopTtl h2 {
      text-align: center;
    } */
  }
}

.TopMedical-support-image {
  display: block;
  margin: 125px auto 0;
  width: 100%;
}
/* MD: 769px */
@media (width >= 769px) {
  .TopMedical-support-image {
    width: 75%;
  }
}

/* サイドバー */
/* メインコンテンツ */
.TopMedical-inner {
  max-width: 1000px;
  position: relative;
  width: calc(100% - 230px);
  margin-right: 5%;
}
@media (width >= 1300px) {
  .TopMedical-inner {
    width: 100%;
    margin-right: auto;
  }
}

.TopMedical-content {
  display: flex;
  gap: 60px;
  margin-top: 60px;
  margin-bottom: 110px;
  align-items: center;
  justify-content: space-between;

  .TopTtl h2 {
    text-align: left;
    white-space: nowrap;
  }
}

.TopMedicalTtl {
  margin-bottom: 35px;

  h3 {
    --clamp-min: 16;
    --clamp-max: 20;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
}

.TopMedical-text {
  flex: 1;

  p {
    --clamp-min: 12;
    --clamp-max: 15;
    /* font-size: 15px; */
    line-height: 2;
    letter-spacing: 0.05em;
    margin-bottom: 1.5em;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
}

@media (width >= 769px) {
  .TopMedical-image {
    width: 58%;
  }
  .TopMedical-content .TopTtl {
    margin-bottom: unset;
  }
  .TopMedicalTtl {
    margin-bottom: 60px;
  }
}

/* SP用 */
@media (width < 769px) {
  .TopMedical {
    flex-direction: column;
    padding-top: 15px;
    margin-top: 100px;
  }
  .TopMedical-inner {
    padding-left: 3%;
    width: 90%;
    margin: 0 0 0 auto;
  }

  .TopMedical-content .TopTtl {
    margin-bottom: 42px;
  }
  .TopMedical-main {
    padding: 40px 20px;
  }

  .TopMedical-content {
    flex-direction: column;
    gap: 0;
    margin-top: -40px;
    margin-bottom: 50px;
  }

  .TopMedical-image,
  .TopFood-image,
  .TopLiving-image {
    /* width: calc(100% - -30px); */
    /* margin-left: 10px; */
  }
}

/* ---------------------------------------------
   8. TopFood - フードセクション
   --------------------------------------------- */
.TopFood {
  position: relative;
  background: #fbfbfb;
}

/* メインコンテンツ（SPベース） */
.TopFood-main {
  padding: 40px 20px;
}

.TopFood-inner {
  max-width: 1000px;
  position: relative;
  width: calc(100% - 230px);
  margin-right: 5%;
}
@media (width >= 1300px) {
  .TopFood-inner {
    width: 100%;
    margin-right: auto;
  }
}

.TopFood-content {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 60px;
  margin-bottom: 110px;

  .TopTtl h2 {
    text-align: left;
    white-space: nowrap;
  }
}

.TopFoodTtl {
  margin-bottom: 60px;

  h3 {
    --clamp-min: 16;
    --clamp-max: 20;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
}

.TopFood-text {
  flex: 1;

  p {
    --clamp-min: 12;
    --clamp-max: 15;
    line-height: 2;
    letter-spacing: 0.05em;
    margin-bottom: 1.5em;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
}

/* .TopFood-image {
  width: 100%;
} */

/* SP用 */
@media (width < 769px) {
  .TopFood-inner {
    padding-left: 3%;
    width: 90%;
    margin: 0 0 0 auto;
  }
  .TopFood-content {
    flex-direction: column;
    gap: 0;
    margin-top: -40px;
    margin-bottom: 50px;
  }
  .TopFood-content .TopTtl {
    width: fit-content;
    margin-left: auto;
    padding-right: 5%;
    margin-bottom: 42px;
  }
  .TopFoodTtl {
    margin-bottom: 35px;
  }
}

/* MD: 769px */
@media (width >= 769px) {
  .TopFood-main {
    padding: 0;
  }

  .TopFood-content {
    flex-direction: row;
    gap: 60px;
    /* align-items: center; */
    align-items: flex-end;
    justify-content: space-between;
  }

  .TopFood-image {
    width: 58%;
  }

  .TopFood-content .TopTtl {
    margin-bottom: unset;
    padding-bottom: 40px;
  }
}

/* ---------------------------------------------
   8. TopLiving - ライフセクション
   --------------------------------------------- */
.TopLiving {
  position: relative;
  /* background: #fbfbfb; */
}

/* メインコンテンツ（SPベース） */
.TopLiving-main {
  padding: 40px 20px;
}

.TopLiving-inner {
  max-width: 1000px;
  position: relative;
  width: calc(100% - 230px);
  margin-right: 5%;
}
@media (width >= 1300px) {
  .TopLiving-inner {
    width: 100%;
    margin-right: auto;
  }
}

.TopLiving-content {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 60px;
  margin-bottom: 110px;

  .TopTtl h2 {
    text-align: left;
    white-space: nowrap;
  }
}

.TopLivingTtl {
  margin-bottom: 60px;

  h3 {
    --clamp-min: 16;
    --clamp-max: 20;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
}

.TopLiving-text {
  flex: 1;

  p {
    --clamp-min: 12;
    --clamp-max: 15;
    /* font-size: 15px; */
    line-height: 2;
    letter-spacing: 0.05em;
    margin-bottom: 1.5em;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
}

/* .TopLiving-image {
  width: 100%;
} */

/* SP用 */
@media (width < 769px) {
  .TopLiving-inner {
    padding-left: 3%;
    width: 90%;
    margin: 0 0 0 auto;
  }
  .TopLiving-content {
    flex-direction: column;
    gap: 0;
    margin-top: -40px;
    margin-bottom: 50px;
  }
  .TopLiving-content .TopTtl {
    margin-bottom: 60px;
    padding-left: 40px;
  }
  .TopLivingTtl {
    margin-bottom: 35px;
  }
}

/* MD: 769px */
@media (width >= 769px) {
  .TopLiving-main {
    padding: 0;
  }

  .TopLiving-content {
    flex-direction: row;
    gap: 60px;
    align-items: center;
    justify-content: space-between;
  }

  .TopLiving-image {
    width: 58%;
  }

  .TopLiving-content .TopTtl {
    margin-bottom: unset;
  }
}

/* ---------------------------------------------
   9. TopLiving Swiper - 住スライダー
   --------------------------------------------- */
.TopLiving-slider {
  width: 100%;
  margin-top: 60px;
  margin-left: 0;
  margin-right: 0;
  position: relative;
  overflow-x: hidden;
}

/* MD: 769px */
@media (width >= 769px) {
  .TopLiving-slider {
    margin-top: 130px;
  }
}

/* a.TopLiving-card {
  width: 90%;
  margin: 0 auto;
} */

.TopLiving-swiper .swiper-slide:not(.swiper-slide-visible) .TopLiving-card {
  pointer-events: none;
  opacity: 0.4;
}

.TopLiving-slider::after {
  right: 0;
}

.TopLiving-swiper.swiper {
  overflow: visible;
  width: 78%;
  /* padding: 0 max(0px, calc((100% - 1000px) / 2)); */
  box-sizing: border-box;
  max-width: 1000px;
  padding-top: 16px;
}

.TopLiving-swiper .swiper-wrapper {
  align-items: stretch;
}

.TopLiving-card {
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  /* transition: transform 0.8s cubic-bezier(0.2, 1, 0.2, 1), box-shadow 0.8s cubic-bezier(0.2, 1, 0.2, 1); */
  /* box-shadow: 0.8rem 0.8rem 1.2rem rgba(0, 0, 0, 0.05); */
  transition: all 0.8s cubic-bezier(0.2, 1, 0.2, 1);
}

@media (min-width: 769px) {
  .TopLiving-card:hover {
    transform: translateY(-16px);
    box-shadow: 1rem 1rem 1.5rem rgba(0, 0, 0, 0.08);
    opacity: 1;
    transition: all 0.8s cubic-bezier(0.2, 1, 0.2, 1);
  }
}

.TopLiving-card-image {
  width: 100%;
  overflow: hidden;
}

.TopLiving-card-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 3;
  object-fit: cover;
  display: block;
}

.TopLiving-card-content {
  padding: 25px 5px 10px;
  flex: 1;
}

.TopLiving-card-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  margin-bottom: 20px;
  color: #333;
}

.TopLiving-card-desc {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #666;
}

/* ナビゲーション矢印 */
.TopLiving-swiper-prev,
.TopLiving-swiper-next {
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  color: #000;
  top: 40%;
  transform: translateY(-50%);
  z-index: 20;
  box-shadow: none;
  display: none; /* SPでは非表示 */
}

@media (min-width: 769px) {
  .TopLiving-swiper-prev,
  .TopLiving-swiper-next {
    display: flex; /* PCで表示 */
  }
}

.swiper-button-prev.TopLiving-swiper-prev::after,
.swiper-button-next.TopLiving-swiper-next::after {
  font-size: 24px;
  font-weight: 100;
  color: #999;
}

.swiper-button-prev.TopLiving-swiper-prev {
  /* left: calc((100% - 1000px) / 2 - 50px); */
  left: calc(-9% + 30px);
  bottom: unset;
  top: calc(16px + 35%);
}

.swiper-button-next.TopLiving-swiper-next {
  /* right: calc((100% - 1000px) / 2 - 50px); */
  right: calc(-9% + 30px);
  bottom: unset;
  top: calc(16px + 35%);
}

.swiper-button-prev.TopLiving-swiper-prev:hover,
.swiper-button-next.TopLiving-swiper-next:hover {
  color: #666;
}

.swiper-button-prev.TopLiving-swiper-prev:hover::after,
.swiper-button-next.TopLiving-swiper-next:hover::after {
  color: #666;
}

/* SP用 */
@media (width < 769px) {
  .TopLiving-slider {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    /* padding: 0 20px; */
    margin-top: 40px;
  }

  .TopLiving-slider::before,
  .TopLiving-slider::after {
    display: none;
  }

  .TopLiving-swiper {
    padding: 0;
  }

  .TopLiving-swiper-prev,
  .TopLiving-swiper-next {
    display: flex;
    width: 20px;
    height: 20px;
    background: transparent;
    color: #000;
    top: 38% !important;
    transform: translateY(-50%);
  }

  .TopLiving-swiper-prev::after,
  .TopLiving-swiper-next::after {
    font-size: 20px;
    font-weight: 300;
    color: #000;
  }

  .TopLiving-swiper-prev {
    left: 5px;
  }

  .TopLiving-swiper-next {
    right: 5px;
  }

  .TopLiving-card-title {
    font-size: 16px;
  }

  .TopLiving-card-desc {
    font-size: 13px;
  }

  .TopLiving-btnArea {
    margin-top: 40px;
  }

  .btn-border {
    padding: 15px 40px;
    font-size: 13px;
  }
  .swiper-button-next.TopLiving-swiper-next {
    right: -30px;
    width: 45px;
    height: 45px;
    background: #fff;
    top: calc(16px + 45px + 21vw) !important;
  }
  .swiper-button-prev.TopLiving-swiper-prev {
    left: -30px;
    width: 45px;
    height: 45px;
    background: #fff;
    top: calc(16px + 45px + 21vw) !important;
  }
}

/* 施設を探す */

.TopSearch-header {
  text-align: center;
  margin-bottom: 60px;
}

/* .TopSearch-subtitle {
  font-size: 13px;
  color: #ccc;
  letter-spacing: 0.2em;
  margin-bottom: 15px;
  font-family: inherit;
  font-weight: 300;
} */

/* .TopSearch-title {
  font-size: 26px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #333;
} */

.TopSearch-btnArea {
  margin-top: 60px;
  text-align: center;
}

.TopSearch-card.u-hidden-search {
  display: none;
}

.TopSearch-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* gap: 40px; */
  gap: 150px 80px;
}

.TopSearch-card {
  display: block; /* aタグの場合 */
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

.TopSearch-card:hover {
  opacity: 0.7;
}

.TopSearch-card-image {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2; /* おおよそ */
  overflow: hidden;
  margin-bottom: 24px;
}

.TopSearch-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.TopSearch-card-tag {
  position: absolute;
  top: 0;
  left: 0;
  /* background: rgba(255, 255, 255, 0.9); */
  background: #fff;
  padding: 8px 16px;
  font-size: 14px;
  color: #000;
  letter-spacing: 0.05em;
  z-index: 2;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.TopSearch-card-name {
  --clamp-min: 18;
  --clamp-max: 20;
  /* font-size: 16px; */
  font-weight: 500;
  /* letter-spacing: 0.08em; */
  margin-bottom: 7px;
  color: #000;
}

.TopSearch-card-info p {
  --clamp-min: 12;
  --clamp-max: 16;
  /* font-size: 16px; */
  line-height: 1.5;
  color: #000;
  letter-spacing: 0.05em;
  /* font-feature-settings: "palt"; */
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.TopSearch .BtnArea {
  margin-top: 140px;
  .btn {
    width: 330px;
  }
}

/* SP用 */
@media (max-width: 768px) {
  .TopSearch {
    margin-top: 60px;
    margin-bottom: 20px;
  }
  .TopSearch .TopTtl {
    margin-bottom: 70px;
    h2 {
      margin: unset;
    }
  }
  .TopSearch-grid {
    grid-template-columns: 1fr; /* 1カラムか2カラムか要調整。画像は1枚ずつ見えるサイズ */
    gap: 65px 40px;
  }

  /* .TopSearch-card-image {
    aspect-ratio: 16 / 9;
  } */
  .TopSearch-card-tag {
    padding: 8px 27px;
  }
  .TopSearch-card-info p {
    font-size: 12px;
  }
  .TopSearch-card-name,
  .TopSearch-card-info {
    margin: 0 8%;
  }
  .TopSearch .BtnArea {
    margin-top: 70px;
    .btn {
      width: 260px;
    }
  }
}
/* Know Hospitalment Section */
.TopKnow {
  padding: 80px 0;
}

.TopKnow-header {
  text-align: center;
  margin-bottom: 60px;
}

.TopKnow .TopTtl h2 {
  margin: unset;
  --clamp-min: 20;
}

.TopKnow-title {
  font-size: 26px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #333;
}

.TopKnow-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 60px 40px;
  max-width: 1050px;
  margin: 0 auto;
}

.TopKnow-list li {
  list-style: none;
  text-align: center;
  margin: unset;
}

.TopKnow-list a {
  display: block;
  text-decoration: none;
  color: #333;
  transition: opacity 0.3s;
}

.TopKnow-list a:hover {
  opacity: 0.7;
}

.TopKnow-icon {
  /* width: 80px;
  height: 80px;
  margin: 0 auto 20px; */
  width: 117px;
  height: 118px;
  margin: 0 auto;
}

.TopKnow-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.TopKnow-list p {
  --clamp-min: 14;
  --clamp-max: 20;
  /* font-size: 14px; */
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* SP Adjustments */
@media (max-width: 768px) {
  .TopKnow {
    padding-bottom: 20px;
  }
  .TopKnow .TopTtl {
    margin-bottom: 60px;
  }
  .TopKnow-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 15px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .TopKnow-list li {
    width: calc((100% - 30px) / 3);
  }

  .TopKnow-icon {
    width: 75px;
    height: 75px;
    /* margin-bottom: 10px; */
  }

  .TopKnow-list p {
    font-size: 11px;
  }
}
/* Trivia Section */
.TopTrivia {
  padding: 80px 0;
}

.TopTrivia-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 7.65vw;
}

.TopTrivia-card {
  display: block;
  text-decoration: none;
  color: #333;
  transition: opacity 0.3s;
}

.TopTrivia-card:hover {
  opacity: 0.7;
}

.TopTrivia-card-image {
  width: 100%;
  aspect-ratio: 4/3;
  background: #eee;
  overflow: hidden;
  margin-bottom: 20px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.1em;
}

.TopTrivia-card-image .no-image {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ddd;
  color: #fff;
  font-size: 18px;
}

.TopTrivia-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.TopTrivia-card-meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
}

.TopTrivia-card-date {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-family: "Lato", sans-serif; /* 英数字用フォントがあれば */
}

.TopTrivia-card-cat {
  font-size: 12px;
  border: 1px solid #333;
  border-radius: 20px;
  padding: 9px 15px;
  line-height: 1;
}

.TopTrivia-card-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

@media (max-width: 768px) {
  .TopTrivia-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .TopTrivia-card-image {
    aspect-ratio: 3 / 2;
  }
  .TopTrivia-card-title {
    font-size: 15px;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
  .TopTrivia-card-date {
    font-size: 15px;
  }
  .TopTrivia-card-cat {
    padding: 6px 15px;
  }
  .TopTrivia .BtnArea {
    margin-top: 70px;
  }
}
/* Contact Section */
.TopContact {
  padding: 100px 0;
  background-color: #fbfbfb;
}

.TopContact-desc {
  text-align: left;
  --clamp-min: 12;
  --clamp-max: 15;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-bottom: 60px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.TopContact .TopTtl {
  margin-bottom: 30px;
}

/* MD: 769px */
@media (width >= 769px) {
  .TopContact-desc {
    text-align: center;
    margin-bottom: 100px;
  }
  .TopContact .TopTtl {
    margin-bottom: 45px;
  }
  .TopContact-cards .TopContact-card-image {
    margin-bottom: 28px;
  }
  .TopContact-cards {
    margin-bottom: 90px;
  }
}

.TopContact-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 100px 64px;
  margin-bottom: 100px;
}

.TopContact-cards li {
  list-style: none;
  margin: unset;
}

.TopContact-cards a {
  display: block;
  text-decoration: none;
  color: #333;
  transition: opacity 0.3s;
}

.TopContact-cards a:hover {
  opacity: 0.7;
}

.TopContact-cards .TopContact-card-image {
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-bottom: 20px;
}

.TopContact-cards .TopContact-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.TopContact-card-link {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  gap: 15px;
}

.TopContact-card-link::after {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  background: #333;
}

/* Actions (Tel/Mail) */
.TopContact-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  max-width: 760px;
  margin: 0 auto;
}

.TopContact-action-item {
  text-align: center;
}

.btn-contact {
  display: block;
  width: 100%;
  padding: 16px 0;
  text-align: center;
  border: 1px solid #333;
  text-decoration: none;
  color: #333;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  /* background: #fff; */
  transition: all 0.3s;
  margin-bottom: 15px;
}

.btn-contact:hover {
  background: #333;
  color: #fff;
  transition: all 0.3s;
}

.TopContact-sub-link a {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #333;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: flex-start;
}

.TopContact-sub-link a::after {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  background: #999;
}

@media (max-width: 768px) {
  .TopContact {
    padding-bottom: 0;
  }
  .TopContact-cards {
    grid-template-columns: 1fr;
    gap: 100px;
  }

  .TopContact-actions {
    grid-template-columns: 1fr;
    gap: 100px;
    max-width: 265px;
  }

  .TopContact-sub-link a {
    justify-content: center;
    gap: 10px;
  }
  .TopContact-sub-link a::after {
    width: 38px;
  }
}
/* Consider Section (TopConsider) */
.TopConsider {
  padding-top: 100px;
  overflow: hidden;
  background-color: #fbfbfb;
}

.TopConsider-body {
  position: relative;
  /* PC base layout */
}

.TopConsider-img {
  width: 100%;
}
.TopConsider-img img {
  width: 100%;
  height: auto;
}
@media (width >= 769px) {
  .TopConsider-img {
    width: 100%;
    margin-left: auto; /* 右寄せ */
    /* min-height: 400px; */
  }
  .TopConsider-img img {
    height: 100%;
    object-fit: cover;
  }
}

.TopConsider-nav {
  background: #fbfbfb;
  padding: 60px 40px;
  /* border: 1px solid #ccc;  デザインによりけり */
}
@media (width >= 769px) {
  .TopConsider-nav {
    position: absolute;
    /* bottom: 40px; */
    /* width: 50%; */
    top: calc(100% - 55px);
    left: 0;
    padding: 35px 110px 35px 45px;
  }
}

.TopConsider-nav ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* gap: 30px; */
  gap: 25px 70px;
}
.TopConsider-nav li {
  list-style: none;
  margin: unset;
}
.TopConsider-nav a {
  display: block;
  text-decoration: none;
  color: #333;
  border-bottom: 1px solid #ddd; /* デフォルトは薄い線にしておくか、あるいは透明か。ユーザー「デフォルト線なし」なので透明にする */
  border-bottom: 1px solid transparent;
  /* padding-bottom: 10px; */
  font-size: 16px;
  letter-spacing: 0.05em;
  transition: all 0.3s;
  line-height: 1.5;
  padding: 0 48px 5px 0;
}
.TopConsider-nav a:hover {
  opacity: 1; /* opacity変化なしで線だけ出すなら1、あるいは併用 */
  border-bottom-color: #333;
}

@media (max-width: 768px) {
  .TopConsider {
    padding-top: 80px;
  }
  .TopConsider .TopTtl {
    margin-bottom: 60px;
  }
  .TopConsider-nav {
    width: 90%;
    margin: -30px auto 0;
    position: relative;
    padding: 30px;
    /* box-shadow: 0 0 10px rgba(0, 0, 0, 0.05); */
  }
  .TopConsider-nav ul {
    gap: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .TopConsider-nav li {
    width: 100%;
    a {
      padding: 0 0 10px;
      text-align: center;
      border: none;
      position: relative;
    }
    a:hover {
      border: none;
    }
    a:hover::before {
      content: "";
      position: absolute;
      display: block;
      width: 84px;
      height: 1px;
      background: #333;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;
      transition: all 0.3s;
    }
  }
}

/* News Section (TopNews) */
.TopNews {
  padding: 100px 0;
  background-color: #fbfbfb;
}
.TopNews .l-container {
  max-width: 1000px;
}
.TopNews-wrapper {
  display: flex;
  flex-direction: column;
  /* gap: 60px;
  margin-bottom: 60px; */
  gap: 110px;
  margin-bottom: 100px;
}
.TopNews-block h3 {
  font-size: 20px;
  margin-bottom: 20px;
  line-height: 1.5;
  font-weight: 400;
  /* font-weight: 500;
  letter-spacing: 0.05em; */
}
.TopNews-list li {
  list-style: none;
  /* border-bottom: 1px solid #ddd; */
  margin: unset;
}
/* .TopNews-list li:first-child {
  border-top: 1px solid #ddd;
} */
.TopNews-list a {
  display: block;
  text-decoration: none;
  color: #333;
  padding: 30px 0;
  display: flex;
  align-items: baseline; /* 日付とラベルの高さを合わせる */
  gap: 20px;
  transition: opacity 0.3s;
}
.TopNews-list a:hover {
  opacity: 0.7;
}

.news-date {
  /* font-family: "Lato", sans-serif; */
  font-size: 14px;
  margin: unset;
  line-height: 2;
  color: #000;
}
.news-label {
  font-size: 12px;
  border: 1px solid #000;
  border-radius: 30px;
  padding: 0px 16px;
  white-space: nowrap;
  margin: unset;
  line-height: 2;
  letter-spacing: 0.05em;
  display: block;
  color: #000;
}
.news-title {
  font-size: 14px;
  line-height: 2;
  flex: 1;
  margin: unset;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #000;
}
.TopNews .BtnArea .btn {
  background: none;
  width: 330px;
  padding: 16px;
  border-color: #000;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .TopNews {
    padding: 120px 0 60px;
  }

  .TopNews .TopTtl {
    margin-bottom: 55px;
  }

  .TopNews-wrapper {
    gap: 100px;
    margin-bottom: 40px;
  }

  .TopNews-block h3 {
    /* font-size: 16px; */
    margin-bottom: 50px;
  }

  .TopNews-list a {
    flex-wrap: wrap;
    gap: 10px 12px;
    padding: 25px 0 20px;
  }
  .TopNews-list li:first-child a {
    padding-top: 0;
  }
  .TopNews-list li:last-child a {
    padding-bottom: 0;
  }

  /* .news-date {
    font-size: 13px;
  } */

  .news-label {
    font-size: 12px;
    padding: 2px 20px;
    line-height: 1.5;
  }

  .news-title {
    flex: none;
    width: 100%;
    font-size: 13px;
    line-height: 1.8;
  }
  .TopNews .BtnArea .btn {
    width: 260px;
  }
}

/* ---------------------------------------------
   FooterTop - 採用情報アコーディオン
   --------------------------------------------- */
.FooterTop .navRecruit {
  position: relative;
}

.FooterTop .recruitAccordion {
  margin: 0;
}
/* .FooterTop-inner {
  grid-template-columns: 360px 180px 1fr 200px;
} */

.FooterTop .recruitAccordion summary::-webkit-details-marker {
  display: none;
}

/* .FooterTop .recruitAccordion summary::after {
  content: "";
  width: 10px;
  height: 15px;
  position: absolute;
  top: 7px;
  right: 15px;
  background: url(../img/top/icon_arrrow_down.svg) center no-repeat;
  background-size: 10px auto;
  transition: transform 0.3s;
} */

/* MD: 769px */
/* @media (width >= 769px) {
  .FooterTop .recruitAccordion summary::after {
    top: 3px;
    right: 20px;
  }
} */

.FooterTop .recruitAccordion[open] summary::after {
  transform: rotate(180deg);
}

.FooterTop .recruitAccordion-list {
  list-style: none;
  padding: 10px 0 0 15px;
  margin: 0;
}

.FooterTop .recruitAccordion-list li {
  margin-bottom: 8px;
}

.FooterTop .recruitAccordion-list li:last-child {
  margin-bottom: 0;
}

.FooterTop .recruitAccordion-list a {
  font-size: 12px;
  color: #333;
}

.FooterTop .recruitAccordion-list a:hover {
  opacity: 0.7;
}

/* =============================================
   サイドバー共通スタイル（医・食・住）
   ============================================= */

/* --- ベーススタイル --- */
.sidebar-en {
  writing-mode: vertical-rl;
  font-size: 14px;
  letter-spacing: 0.15em;
  color: #000;
  padding-left: 10px;
  padding-top: 10px;
  position: relative;

  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 10px;
    width: 1px;
    height: 120px;
    background: #000;
  }
}

.sidebar-ja-big {
  --clamp-min: 20;
  --clamp-max: 30;
  font-weight: 400;
  line-height: 1;
  position: relative;
}

.sidebar-box-right,
.sidebar-box-left {
  position: relative;
}

.sidebar-ja-small {
  border: 1px solid #000;
  font-size: 14px;
  position: absolute;
  right: -1px;
  top: -81px;
  padding: 25px 5.5px;
}

.sidebar-text {
  p {
    writing-mode: vertical-rl;
    font-size: 12px;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }

  span {
    border: 1px solid #000;
    padding: 10px 4px;
  }
}

/* --- コンテナ（SPベース） --- */
.TopMedical-sidebar,
.TopFood-sidebar,
.TopLiving-sidebar {
  padding: 30px 0px;
  position: -webkit-sticky;
  position: sticky;
  top: 70px;
  z-index: 10;
  margin-left: -60px;
}

.TopMedical-sidebar-inner,
.TopFood-sidebar-inner,
.TopLiving-sidebar-inner {
  position: relative;
}

/* --- PC用（769px以上） --- */
@media (width >= 769px) {
  .TopMedical-sidebar,
  .TopFood-sidebar,
  .TopLiving-sidebar {
    position: absolute;
    left: -120px;
    width: auto;
    padding: 0;
    height: 100%;
    top: 0;
    margin-left: 0;
  }

  .TopMedical-sidebar-inner,
  .TopFood-sidebar-inner,
  .TopLiving-sidebar-inner {
    position: sticky;
    top: 100px;
    display: block;
  }

  .TopMedical .sidebar-en,
  .TopFood .sidebar-en,
  .TopLiving .sidebar-en {
    padding-top: 30px;
    &::before {
      content: "";
      height: 210px;
    }
  }

  .sidebar-ja-big {
    top: 60px;
    right: 10px;
  }

  .sidebar-box-left {
    top: -110px;
  }

  .sidebar-ja-small {
    font-size: 20px;
  }

  .sidebar-text p {
    font-size: 20px;
  }
}

/* --- SP用（768px以下） --- */
@media (width < 769px) {
  .TopMedical-sidebar,
  .TopFood-sidebar,
  .TopLiving-sidebar {
    position: -webkit-sticky;
    position: sticky;
    top: 70px;
    left: 0;
    margin-left: -60px;
    /* top: 0; */
    padding: 0;
  }

  .TopMedical .sidebar-en,
  .TopFood .sidebar-en,
  .TopLiving .sidebar-en {
    margin-bottom: 0;
    display: inline;
  }

  .TopMedical .sidebar-ja-big,
  .TopFood .sidebar-ja-big,
  .TopLiving .sidebar-ja-big {
    display: inline;
    --clamp-min: 20;
    --clamp-max: 32;
    /* margin-bottom: 0; */
  }

  .sidebar-text {
    font-size: 12px;
  }
}

/* Scroll Fade Animation */
.fade_off {
  opacity: 0;
  transform: translate3d(0, 60px, 0);
  transition: all 1s cubic-bezier(0.23, 1, 0.32, 1);
}

.fade_on {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.TopBanner {
  padding-bottom: 60px;
  background-color: #fbfbfb;
  .TopBannerimage {
    display: block;
    width: 100%;
    margin: 0 auto;
  }
}
/* MD: 769px */
@media (width >= 769px) {
  .TopBanner {
    padding-bottom: 130px;
    .TopBannerimage {
      width: 70%;
    }
  }
}
