@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');

/* Base */
html,
body {
  overscroll-behavior-y: contain;
}

body {
  font-family: "Noto Serif JP", "Bellefair", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 14px;
  line-height: 2;
  overflow-wrap: break-word;
  color: #AD7A37;
  margin: 0;
  padding: 0;
}

.en-font {
  font-family: "Bellefair", serif;
}

.black {
  color: #403821;
}

a {
  color: #AD7A37;
  text-decoration: none;
  transition:
    color .35s cubic-bezier(.25, .46, .45, .94),
    opacity .5s cubic-bezier(0.33, 1, 0.68, 1);

}

a:hover {
  opacity: .65;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.pc_none {
  display: none;
}

.tb_none {
  display: none;
}

.sp_none {
  display: block;
}

/* Utility */
.u-inner {
  padding: 0 20px;
  box-sizing: border-box;
}

.l-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 40px;
}

@media (max-width: 768px) {
  .l-container {
    padding: 0 20px;

  }
}





/* Header */
.gHeaderWrap {
  margin-bottom: 50px;
}

.gHeader {
  padding: 20px 1.95%;
  box-sizing: border-box;
  position: relative;
  z-index: 1010;
}

.gHeader_cols {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1808px;
  margin-left: auto;
}

.gHeader_col-title {
  flex-shrink: 0;
  z-index: 1000;
}

.gHeader_title {
  margin: 0;
  line-height: 1;
}

.gHeader_col-menu {
  width: 80%;
  margin-left: auto;
}

.gNav {
  height: 100%;
  max-width: 1170px;
  margin-left: auto;
}

.gNav_inner {
  display: flex;
  height: 100%;
  align-items: center;
}

.gNav_list {
  list-style: none;
  display: flex;
  justify-content: flex-end;
  flex-grow: 1;
  margin: 0;
  padding: 0;
}

.gNav_list li {
  margin-left: 30px;
}

.gNav_list_item {
  display: flex;
  font-size: 14px;
  height: 100%;
  align-items: center;
  line-height: 1.2;
  color: #AD7A37;
}

.gNav_list_item:hover {
  opacity: 0.7;
}

@media (max-width: 768px) {
  .gHeader {
    padding: 15px 0;
  }
}

/* MV */
.l-main {
  margin-top: 76px;
  background: linear-gradient(to bottom, #FFFFFF 0%, #FEF4E3 6%, #E2C6A1 100%);

}

.l-main.single-news {
  background: none;
}

.p-mv {
  position: relative;
}

.p-mv__inner {
  position: relative;
}

.p-mv__opening {
  padding: 40px 0;
  position: relative;
}

.p-mv__opening-inner {
  text-align: center;
}

.p-mv__opening-title {
  font-size: 117px;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.4;
  margin: 0;
  color: #AD7A37;
}

.p-mv__opening-subtitle {
  display: block;
  font-size: 16px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
  margin-top: -0.8em;
}

.p-mv__hero {
  width: 100%;
  height: 600px;
  background-image: url('../img/mv.jpg');
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.p-mv__scroll {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.p-mv__scroll-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-decoration: none;
}

.p-mv__scroll-text {
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.p-mv__scroll-line {
  width: 1px;
  height: 40px;
  background-color: #fff;
  animation: scrollLine 1.5s ease-in-out infinite;
}

/* MV */
/* 既存の p-mv__opening-title スタイルを補強 */
.p-mv__opening-title {
  /* line-heightは既存の値を維持 */
  /* 念のため、親要素に高さを与え、配置を中央に固定 */
  display: block;
  /* h2自体を中央揃えにするための設定 */
}

/* 1. テキスト要素の初期状態を準備（重要: display: block; に戻す） */
.p-mv__opening-title .js-split-text {
  /* 修正: ブロック要素に戻し、強制的に改行させる */
  display: block;

  /* 初期状態のtransformとopacityはそのまま */
  opacity: 0;
  transform: translateY(20px);

  /* イージングと時間は前回提案の「かっこいい」設定を維持 */
  transition: opacity 1.2s ease-out,
    transform 1.2s cubic-bezier(0.19, 1, 0.22, 1);
}

/* 2. アニメーション完了後の状態 */
.p-mv__opening-title .js-split-text.is-loaded {
  opacity: 1;
  transform: translateY(0);
}

/* 3. ヒーロー画像とスクロールインジケーターのアニメーションはそのまま */
.p-mv__hero {
  /* ... 既存のスタイル ... */
  opacity: 0;
  transform: translateY(-30px);
  transition: opacity 1.8s ease-out,
    transform 1.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.is-loaded .p-mv__hero {
  opacity: 1;
  transform: translateY(0);
}

/* Scroll コンテナ */
.homeMvScroll {
  position: absolute;
  right: 40px;
  bottom: 190px;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-beige);
  z-index: 10;
}

/* Scroll テキスト */
.homeMvScroll p {
  font-size: 14px;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}

/* ▼ グレーのガイド線（固定） */
.homeMvScroll::before {
  content: "";
  width: 1px;
  height: 5rem;
  background: rgba(180, 180, 180, 0.35);
  /* 薄いグレー */
  position: absolute;
  top: calc(8px + 1.2em);
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
}

/* ▼ 茶色のループするアニメ線 */
.homeMvScroll::after {
  content: "";
  width: 1px;
  height: 5rem;
  background: #AD7A37;
  /* ← 指定のカラー */
  position: absolute;
  top: calc(8px + 1.2em);
  left: 50%;
  transform: translateX(-50%) scaleY(1);
  transform-origin: bottom center;
  animation: homeMvScrollAfter 3s infinite;
  z-index: 1;
}

/* ▼ アニメーション（参考サイトと同じ） */
@keyframes homeMvScrollAfter {
  0% {
    transform-origin: bottom;
    transform: scaleY(1);
    opacity: 1;
  }

  35% {
    transform-origin: bottom;
    transform: scaleY(0);
    opacity: 1;
  }

  71% {
    transform-origin: top;
    transform: scaleY(0);
    opacity: 1;
  }

  100% {
    transform-origin: top;
    transform: scaleY(1);
    opacity: 1;
  }
}






/* Message */
.p-message__lead {
  text-align: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.p-message__lead-text {
  font-size: 20px;
  line-height: 1.8;
  color: #403821;
  margin: 0;
  letter-spacing: 0.05em;
}

.p-message__lead-sub {
  display: block;
  font-size: 37px;
  color: #AD7A37;
  text-transform: uppercase;
  margin-top: 20px;
  letter-spacing: 0.05em;
}

/* ===== Features (version 2) ===== */
.fueatures_sec {
  background: #FFF5E2;
  top: var(--sticky-top, 0px);
  left: 0;
}

.fueatures_sec .inner {
  max-width: 1200px;
  width: 83.3%;
  padding-top: 160px;
  margin: 0 auto 0px;
}

.midashi {
  font-size: 46px;
  text-transform: uppercase;
  font-weight: 100;
  line-height: 1.4;
  font-family: "Bellefair", serif;
  color: #AD7A37;
  margin-bottom: 2rem;

}

.midashi span {
  display: block;
  font-size: 16px;
  color: #AD7A37;
}

/* 日本語h2左の小アイコン */
.midashi span::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  background-image: url("../img/leaf.png");
  /* ← 保存場所に応じて変更 */
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 8px;
  /* テキストとの余白 */
  flex-shrink: 0;
  transform: translateY(-5px);
}

.fueatures_sec-spacer {
  display: block;
  height: 0;
}

.outline_cols {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}

.outline_col-img {
  width: 600px;
  position: relative;
}

.outline_image {
  position: sticky;
  top: var(--sticky-top, 0px);
  top: 80px;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
}

.outline_image_sp {
  display: none;
}

.outline_image .outline_image_canvas {
  position: relative;
  width: 100%;
  height: 580px;
  /* JSで80vhに上書き */
}

.outline_image_vis {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 600px;
  height: 580px;
  /* JSで80vhに上書き */
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity .45s ease, filter .45s ease;
  will-change: opacity, filter;
  filter: blur(6px);
}

.outline_image_vis.isShow {
  opacity: 1;
  filter: none;
}

.outline_col-txt {
  width: calc(100% - 720px);
  padding-top: 120px;
}

.outline_sect {
  border-top: 1px solid rgba(64, 56, 33, 0.2);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: top;
  padding-top: 80px;
}

.outline_sect .outline_subhead {
  font-size: 26px;
  color: #403821;
  margin-bottom: 20px;
}

.outline_sect .outline_subhead span {
  display: block;
  font-size: 60px;
  color: #AD7A37;
  font-family: "Bellefair", serif;
}

.outline_text {
  color: #403821;
  line-height: 2.5;
}

.outline_sect .outline_image_sp img,
.outline_image_vis {
  border-radius: 5px;
}

.img_sec {
  overflow: hidden;
  /* 画像が動いた際のはみ出しを隠す */
  position: relative;
  /* ⚠️ 必要に応じて高さを固定する（例: height: 500px;） */
}

/* 画像自体のアニメーション要素 (.js-blur-img にクラス名変更) */
.img_sec .js-blur-img {
  width: 100%;
  /* 既存の height: 557px があれば、CSSで height: 100% に戻す */
  height: 100%;
  object-fit: cover;
  display: block;

  /* 初期状態:
       - ブラーを強調 (15px)
       - 透明度をゼロ (完全に非表示)
    */
  filter: blur(15px);
  opacity: 0;
  transform: none;

  /* アニメーションの時間とイージング（素早く、かつ緩急を伴う設定） */
  transition: filter 1.2s cubic-bezier(.19, 1, .22, 1),
    opacity 1.0s ease-out;
}

/* アニメーション発火後の状態（クリアになる） */
.img_sec.is-inview .js-blur-img {
  filter: blur(0);
  /* ブラーをゼロにしてクリアにする */
  opacity: 1;
  /* 明るさを元に戻す */
}

.img_sec img {
  width: 100%;
  display: block;
  object-fit: cover;
}

/* ===== Doctor Section ===== */
.doctor_sec {
  background-image: url("../img/bg0.png");
  /* leaf.pngと同階層にある場合 */
  background-repeat: repeat;
  /* ← repeat-x / repeat-y に変更可能 */
  padding: 100px 0;
}

.doctor_sec .inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 1200px;
  width: 75%;
  margin: 0px auto;
  gap: 60px;
}

.left_b,
.right_b {
  width: 44.4%;
  box-sizing: border-box;
}

.right_b {
  width: 44.5%;
}

.doctor_sec h2 {
  margin-bottom: 30px;
}

.doctor_sec h2 span {
  display: block;
  font-size: 16px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #AD7A37;
  margin-bottom: 5px;
}

.midashi3 {
  font-size: 26px;
  color: #403821;
  margin: 50px 0 35px;
  line-height: 1.6;
  letter-spacing: 0.05em;

}

.read {
  font-size: 14px;
  line-height: 2.2;
  color: #333;
  margin-bottom: 30px;
  /*letter-spacing: 0.05em;*/
}

.name {
  font-size: 18px;
  color: #403821;
  text-align: right;
  margin-top: 20px;
}

.name span {
  font-size: 14px;
  padding-right: 0.3em;
}

.right_b img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 4px;
}

.doctor_sec_img {

  border-radius: 5px;
}


/* ===== Medical Service ===== */
.medical_service {
  background-image: url("../img/bg_img_shinryou.png");
  /* leaf.pngと同階層にある場合 */
  background-repeat: repeat;
  /* ← repeat-x / repeat-y に変更可能 */
  padding: 110px 0 130px;
}

.medical_service .inner {
  max-width: 1200px;
  width: 75%;
  margin: 0 auto;
  box-sizing: border-box;
}

.medical_service .left_b h2 {
  margin: 0 0 28px;
}

.medical_service .left_b h2 span {
  /*margin-bottom: 6px;*/
}

/* グリッド：上4 / 下3（計7件） */
.img_list {
  list-style: none;
  padding: 0;
  margin: 3rem auto 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  /* ★4列固定 */
  gap: 30px 8.13%;
  /* 均等間隔 */
}

.img_list li {
  width: 22.2%;
  min-width: 240px;
  /* 画面が狭いときに潰れ防止 */
  border-radius: 10px;
  box-sizing: border-box;
}

.img_list li a {
  display: block;
  text-decoration: none;
  color: inherit;
  color: #403821;
}

/* サムネ中央配置 */
.img_list .img {
  background-image: url("../img/bg_img_area.png");
  /* leaf.pngと同階層にある場合 */
  background-repeat: repeat;
  /* ← repeat-x / repeat-y に変更可能 */
  border-radius: 5px;
  width: 100%;
  aspect-ratio: 24 / 16;
  /* 正方形比率 */
  display: flex;
  align-items: center;
  justify-content: center;
}

.img_list .img img {
  max-width: 80%;
  max-height: 80%;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* テキスト部分 */
.img_list .text {
  padding: 0;
  margin-top: 20px;
}

.img_list .text .sst {
  font-size: 18px;
  margin: 0 0 6px;
}

.img_list .text p {
  font-size: 14px;
  line-height: 1.8;
  margin: 0 0 10px;
}

.img_list .text .arrow {
  font-size: 13px;
  color: #AD7A37;
  display: inline-block;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease;
}

.img_list li a:hover .text .arrow {
  border-color: #AD7A37;
}

/* レスポンシブ */
@media (max-width: 1024px) {
  .img_list {
    justify-content: center;
  }

  .img_list li {
    width: 28%;
  }
}

@media (max-width: 768px) {
  .img_list li {
    width: 45%;
  }
}

@media (max-width: 480px) {
  .img_list li {
    width: 100%;
  }
}


/* Recruit（シンプルflex + 色指定） */
.recruit_b {
  padding: 100px 0;
  background: #fff;
  color: #403821;
  /* デフォ文字色 */
}

/* ここで確実に横並びにする */
.recruit_b .inner {
  max-width: 1200px;
  width: 75%;
  margin: 0 auto;
  display: flex;
  gap: 110px;
  align-items: flex-start;
  padding: 0 0;
}

/* 左画像は590px固定 */
.recruit_b .img_area {
  flex: 0 0 600px;
  max-width: 600px;
  margin-left: -11%;
  order: 1;
}

.recruit_b .img_area img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 4px;
}

/* 右テキストは残り幅 */
.recruit_b .message_arrea {
  flex: 1 1 auto;
  min-width: 0;
  padding: 90px 0 0;
  order: 2;
}

/* 見出しと本文の色・サイズ */
.recruit_b h2 {
  font-size: 36px;
  font-weight: 400;
  margin: 0 0 50px;
  /*line-height: 1.3;*/
  color: #AD7A37;
}

.recruit_b h2 span {
  display: block;
  font-size: 16px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  /*margin-bottom: 6px;*/
  color: #AD7A37;

}

.recruit_b .title {
  font-size: 26px;
  line-height: 1.6;
  margin: 0 0 40px;
  color: #403821;
  letter-spacing: 0.09em;

}

.recruit_b .read {
  font-size: 14px;
  line-height: 2;
  margin: 0 0 48px;
  color: #403821;
}

/* ボタンのラベル体裁 */
.recruit_b .c-button .c-button__label {
  font-family: "Bellefair", serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 150%;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #403821;
}




/* ========= NEWS block ========= */
.news_wrap {
  background-image: url("../img/bg0.png");
  /* leaf.pngと同階層にある場合 */
  background-repeat: repeat;
  /* ← repeat-x / repeat-y に変更可能 */
  padding: 100px 0;

}

.news_b {
  /* セクション全体の横並び（左：ヘッド、右：本文） */
  max-width: 1200px;
  width: 80%;
  margin: auto;
  display: flex;
  gap: 40px;
  align-items: flex-start;
  box-sizing: border-box;

}

/* 左カラム */
.news_b .t-home__head {
  flex: 0 0 30%;
  /* ← 固定で30% */
  min-width: 180px;
  /* 小さくなりすぎ防止 */
}

/* 見出し */
.news_b .t-home-news__heading .midashi {
  font-size: 46px;
  font-weight: 400;
  color: #AD7A37;
  margin: 0 0 20px;
  text-transform: uppercase;
}

.news_b .t-home-news__heading .midashi span {
  display: block;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: none;
  /*color: #403821;
  margin-bottom: 6px;*/
}

/* view more リンク */
.t-home-news__btn a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  /* 左：文字、右：矢印 */
  width: 160px;
  /* ボタン幅 */
  text-decoration: none;
  color: #403821;
  letter-spacing: 0.05em;
  font-size: 14px;
  font-family: "Bellefair", "Noto Serif JP", serif;
  text-transform: uppercase;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(64, 56, 33, 0.1);
  /* メインの下線 */
  padding-right: 18px;
  /* 右矢印との余白 */
}

.t-home-news__btn a:has([data-roll-hover]) [data-roll-hover] {
  position: relative;
}

.t-home-news__btn a:has([data-roll-hover]) [data-roll-hover]::after {
  content: attr(data-roll-hover);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: block;
  transition: .6s cubic-bezier(0.19, 1, 0.22, 1);
  will-change: opacity, transform;
  text-transform: uppercase;
  transform: translateY(90%) scaleY(0);
  opacity: 0;
}

/* 上に重ねる短い装飾ライン */
.t-home-news__btn a::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #649A74;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform 1.4s;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
  /* 差し色ライン */
}

.t-home-news__btn svg {
  position: absolute;
  right: 0;
  bottom: 16px;
}

/* 矢印アイコン（右端に配置） */
.t-home-news__btn a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 16px;
  /* 下線の高さに合わせる */
  width: 12px;
  height: 12px;
  background: url("../img/arrow_small.svg") no-repeat center center / contain;
}

.t-home-news__btn.__svg a::after {
  display: none;
}

.t-home-news__btn a:has([data-roll-hover]) [data-roll-hover] span {
  display: block;
  transform: translateY(0) scaleY(1);
  transition: .6s cubic-bezier(0.19, 1, 0.22, 1);
  will-change: opacity, transform;
}

/* hover時：矢印を右へ2px移動 */
.t-home-news__btn a:hover::after {
  //transform: translateX(2px);
}

.t-home-news__btn a:has([data-roll-hover]):hover [data-roll-hover] span {
  transform: translateY(-90%) scaleY(0);
  opacity: 0;
}

.t-home-news__btn a:has([data-roll-hover]):hover [data-roll-hover]::after {
  transform: translateY(0) scaleY(1);
  opacity: 1;
}

.t-home-news__btn a:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

.t-home-news__btn a:hover,
.c-btn__target_blank a:hover {
  opacity: 1;
}

/* view more リンク */
.c-btn__target_blank a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  /* 左：文字、右：矢印 */
  width: 160px;
  /* ボタン幅 */
  text-decoration: none;
  color: #403821;
  font-size: 14px;
  font-family: "Bellefair", "Noto Serif JP", serif;
  text-transform: uppercase;
  padding-bottom: 0;
  border-bottom: 1px solid rgba(64, 56, 33, 0.1);
  /* メインの下線 */
  padding-right: 2px;
  /* 右矢印との余白 */
}

/* 上に重ねる短い装飾ライン */
.c-btn__target_blank a::before {
  /* content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 20px;
  height: 1px;
  background-color: #649A74;
  /* 差し色ライン */
  */
}

/* 矢印アイコン（右端に配置） */
.c-btn__target_blank a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 10px;
  /* 下線の高さに合わせる */
  width: 12px;
  height: 12px;
  background: url("../img/arrow_small.svg") no-repeat center center / contain;
  transition: transform 0.3s ease;
  transform: rotate(-45deg);
}

/* hover時：矢印を右へ2px移動 */
.c-btn__target_blank a:hover::after {
  //transform: rotate(-45deg) translateX(2px);
}


.c-btn__scroll_top a {
  padding: 0 24px 0 0;
  border-bottom: none;
  width: fit-content;
}

.c-btn__scroll_top a::before {
  display: none;
}

.c-btn__scroll_top a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 14px;
  /* 下線の高さに合わせる */
  width: 16px;
  height: 9px;
  background: url("../img/arrow_small.svg") no-repeat center center / contain;
  transition: transform 0.3s ease;
  transform: rotate(-90deg);
}

/* 右カラム */
.news_b .t-home__body {
  flex: 1 1 70%;
  /* ← 残り70%を確保 */
  min-width: 0;
  /* 折り返し調整 */
}

/* リスト本体 */
.t-home-news__wrap {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 罫線（上・下） */
.t-home-news {
  position: relative;
  border-bottom: 1px solid var(--color_line2, #E5E0D5);
}

.t-home-news:first-child {
  border-top: 1px solid var(--color_line2, #E5E0D5);
}

/* 1行のリンク */
:root {
  --key: #AD7A37;
  /* キーカラー */
  --line2: #E5E0D5;
  /* 罫線フォールバック */
}

/* 1行化の行ラッパー */
.t-home-news__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  /* 適度な間隔 */
}

/* 左から：日付・カテゴリ・タイトル */
.c-info-time time {
  white-space: nowrap;
  font-size: 14px;
  color: rgba(64, 56, 33, 0.5);
  font-family: "Bellefair", serif;
}

/* ドット枠のカテゴリ */
.c-info-cat {
  white-space: nowrap;
  text-align: center;
  padding: 0.25rem 1.4rem;
  /* ← 上下を少し減らした */
  border-radius: 5px;
  /* ← 丸みを弱めて5px */
  font-size: 12px;

  line-height: 1.2;
}

.c-info-cat.-dot {
  color: var(--key);
  border: 0.5px solid var(--key);
  background: transparent;
}

/* タイトルは可変幅で伸びる */
.t-home-news__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: clamp(14px, 4.375vw, 18px);
  color: #4A4237;
  line-height: 1.6;
  font-size: 14px;
  display: flex;
  align-items: center;
  padding-left: 1em;
}

/* 1行省略（必要なら） */
.t-home-news__title .c-underline__target {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 1行リンクのパディング・罫線は既存のまま */
.t-home-news {
  border-bottom: 1px solid var(--color_line2, var(--line2));
}

.t-home-news:first-child {
  border-top: 1px solid var(--color_line2, var(--line2));
}

.t-home-news__link {
  position: relative;
  display: block;
  padding: 26px 48px 26px 0;
  /* 右の矢印余白 */
}

/* 右矢印 */
.t-home-news__arrow {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 16px;
  color: #4A4237;
  transition: transform .25s ease;
}

.t-home-news__link:hover .t-home-news__arrow {
  transform: translate(4px, -50%);
}

.t-home-news__arrow {
  display: inline-block;
  width: 18px;
  height: 16px;
  background-image: url("../img/arrow.svg");
  /* ← 画像パスを合わせる */
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  margin-left: 12px;
  flex-shrink: 0;
  align-self: center;
  transform: translateY(-50%);
  /* ← 縦位置を中央に固定 */
  transition: transform 0.3s ease;
}

.t-home-news__link:hover .t-home-news__arrow {
  transform: translate(6px, -50%);
}

/* ==============================
   NEWS SINGLE（single.php専用）
============================== */
.single-news .overview.news .t-home-news__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  margin-bottom: 24px;
}

.single-news .overview.news .c-info-time {
  font-size: 16px;
  color: #8a8379;
  letter-spacing: 0.05em;
}

.single-news .overview.news .c-info-cat {
  font-size: 13px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid #AD7A37;
  color: #AD7A37);
}

.single-news .overview.news .t-home-news__title {
  flex: 1 1 100%;
  margin-top: 8px;
  padding-left: 0;
}

.single-news .overview.news .t-home-news__title .c-underline__target {
  font-size: 28px;
  font-weight: 600;
  line-height: 1.4;
  color: #3E3520;
  position: relative;
}

@media (max-width: 768px) {
  .single-news .overview.news .t-home-news__title .c-underline__target {
    font-size: 22px;
  }
}

.single-news .overview.news .entry-content {
  margin-top: 32px;
  font-size: 16px;
  line-height: 2;
  color: #403821;
}

.single-news .overview.news .entry-content p+p {
  margin-top: 1.4em;
}

.single-news .overview.news .news-back {
  margin-top: 50px;
}




/* ===== Access ===== */
.access_b {
  padding: 120px 0;
  background: #fff;
  color: #403821;
}

.access_b .inner {
  max-width: 1200px;
  width: 80%;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 10%;
  /* ここが「間10%」 */
}

.access_left,
.access_right {
  flex: 0 0 45%;
  /* 左右45% */
  min-width: 0;
}

.access_b .c-txt-heading {
  margin-bottom: 40px;
}

.access_left iframe {
  display: block;
  width: 100%;
  height: 300px;
  /* 必要なら調整可 */
  border: 0;
  border-radius: 6px;
}

.access_right h3 {
  font-size: 22px;
  /* ご指定 */
  line-height: 1.6;
  margin: 0 0 14px;
  padding-top: 150px;
  font-family: "Bellefair", serif;
  position: relative;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1;
}

.access_right h3 span {
  display: block;
  line-height: 1;
  font-size: 14px;
  letter-spacing: 0.02em;
  margin-top: 6px;
}

.access_right h3::after {
  content: "";
  display: block;
  width: 15px;
  height: 1px;
  background-color: #649A74;
  margin-top: 18px;
  /* h3との間隔 */
  margin-left: 0;
  /* 左寄せ */
}

.access_right h4 {
  font-size: 14px;
  margin: 0 0 14px;
}

.access_right .address {
  margin: 0 0 10px;
}

.access_right .maplink a {
  text-decoration: underline;
}

.access_right .car {
  margin-top: 18px;
  font-weight: 400;
  position: relative;

}

.access_right .car::before {
  position: absolute;
  content: "";
  width: 4px;
  height: 4px;
  background-image: url("../img/leaf.png");
  background-size: contain;
  background-repeat: no-repeat;
  left: 0;
  top: 50%;
  transform: translate(-10px, -50%);
  /* ← X軸をマイナス10pxずらす */
}

/* SP */
@media (max-width: 768px) {
  .access_b {
    padding: 80px 0;
  }

  .access_b .inner {
    width: 90%;
    flex-direction: column;
    gap: 32px;
    /* 縦並びの間隔 */
  }

  .access_left,
  .access_right {
    flex: 1 1 auto;
  }

  .access_left iframe {
    height: 210px;
    margin-top: 46px;
  }
}


/* ===== Footer layout tweaks ===== */
/* ===== Footer (simplified markup) ===== */
.gFooter {
  position: relative;
  padding: 67px 0 50px;
  /* 背景パターン（repeat-x / repeat-y へ変更可） */
  background-image: url("../img/bg_img_shinryou.png");
  background-repeat: repeat;
  background-size: auto;
  /* 必要に応じて contain / 100px auto などへ */
}

/* 以前のグラデ背景レイヤーを使う場合（任意） */
.gFooter_bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* ここをフレックス親にして左右2カラムを直で並べる */
.gFooter_inner {
  max-width: 91.7%;
  margin: 0 auto;
  /* ↓ 新規: レイアウト指定 */
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
  /* 狭い時に折り返し */
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  padding-bottom: 125px;
}

/* 共通カラム */
.gFooter_col {
  min-width: 200px;
}

/* 左：ロゴ 20%固定（最小200px） */
.gFooter_col-logo {
  flex: 0 0 20%;
}

.gFooter_col-logo .address {
  color: #403821;
}

.gFooter_logo {
  margin-bottom: 30px;
}

.gFooter_logo_img {
  display: block;
}

/* 右：リンク（中で2つの<ul>を横並び） */
.gFooter_col-link {
  /*flex: 1 1 auto;*/
  width: 40.9%;
}

.gFooter_links {
  display: flex;
  justify-content: flex-start;
  gap: 95px;
  /* 2つの<ul>の間隔 */
  flex-wrap: wrap;
}

/* リスト体裁 */
.gFooter_list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.gFooter_list>li {
  display: inline-flex;
  align-items: center;

}

.gFooter_list>li>a {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  text-transform: uppercase;
  line-height: 1.4;
  transition: opacity .3s ease;
  color: #403821;
  font-size: 16px;
}

.gFooter_list>li>a::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  background-image: url("../img/leaf.png");
  /* ← 保存場所に応じて変更 */
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 12px;
  /* テキストとの余白 */
  flex-shrink: 0;
  margin-left: -16px;
  display: none;
}

.gFooter_list>li>a.is-active::before {
  display: inline-block;
}

.gFooter_list>li>a:hover,
.gFooter_list>li>a:focus-visible {
  opacity: .7;
}




.f_bottom {
  max-width: 90%;
  margin: auto;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
}


/* コピーライト */
.gFooter_copyright {
  color: #403821;
}

.gFooter_copyright small {
  font-size: 12px !important;

}

/* Back to Top 画像配置 */
.backToTop-img {
  position: absolute;
  right: 20px;
  bottom: 5px;
  display: block;
  transition: opacity .3s ease, transform .3s ease;
}

.backToTop-img img {
  height: auto;
  display: block;
}

/* ホバー時：ふわっと上に動く */
.backToTop-img:hover {
  opacity: 0.8;
  transform: translateY(-4px);
}


/* PCではSPナビ非表示 */
.spNav {
  display: none;
}



.l-gnav-toggle {
  display: none;
}


/* SP対応 */

@media (max-width: 1000px) {
  .pc_none {
    display: block;
  }

  .tb_none {
    display: none;
  }

  .sp_none {
    display: none;
  }

  .gHeader {
    position: fixed;
    top: 0;
    left: 0;
  }

  .gHeader_title {
    width: 180px;
  }

  /* ハンバーガーボタン */
  .gHeader_hamburger {
    width: 32px;
    height: 20px;
    position: fixed;
    /* ← これに変更！ */
    top: 20px;
    /* 上から20px */
    right: 20px;
    /* 右から20px */
    cursor: pointer;
    z-index: 9999;
    /* メニューより前に */
    /* 追加：背景完全透明化 */
    background: transparent;
    /* 追加：境界線の可能性をすべてオフ */
    border: none;
    outline: none;
    /* iPhoneタップ時のグレー背景を消す */
    -webkit-tap-highlight-color: transparent;
    display: flex;
    align-items: center;
    align-content: center;
    justify-content: center;
    flex-wrap: wrap;
    padding: 0;
    gap: 7px;
  }

  .gHeader_hamburger-line {
    /*position: absolute;
    left: 0;*/
    width: 100%;
    height: 1px;
    background: #AD7A37;
    transition: all 0.35s cubic-bezier(.7, 0, .3, 1);
    transform-origin: center;
  }

  /* 初期位置（2本） */
  .gHeader_hamburger-line:nth-child(1) {
    top: 0;
  }

  .gHeader_hamburger-line:nth-child(2) {
    top: 7px;
  }

  /* ▼ アクティブ（バツ状態） -------------------------------*/
  .gHeader_hamburger.is-active .gHeader_hamburger-line {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;

  }

  .gHeader_hamburger.is-active .gHeader_hamburger-line:nth-child(1) {
    /* 二本の中間位置へ */
    transform: rotate(12deg);
  }

  .gHeader_hamburger.is-active .gHeader_hamburger-line:nth-child(2) {
    /* 二本の中間位置へ */
    transform: rotate(-12deg);
  }

  /* SPメニュー全体 */
  .spNav {
    display: flex;
    /* SPで有効化 */
    position: fixed;
    inset: 0;
    z-index: 999;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    /* 背景指定（ご指定どおり） */
    background: rgba(0, 0, 0, 0.4);
  }

  /* 開いている時の状態（bodyにクラスを付与） */
  body.is-spnav-open .spNav {
    opacity: 1;
    pointer-events: auto;
  }

  .spNav_inner {
    position: absolute;
    right: 0;
    /* ★画面右端から20pxに */
    top: 0;
    width: 100%;
    background-image: url(../img/bg_img_shinryou.png);
    background-repeat: repeat;
    height: fit-content;

  }

  /* SPメニューのオーバーレイ */
  .spNav_overlay {
    position: fixed;
    inset: 0;
    background: url('../img/bg_img_shinryou.png') repeat;
    padding: 100px 0;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    /* ★まず右側に寄せる */
    z-index: 999;
  }

  /* メニューリスト */
  .spNav_list {
    /* ハンバーガー高さに応じて調整 */
    list-style: none;
    margin: 0;
    padding: 120px 20px 60px;
    width: auto;
    /* 不要な幅を持たせない */
    text-align: right;
    /* テキスト右寄せ */
  }

  .spNav_list li+li {
    margin-top: 18px;
  }

  .spNav_link {
    display: inline-block;
    font-size: 18px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #AD7A37;
    /* ご指定のキーカラー */
    text-decoration: none;
    text-align: right;
    /* ★テキスト右寄せ */
  }



  .gHeaderWrap {
    margin-bottom: 80px;
    position: relative;
  }

  .gHeader_col-menu {
    display: none;
  }


  .p-mv__hero {
    height: 500px;
  }

  .p-mv__opening {
    padding: 20px 0 27px;
  }

  .p-mv__opening-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* ← 中央揃え */
    text-align: center;
    line-height: 1.2;
    margin: 0 auto;
  }

  .p-mv__scroll {
    display: none;
  }

  .date {
    display: block;
  }

  /* 2026.6 + OPEN */
  .p-mv__opening-title .js-split-text:first-child {
    font-size: 64px;
    /* ← OPEN と同じサイズに */
    font-weight: 400;
    line-height: 0.9;
    letter-spacing: -0.01em;
    display: inline-block;
  }

  /* OPEN の下に余白 32px */
  .p-mv__opening-title .js-split-text:first-child br {
    content: "";
    display: block;
    margin-bottom: 32px;
  }

  /* kanazawa nukashinbo */
  .p-mv__opening-subtitle {
    font-size: 14px;
    /* スマホ用の控えめサイズ */
    letter-spacing: 0.05em;
    margin-top: 10px;
    display: block;
    text-align: center;

  }


  .homeMvScroll {
    display: none;
  }

  .l-main {
    margin-top: 30px;
  }

  .p-message__lead-text {
    font-size: 14px;
    line-height: 1.8;
  }

  .p-message__lead-sub {
    font-size: 22px;
    margin-top: 10px;
  }

  .p-top-well-being__row {
    width: 100% !important;
  }

  .p-top-well-being__row h3 {
    font-size: 36px !important;
    margin-bottom: 40px !important;
  }

  .p-top-well-being__row h4 {
    font-size: 22px !important;
  }

  .fueatures_sec .inner {
    max-width: 100%;
    width: 89.3%;
    padding-top: 60px;
    margin: 0 auto 0px;
  }

  .outline_cols {
    display: block;
  }

  .outline_image {
    position: static;
    width: 100%;
    display: block;
  }

  .outline_col-img {
    display: none;
  }

  .midashi,
  .news_b .midashi {
    font-size: 36px !important;
    line-height: 1;
  }

  .midashi span {
    transform: translateX(-5px);
    margin-bottom: 11px;
    font-size: 14px;

  }

  .midashi span::before {
    font-size: 14px !important;
    margin-right: 4px;
    transform: translateY(-3px);
  }

  .outline_text {
    line-height: 2;
  }

  .outline_image .outline_image_canvas {
    position: static !important;
    width: 100% !important;
    height: auto !important;
  }

  .outline_image_vis {}

  .outline_image_sp {
    display: block;
    text-align: center;
    margin-top: 35px;

  }

  .outline_image_sp img {
    width: 100%;
    height: auto;
  }

  .outline_col-txt {
    width: 100%;
    padding-top: 30px;
  }

  .outline_sect {
    border-top: none;
    min-height: auto !important;
    display: static;
    padding-top: 0;
  }

  .outline_sect+.outline_sect {
    margin-top: 45px;
  }

  .outline_sect .outline_subhead {
    font-size: 20px;
    margin-bottom: 10px;
  }

  .outline_sect .outline_subhead span {
    font-size: 40px;
    border-bottom: 1px solid rgba(64, 56, 33, 0.2);
    margin-bottom: 35px;
    line-height: 1.7;
  }

  .fueatures_sec {
    padding-bottom: 80px;
  }

  .doctor_sec {
    flex-direction: column;
    width: 100%;
    margin: 0px auto;
    padding: 60px 0
  }

  .doctor_sec h2 {
    margin-bottom: 45px;
  }

  .doctor_sec h2 span {
    font-size: 14px;
    margin-bottom: 11px;
  }

  .doctor_sec .inner {
    display: block;
    width: 92%;
  }

  .doctor_sec .left_b,
  .right_b {
    width: 100%;
  }

  .doctor_sec .right_b {
    display: none;
  }

  .left_b .pc_none {
    margin-bottom: 30px;
  }


  .midashi3 {
    font-size: 20px;
    margin: 45px 0 25px;

  }

  .read {
    line-height: 2;
  }

  .medical_service {
    padding: 60px 0 75px;
  }

  .medical_service .inner {
    width: 90%;
  }

  .img_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* ← 2列 */
    gap: 28px 15px;
    /* お好みで調整 */
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .img_list li {
    margin: 0;
    /* 既存の余白リセット */
  }

  .img_list li {
    width: 100%;
    min-width: 0;
  }

  .img_list li a {
    display: block;
    text-align: left;
  }

  .img_list .img img {
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    height: auto;
    display: block;
  }

  .img_list .text {
    margin-top: 25px;
  }

  .img_list .text h4.sst {
    font-size: 14px;
    font-weight: 400;
    margin-bottom: 17px;
    line-height: 1;
  }

  .img_list .text p {
    font-size: 12px;
    line-height: 1.5;
    margin-bottom: 0;
  }

  .img_list .arrow {
    font-size: 11px;
    color: #AD7A37;
    display: inline-block;
    margin-top: 4px;
  }

  .medical_service .left_b,
  .right_b {
    width: 100%;
  }

  .recruit_b {
    padding: 30px 0 30px;
  }

  .recruit_b .inner {
    width: 90%;
    flex-flow: column;
    gap: 0px;
    padding: 30px 0 0;
  }

  .recruit_b {
    padding: 10px 0 80px;
  }

  .recruit_b .inner {
    flex-direction: column;
    width: 90%;
    gap: 50px;
  }

  .recruit_b h2 {
    margin-bottom: 40px;
  }

  .recruit_b h2 span {
    font-size: 14px;
  }

  .recruit_b .title {
    font-size: 20px;
    margin-bottom: 30px;

    line-height: 1.8;
  }

  .recruit_b .read {
    margin-top: 38px;
  }

  .recruit_b .img_area {
    flex: none;
    max-width: none;
    order: 2;
    margin-left: 0;
  }

  .recruit_b .message_arrea {
    flex: 1 1 auto;
    min-width: 0;
    padding: 80px 0 0;
    order: 1;
  }

  .recruit_b .message_arrea {
    padding: 30px 0 0;
  }

  .c-btn__target_blank a {
    font-size: 12px;
    width: 135px;
  }

  .c-btn__target_blank a::after {
    bottom: 7px;
    width: 10px;
    height: 10px;
  }

  .news_wrap {
    padding: 60px 0 80px;
  }

  .t-home-news__wrap {
    margin-bottom: 45px;
  }

  .t-home-news:first-child {
    border-top: none;
  }

  .news_b {
    width: 90%;
    display: flex;
    flex-flow: column;
    gap: 0px;
  }

  .news_b .t-home__body {
    flex: 1 1 100%;
    width: 100%;
  }

  .t-home-news__row {
    display: block;
    /* PCでflexにしていてもスマホでは一旦リセット */
    text-align: left;
  }

  /* 日付とカテゴリを横並びに */
  .t-home-news__row .c-info-time,
  .t-home-news__row .c-info-cat {
    display: inline-block;
    vertical-align: middle;
  }

  /* 日付とカテゴリの間に少し余白 */
  .t-home-news__row .c-info-cat {
    margin-left: 12px;
    padding: 0.15rem 15px;
  }

  /* タイトルはその下に改行されて出てくる */
  .t-home-news__row .t-home-news__title {
    display: block;
    margin-top: 14px;
    padding: 0;
  }

  .access_b {
    padding: 60px 0 80px;
  }

  .access_b .inner {
    width: 90%;
    flex-flow: column;
    gap: 0%;
  }

  .access_left,
  .access_right {
    width: 100%;
  }

  .access_right h3 {
    font-size: 20px;
    margin: 0 0 10px;
    padding-top: 30px;
  }

  .access_right h4 {
    margin: 0 0 35px;
  }

  .access_right .address {
    margin: 0;
  }

  .access_right .car {
    margin-top: 25px;
  }

  .img_sec {}

  .img_sec .js-blur-img {
    height: 40%;
  }

  .gFooter {
    padding: 40px 0 40px;
  }

  .gFooter_inner {
    max-width: 100%;
    flex-flow: column;
    gap: 0px;
    padding-bottom: 60px;
    gap: 60px;
  }

  .gFooter_logo {
    margin-bottom: 25px;
  }

  .gFooter_col-logo {
    flex: 0 0 100%;
  }

  .gFooter_col-link {
    flex: 0 0 100%;
    padding-top: 0;
    width: 100%;
  }

  .gFooter_list {

    gap: 35px;
  }

  .gFooter_list>li>a {
    font-size: 14px;
  }

  .gFooter_list>li>a.is-active::before {
    display: none;
  }

  .gFooter_links {
    justify-content: flex-start;
    gap: 30px;
    /* 2つの<ul>を縦積み */
  }


  .f_bottom {
    padding-top: 10px;
  }

  .backToTop-img {
    right: 0;
    bottom: 8px;
  }

  .c-btn__scroll_top a {
    font-size: 12px !important;
  }
}


@media (max-width: 767px) {
  .pc_none {
    display: block;
  }

  .tb_none {
    display: block;
  }

  .sp_none {
    display: none;
  }

  .p-mv__hero {
    height: 400px;
    background-image: url('../img/sp/mv.jpg');
  }

}

.news-back {
  display: flex;
  justify-content: center;
  margin-top: 80px;
}

@media (max-width: 1000px) {
  .news-back {
    margin-top: 60px;
  }
}