/*=========================================================
  *ヘッダー 
=================================================================*/
header{
  position:absolute; 
  z-index:10; left:0; top:0; width:100%;
  box-sizing:border-box; 
	 position: sticky;
    top: 0;
    z-index: 10;
}

/* 横並び骨組み */
header .h_inbox{display:flex;justify-content:space-between;align-items: flex-end;gap:12px;background: #ffffffad;}

/* 左：ロゴ＋H1 */
header .h_left{width:45%;}
header .h_logo{
  display:flex;
  align-items: flex-start;
  flex-direction: column;
}
header .h_left .h_logo img{width:auto;max-width:35%;height:auto}
header h1{
  color: var(--c-text);
  font-size: clamp(12px, 1.1vw, 14px);
  letter-spacing:.14em; line-height:1.4;
  border-radius:4px;
  padding-left: 10px;
  margin-bottom: 0;
}

/* 右：縦積みコンテナ */
.h_right{display:flex;align-items:flex-start;}
.h_stack{display:flex;flex-direction:column;gap:10px}

/* ベージュの情報バッジ */
.info-badge .badge-inner{
  position:relative;
  display:flex; align-items:center; gap:10px;
  background:#e4cdb7; /* ベージュ */
  color:#5b4634; padding:10px 14px; border-radius:8px;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
}
.info-badge .badge-ttl{font-weight:700; font-size:clamp(13px,1.1vw,14px)}
.info-badge .badge-sub{font-size:clamp(12px,.95vw,13px)}
.info-badge .badge-sub .sun{color:#c64a5d; font-weight:700}
.info-badge .badge-time{font-size:clamp(11px,.9vw,12px); opacity:.85}
.info-badge .badge-leaf{margin-left:auto; color:#9b7c63}

/* CTA 共通 */
.h_contact{display:flex; align-items:stretch;}
.cta{
  display:flex; 
  flex-direction:column; 
  justify-content:center;
  min-width: 240px;
  height: 83px;
  text-decoration:none; 
  color:#fff;
  padding:8px 12px; 
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  text-align: center;
}
.cta .cta-lbl{font-size:clamp(12px,1vw,13px); opacity:.95}
.cta .cta-main{
  display:flex; 
  align-items:center; gap:8px;
  margin-top:2px; 
  line-height:1;
  justify-content: center;
}
.cta .ico{display:inline-flex}
.cta .num{font-weight:800; letter-spacing:.04em; font-size:clamp(16px,1.5vw,20px) font-family: var(--font-jp-head);}
.cta .cta-note{font-size:clamp(10px,.8vw,12px); opacity:.9; margin-top:3px}

/* TEL */
.cta-tel{
  background: #3E4656;
}
.cta-tel:hover{
  background: #8790a5;
  color: #fff;
  filter:brightness(0.98);
}

/* WEB */
.cta-web{
  background: #918048;
}
.cta-web .num{
  font-weight:700;
}
.cta-web:hover{
  background: #cfc39c;
  filter:brightness(0.98);
  color: #fff;
}

/* LINE */
.cta-line{
  background:#64b172;
  min-width: 170px;
}
.cta-line .num{
  font-weight:700;
}
.cta-line:hover{
  background: #7dc58a;
  filter:brightness(0.98);
  color: #fff;
}

/* 右端：メニューボタン */
.menu-btn{
  display:flex; 
  flex-direction:column; 
  align-items:center; 
  justify-content:center;
  gap:6px; 
  height: 83px;
  padding:0 12px;
  min-width:88px;
  background: #3E4656;
  color:#fff; 
  border:none;
  box-shadow:0 2px 8px rgba(0,0,0,.08); 
  cursor:pointer;
}
.menu-btn .menu-text{font-size:12px; letter-spacing:.08em}
.menu-btn .bars{display:flex; flex-direction:column; gap:5px; width:30px}
.menu-btn .bars span{display:block; height:2px; background:#fff; border-radius:2px}

/* Tablet */
@media (max-width: 992px){
  header .h_left{width:52%}
  .cta{min-width:220px}
}

/* Mobile */
@media (max-width: 768px){
  header .h_inbox{flex-wrap:wrap; gap:0px}
  header .h_left{width:100%}
  header .h_logo{gap:10px;display:none;}
  header .h_left .h_logo img{max-width:180px}
  header h1{font-size:12px; letter-spacing:normal;padding-left: 10px;}

  .h_right{width:100%; align-items:stretch}
  .h_stack{flex:1}
  .info-badge{order:1}
  .h_contact{order:2; gap:2px}
  .cta{flex:1; min-width:auto;padding: 5px;height: 65px;}
  .menu-btn{order:3; margin-left:auto; min-width:76px}
  .cta .cta-main {flex-direction: column;}
  .cta-line{height: 65px;}
}

/* ------------- メニュー本体 ------------- */
.nav{
  width:100%;
  background:#fff;
  display:flex; justify-content:center; align-items:center;
  position:relative; transition:.3s ease; z-index:5;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  font-size: 0.98rem;
}

/* スクロール固定用クラス（既存そのまま） */
.nav.fixed{
  position: fixed;
  top:0; 
  left:0; 
  width:100%;
  background:#fff; 
  z-index:15;
}

/* リスト：均等配置＋区切り線 */
.nav-list{
  display:flex; justify-content:space-between; gap:0;
  width:100%; list-style:none; margin:0; padding:0;
  border-left:1px solid var(--c-border);
}
.nav-item{
  position:relative;
  flex: 1;
  text-align: center;
  border-right: 1px solid var(--c-border);
}

/* リンク：縦並びで中央寄せ（上：日本語／下：英字） */
.nav-item > a,
.gnavlist{
	display:flex; 
	flex-direction:column; 
	align-items:center; 
	justify-content:center;
	font-size: 0.9rem;
	line-height: 1.5;
	text-decoration:none; color:var(--c-text-muted);
	font-weight:700; letter-spacing:.08em;
	padding:18px 10px 16px;
	position:relative;
  /* 下線アニメ（背景サイズで） */
  background: linear-gradient(var(--c-primary) 0 0) bottom / 0 2px no-repeat;
  transition: background-size .25s ease, color .25s ease, opacity .25s ease;
}

/* 下段の英字は data-en から生成 */
.nav-item > a::after,
.nav-item > .gnavlist::after{
  content: attr(data-en);
  display:block; margin-top:8px;
  font-weight:600; letter-spacing:.18em;
  font-size:14px;
  color: var(--c-primary);
  text-transform: lowercase;
}

/* ホバー：文字色＋下線を伸ばす */
.nav-item > a:hover,
.gnavlist:hover{
  color:#7a5a2f; /* ほんのりブラウン寄り（好みで調整） */
  background-size: 100% 2px;
}

/* アクティブ状態（任意：クラス .is-current を付与） */
.nav-item.is-current > a,
.nav-item.is-current > .gnavlist{
  color:#7a5a2f;
  background-size:100% 2px;
}
@media (max-width: 1050px) {
  .nav {
    display: none;
  }
}

/* ------------- ドロップダウン ------------- */
.has-dropdown .dropdown{
  position:absolute; top:100%; left:50%;
  transform:translate(-50%, 12px);
  background:#fff; list-style:none; margin:0; padding:10px 0;
  min-width:220px; border-radius:10px;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  opacity:0; visibility:hidden; transition:.25s ease;
  border:1px solid var(--c-border);
}
.has-dropdown:hover .dropdown{
  opacity:1; visibility:visible; transform:translate(-50%, 8px);
  z-index:20;
}
.dropdown li{padding:0}
.dropdown li a{
  display:block; padding:10px 16px;
  color:var(--c-text-muted); font-weight:600; font-size:14px;
  text-decoration:none; transition:.2s ease;
}
.dropdown li a:hover{
  background:var(--c-bg);
  color:var(--c-text);
  padding-left:22px;
}

/* ------------- レスポンシブ ------------- */
@media (max-width: 1024px){
  .nav-item > a{padding:16px 8px}
  .nav-item > a::after{font-size:13px; letter-spacing:.16em}
}
@media (max-width: 840px){
  .nav-list{flex-wrap:wrap}
  .nav-item{flex:1 1 33.33%}
}
@media (max-width: 600px){
  .nav-item{flex:1 1 50%}
  .nav-item > a{padding:14px 6px}
}

/* ----------------------------------------------------
タブレット用（768px〜1024px）
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
}

/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media (max-width: 768px) {

}

/*------------------- ハンバーガーメニュー -------------------*/
/* ハンバーガーアイコン */
.drawer-hamburger {
  position: relative;
  /* top: 20px;
  right: 20px; */
  background: #555e75;
  width: 85px;
  height: 83px;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 10001;
  cursor: pointer;
}
.drawer-hamburger-icon {
  width: 24px;
  height: 2px;
  background: #fff;
  position: relative;
  transition: all 0.3s ease;
  top: 8px;
}
span.menu_txt {
  top: 12px;
  position: relative;
}
.drawer-hamburger-icon::before,
.drawer-hamburger-icon::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background: #fff;
  transition: all 0.3s ease;
}
.drawer-hamburger-icon::before {
  top: -8px;
}
.drawer-hamburger-icon::after {
  top: 8px;
}
.menu_txt::before {
  content: 'MENU';
  font-size: 10px;
  margin-top: 6px;
}
#drawer-checkbox:checked + #drawer-icon .drawer-hamburger-icon {
  background: transparent;
}
#drawer-checkbox:checked + #drawer-icon .drawer-hamburger-icon::before {
  transform: rotate(45deg);
  top: 0;
}
#drawer-checkbox:checked + #drawer-icon .drawer-hamburger-icon::after {
  transform: rotate(-45deg);
  top: 0;
}
#drawer-checkbox:checked + #drawer-icon .menu_txt::before {
  content: 'CLOSE';
}

/* メニュー全体 */
#drawer-checkbox {
  position: absolute;
  opacity: 0;
  pointer-events: none;
	position: fixed; 
	top: -100px; 
	left: -9999px;
}
#drawer-content {
  opacity: 0;
  transform: translateY(-20px);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: #f0f0f0;
  z-index: 10000;
  overflow-y: auto;
  padding: 2rem 1rem;
}
#drawer-checkbox:checked ~ #drawer-content {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
/* ドロワー表示中は背景スクロール禁止 */
body.is-drawer-open {
  overflow: hidden;
}
/* ベース装飾 */
.drw_index {
  font-weight: bold;
  font-size: 1.8em;
  margin: 1.5em 0 0.5em;
  color: var(--c-cta);
  font-family: var(--font-en);
}

.com_sp_menu li,
.com_medical li {
	margin-bottom: 0.6em;
	font-size: 1rem;
}
li.littl {
	font-size:1rem;
	font-weight:600;
}
.com_sp_menu li:not(.littl),
.com_medical li:not(.littl) {
  position: relative;
  padding-left: 1.4em; /* マーク分の余白 */
  list-style: none;
}

.com_sp_menu li:not(.littl)::before,
.com_medical li:not(.littl)::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 0;
  width: 0.5em;
  height: 0.5em;
  background-color: var(--c-cta);
  border-radius: 50%;
}

.tel {
  font-size: 1em;
  margin-top: 1.5em;
}

.drw_info .schedule-table{
  margin: 10px 0;
}
.telp {
  font-size: 1.5rem;
}
.telp i {
  margin: 0 5px 0 0;
}
.web-reserve a {
  display: inline-block;
  font-size: 1.2rem;
  margin-top: 0.5em;
  background: var(--base-blue);
  color: #fff;
  padding: 0.6em 1.2em;
  border-radius: 30px;
  text-decoration: none;
}
/* ========== PCのサイトマップ段組み ========== */
@media (min-width: 1024px) {
  .com_sp_menu {
    column-count: 2;         /* まず2段に */
    column-gap: 2rem;
  }
  /* さらに横幅がある場合は3段に */
  @media (min-width: 1280px) {
    .com_sp_menu { column-count: 3; }
  }

  /* セクション見出し（.littl）は段をまたがない／余白を付与 */
  .com_sp_menu .littl {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    column-break-inside: avoid;
    margin-top: 1rem;
    margin-bottom: .4rem;
	font-family: var(--font-jp-head);
    font-size: 1.3rem;
    color: #333;
  }

  /* 通常リンク（.littl以外）は段組み対象 */
  .com_sp_menu li:not(.littl) {
    break-inside: avoid;
    padding-left: 1.2em;
    margin-bottom: .5em;
  }
  .com_sp_menu li:not(.littl)::before {
    top: .55em;
    width: .45em; height: .45em;
    opacity: .9;
  }
}
@media (max-width: 768px) {
  .drawer-hamburger {
    height: 65px;
  }
}

/* 診療時間 表全体 */
.footer-schedule {
  text-align: center;
  padding: 20px 10px;
  margin: 0 auto;
  color: #7a5a2f;
}

/* 見出し */
.footer-schedule h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: #7a5a2f;
  margin-bottom: 12px;
}

/* 表 */
.schedule-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 16px rgb(0 0 0 / 10%);
}

/* ヘッダー */
.schedule-table th {
  background: linear-gradient(135deg, #cfc39c, #9a8f62);
  color: #fff;
  padding: 12px;
  font-weight: 600;
  font-size: 14px;
  border-right: 1px solid rgba(255,255,255,0.2);
}

.schedule-table th:last-child {
  border-right: none;
}

/* 行 */
.schedule-table td {
  padding: 12px 8px;
  font-size: 14px;
  color: #7A5A2F;
  border-bottom: 1px solid #eee;
  border-right: 1px solid #f5f1ed;
}

.schedule-table td:last-child {
  border-right: none;
}

/* 土曜 */
.schedule-table .sat {
  color: #b48866;
  font-weight: bold;
}

/* 休診（木・日） */
.schedule-table .closed {
  color: #ccc;
  background: #f1f1f1;
  font-weight: bold;
}

/* 最終行のボーダー消し */
.schedule-table tr:last-child td {
  border-bottom: none;
}

/* 注釈 */
.footer-schedule .note {
  font-size: 12px;
  line-height: 1.6;
  margin-top: 6px;
  color: #7A5A2F;
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */

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

  .schedule-table th, .schedule-table td {
      font-size: 12px;
      padding: 6px;
  }
}

/*=========================================================
  *ファーストビュー 
=================================================================*/
.heroSlide{
  position: relative;
  width: 100%;
}

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

.heroSlide__track{
  position: relative;
  width: 100%;
  min-height: 1px;
}

/* フェード切り替え */
.heroSlide__slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .45s ease;
  pointer-events: none;
}

.heroSlide__slide.is-active{
  position: relative;
  opacity: 1;
  pointer-events: auto;
}

/* 画像表示（高さは適宜調整） */
.heroSlide__slide img{
  display: block;
  width: 100%;
  height: auto;
}

/* モバイルで矢印小さめ */
@media (max-width: 767px){
  .heroSlide__nav{
    width: 38px;
    height: 38px;
    font-size: 24px;
  }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce){
  .heroSlide__slide{ transition: none; }
}

/*=========================================================
  *新着情報 
=================================================================*/

.newsBlock{
  --bg: #f2efec;
  --line: rgba(0,0,0,.18);
  --text: #222;
  --muted: rgba(0,0,0,.55);
  --accent: #cfc39c;          /* hoverの主役 */
  --accent-deep: #7f744f;     /* hover文字色 */

  padding: clamp(40px, 5vw, 80px) 0;
}

.newsBlock__inner{
  width: min(1200px, 92vw);
  margin: 0 auto;
  display: flex;
  gap: clamp(28px, 5vw, 90px);
  align-items: flex-start;
}

/* left title */
/* .newsBlock__head{ 
  width: min(240px, 20vw);
}*/

.newsBlock__titleEn{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: clamp(44px, 4.8vw, 76px);
  line-height: 1;
  letter-spacing: .06em;
  color: #3E4656;
}

.newsBlock__titleJa{
  margin: 10px 0 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-size: 18px;          /* お好みで調整OK */
  letter-spacing: .12em;
  font-weight: 500;
  color: rgba(0,0,0,.55);
}

/* SR only (日本語を視覚的に出さず、h2の意味だけ補完) */
.newsBlock__srOnly{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* right list with top/bottom lines */
.newsBlock__list{
  flex: 1;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.newsBlock__item + .newsBlock__item{
  border-top: 1px solid var(--line);
}

.newsBlock__link{
  display: block;
  padding: clamp(18px, 2.2vw, 28px) 0;
  text-decoration: none; /* 角丸なし/下線なし */
  color: var(--text);
}

.newsBlock__meta{
  margin: 0;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif; /* 本文 */
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--muted);
}

.newsBlock__sep{
  margin: 0 .6em;
  color: rgba(0,0,0,.35);
}

.newsBlock__headline{
  margin: 10px 0 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif; /* 日本語見出し */
  font-size: clamp(15px, 1.25vw, 18px);
  letter-spacing: .06em;
  line-height: 1.75;
  color: rgba(0,0,0,.75);
}

.newsBlock__tag{
  display: inline-block;
  margin-right: .9em;
  letter-spacing: .10em;
  color: rgba(0,0,0,.65);
}

/* hover / focus (色変更 + マーカー風) */
.newsBlock__link:hover .newsBlock__meta,
.newsBlock__link:focus-visible .newsBlock__meta{
  color: var(--accent-deep);
}

.newsBlock__link:hover .newsBlock__headline,
.newsBlock__link:focus-visible .newsBlock__headline{
  color: rgba(0,0,0,.88);
  background-image: linear-gradient(transparent 62%, rgba(207,195,156,.55) 0);
  background-size: 100% 1.2em;
  background-repeat: no-repeat;
  background-position: 0 95%;
}

.newsBlock__link:focus-visible{
  outline: 2px solid rgba(207,195,156,.9);
  outline-offset: 6px;
}

/* responsive */
@media (max-width: 820px){
  .newsBlock__inner{
    flex-direction: column;
    gap: 18px;
  }
  .newsBlock__title{
    width: auto;
  }
}

/*=========================================================
  *選ばれる理由 
=================================================================*/

.cresReason{
  --bg: #fff;
  --ink: #1f2a33;
  --muted: rgba(31,42,51,.65);

  --navy: #243449;
  --navy2: #1c2a3b;

  --gold: #cfc39c;
  --gold2: #9a8f62;

  --line: rgba(31,42,51,.18);

  background: var(--bg);
  padding: clamp(56px, 6vw, 110px) 0;
}

.cresReason__inner{
  width: min(1500px, 92vw);
  margin: 0 auto;
}

/* ===== Head ===== */
.cresReason__head{
  text-align: center;
  margin-bottom: clamp(28px, 4vw, 64px);
  position: relative;
}

.cresReason__en{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: clamp(52px, 6vw, 86px);
  letter-spacing: .22em;
  color: var(--gold2);
  line-height: 1;
  position: relative;
}

/* 左右の斜線装飾 */
.cresReason__en::before,
.cresReason__en::after{
  content:"";
  position:absolute;
  top: 50%;
  width: min(120px, 16vw);
  height: 10px;
  transform: translateY(-50%);
  background:
    repeating-linear-gradient(90deg, var(--gold2), var(--gold2) 2px, transparent 2px, transparent 8px);
  opacity: .55;
}
.cresReason__en::before{ left: 0; }
.cresReason__en::after{ right: 0; }

.cresReason__ja{
  margin: 14px 0 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-size: clamp(20px, 2.2vw, 30px);
  letter-spacing: .14em;
  color: var(--ink);
  font-weight: 500;
}

.cresReason__sub{
  margin: 12px 0 0;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size: 13px;
  letter-spacing: .18em;
  color: var(--muted);
}

/* ===== Item base ===== */
.cresReasonItem{
  padding: clamp(28px, 3.6vw, 60px) 0;
  border-top: 1px solid var(--line);
}
.cresReasonItem:last-child{
  border-bottom: 1px solid var(--line);
}

.cresReasonItem__row{
  display: flex;
  gap: clamp(18px, 2.8vw, 44px);
  align-items: stretch;
}

/* reverse layout */
.cresReasonItem--rev .cresReasonItem__row{
  flex-direction: row-reverse;
}

/* columns */
.cresReasonItem__text{
  width: 44%;
  min-width: 320px;
}

.cresReasonItem__media{
  width: 56%;
  position: relative;
  min-width: 360px;
}

/* ===== Title (REASON + number) ===== */
.cresReasonItem__ttl{
  display: flex;
  gap: 12px;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: 12px;
}

.cresReasonItem__ttlEn{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: 30px;
  letter-spacing: .22em;
  color: var(--ink);
}
.cresReasonItem__ttlEn--blue{ color: var(--navy); }

.cresReasonItem__ttlNum{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: 60px;
  letter-spacing: .04em;
  color: var(--gold2);
  line-height: 1;
}

/* kicker + headline */
.cresReasonItem__kicker{
  margin: 0;
  text-align: center;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size: 13px;
  letter-spacing: .14em;
  color: rgba(31,42,51,.7);
}

.cresReasonItem__headline{
  margin: 14px 0 0;
  text-align: center;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-size: clamp(20px, 2.4vw, 34px);
  letter-spacing: .14em;
  color: var(--ink);
  font-weight: 500;
  line-height: 1.35;
}

/* 色味違い（Reason02の見出し） */
.cresReasonItem__headline--blue{
  color: var(--navy);
}

/* ===== Description (dark box like screenshot) ===== */
.cresReasonItem__desc{
  margin-top: 18px;
  background: linear-gradient(135deg, var(--navy2), var(--navy));
  position: relative;
  padding: 18px 18px;
  color: rgba(255,255,255,.92);
  overflow: hidden;
}
.cresReasonItem__desc p{
  margin: 0;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  line-height: 1.9;
  letter-spacing: .06em;
  font-size: 16px;
  position: relative;
  z-index: 1;
}

/* 右下の斜めアクセント（画像の雰囲気） */
.cresReasonItem__desc::after{
  content:"";
  position:absolute;
  right: 0;
  bottom: 0;
  width: 46%;
  height: 70%;
  background: linear-gradient(135deg, transparent 0 55%, rgba(59,42,31,.55) 55% 100%);
  pointer-events:none;
  z-index: 0;
}

/* ===== Photo frame corner ===== */
.cresReasonItem__photo{
  margin: 0;
  position: relative;
  overflow: hidden;
}
.cresReasonItem__photo img{
  display:block;
  width: 100%;
  height: auto;
}

/* corner line */
.cresReasonItem__photo::before,
.cresReasonItem__photo::after{
  content:"";
  position:absolute;
  width: 88px;
  height: 88px;
  border-style: solid;
  border-color: rgba(255,255,255,.95);
  pointer-events:none;
}
.cresReasonItem__photo::before{
  top: 14px;
  left: 14px;
  border-top-width: 2px;
  border-left-width: 2px;
  border-right-width: 0;
  border-bottom-width: 0;
}
.cresReasonItem__photo::after{
  bottom: 14px;
  right: 14px;
  border-bottom-width: 2px;
  border-right-width: 2px;
  border-left-width: 0;
  border-top-width: 0;
}

/* ===== badges on photo ===== */
.cresReasonItem__badges{
  position: absolute;
  right: 18px;
  bottom: 18px;
  display: flex;
  gap: 10px;
  align-items: flex-end;
}

.cresBadge{
  width: 120px;
  height: 120px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.65);
  text-align: center;
  box-shadow: 0 6px 16px rgba(0,0,0,.15);
}
.cresBadge p{
  margin: 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-size: 14px;
  letter-spacing: .12em;
  line-height: 1.25;
  color: #fff;
}
.cresBadge--gold{
  background: linear-gradient(135deg, var(--gold2), var(--gold));
}
.cresBadge--navy{
  background: linear-gradient(135deg, var(--navy2), var(--navy));
}

/* ===== sub cards (2 columns) ===== */
.cresReasonCards{
  margin-top: clamp(18px, 2.6vw, 40px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 26px);
}

.cresReasonCard__bar{
  margin: 0;
  padding: 14px 14px;
  color: #fff;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .12em;
  font-size: 14px;
  text-align: center;
}
.cresReasonCard__bar--gold{ background: linear-gradient(135deg, var(--gold2), var(--gold)); }
.cresReasonCard__bar--navy{ background: linear-gradient(135deg, var(--navy2), var(--navy)); }

.cresReasonCard__box{
  background: #fff;
  padding: 16px 16px;
  border: 2px solid transparent;
}
.cresReasonCard__box p{
  margin: 0;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  letter-spacing: .05em;
  line-height: 1.85;
  font-size: 14px;
  color: rgba(31,42,51,.82);
}
.cresReasonCard__box--gold{ border-color: rgba(154,143,98,.55); }
.cresReasonCard__box--navy{ border-color: rgba(36,52,73,.45); }

/* ===== equipment 3 columns ===== */
.cresEquip{
  margin-top: clamp(18px, 2.6vw, 44px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.8vw, 22px);
}

.cresEquip__img{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
}
.cresEquip__img img{
  display:block;
  width: 100%;
  height: auto;
}

.cresEquip__cap{
  margin: 0;
  padding: 14px 10px;
  text-align: center;
  color: #fff;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .12em;
  font-size: 14px;
}
.cresEquip__cap--gold{ background: linear-gradient(135deg, var(--gold2), var(--gold)); }
.cresEquip__cap--navy{ background: linear-gradient(135deg, var(--navy2), var(--navy)); }

/* ===== marker-like highlight (optional) ===== */
.cresReasonItem__headline{
  background-image: linear-gradient(transparent 70%, rgba(207,195,156,.35) 0);
  background-size: 100% 1.2em;
  background-repeat: no-repeat;
  background-position: 0 92%;
}

/* ===== responsive ===== */
@media (max-width: 980px){
  .cresReasonItem__row{
    flex-direction: column;
  }
  .cresReasonItem--rev .cresReasonItem__row{
    flex-direction: column;
  }

  /* モバイル時だけ画像を上、文章を下にする */
  .cresReasonItem__media{
    order: 1;
  }
  .cresReasonItem__text{
    order: 2;
  }

  .cresReasonItem__text,
  .cresReasonItem__media{
    width: 100%;
    min-width: 0;
  }

  .cresReasonItem__badges{
    right: 12px;
    bottom: 12px;
  }

  .cresBadge{
    width: 104px;
    height: 104px;
  }

  .cresReasonCards{
    grid-template-columns: 1fr;
  }

  .cresEquip{
    grid-template-columns: 1fr;
  }
}
/* =========================
   REASON 追加 3カラム（H3＋説明）
   ========================= */
.cresReasonTri{
  margin-top: clamp(26px, 3.2vw, 50px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 26px);
}

/* 1枚のカード */
.cresReasonTri__item{
  border-top: 1px solid rgba(31,42,51,.18);
  padding-top: 18px;
}

/* REASON + 番号 */
.cresReasonTri__ttl{
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 10px;
}

.cresReasonTri__en{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: 30px;
  letter-spacing: .22em;
  color: rgba(31,42,51,.75);
}

.cresReasonTri__num{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: 60px;
  line-height: 1;
  color: #9a8f62;
}

/* 小見出し（任意） */
.cresReasonTri__kicker{
  margin: 0;
  text-align: center;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size: 12px;
  letter-spacing: .14em;
  color: rgba(31,42,51,.65);
}

/* H3（送付画像のように下に帯） */
.cresReasonTri__headline{
  margin: 12px 0 0;
  text-align: center;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-weight: 500;
  font-size: clamp(18px, 1.6vw, 24px);
  letter-spacing: .14em;
  color: rgba(31,42,51,.92);
  line-height: 1.35;
  position: relative;
  padding-bottom: 12px;
}
.cresReasonTri__headline::after{
  content:"";
  position:absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 10px;
  background: rgba(207,195,156,.35); /* ベージュ帯 */
}

/* 説明（濃紺ボックス＋斜め装飾） */
.cresReasonTri__desc{
  margin-top: 14px;
  position: relative;
  overflow: hidden;
  padding: 16px 16px;
  color: rgba(255,255,255,.92);
  background: linear-gradient(135deg, #1c2a3b, #243449);
}
.cresReasonTri__desc::after{
  content:"";
  position:absolute;
  right: 0;
  bottom: 0;
  width: 46%;
  height: 70%;
  background: linear-gradient(135deg, transparent 0 55%, rgba(59,42,31,.55) 55% 100%);
  z-index: 0; /* 装飾を下 */
  pointer-events:none;
}
.cresReasonTri__desc p{
  margin: 0;
  position: relative;
  z-index: 1; /* 文字を上 */
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size: 16px;
  letter-spacing: .06em;
  line-height: 1.9;
}

/* レスポンシブ */
@media (max-width: 980px){
  .cresReasonTri{
    grid-template-columns: 1fr;
  }
}

/* =========================
   Information
   ========================= */
.infoBlock{
  --bg: #fff;
  --panel: rgba(255,255,255,.45);
  --line: rgba(0,0,0,.18);
  --ink: #2b2b2b;
  --muted: rgba(0,0,0,.65);

  --gold: #cfc39c;
  --gold2: #9a8f62;

  --green: #00b44a;

  background: var(--bg) url("https://hiroshima-dental.com/wp-content/uploads/2025/07/backD-2.png")
  center / cover no-repeat;
  padding: clamp(44px, 6vw, 90px) 0;
}

.infoBlock__inner{
  width: min(1200px, 92vw);
  margin: 0 auto;
}

/* Head */
.infoBlock__head{
  text-align: center;
  margin-bottom: clamp(22px, 3.2vw, 44px);
}

.infoBlock__en{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: clamp(38px, 4.3vw, 64px);
  letter-spacing: .14em;
  color: #3E4656;
  line-height: 1.1;
}

.infoBlock__ja{
  margin: 10px 0 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-size: clamp(18px, 2vw, 26px);
  letter-spacing: .14em;
  font-weight: 500;
  color: var(--ink);
}

/* wave line */
.infoBlock__wave{
  position: relative;
  width: min(220px, 60vw);
  height: 18px;
  margin: 14px auto 0;
  background: none;
}
.infoBlock__wave::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 128px;
  height: 5px;
  background: linear-gradient(
    90deg,
    rgba(207, 195, 156, 0) 0%,
    rgba(207, 195, 156, 0.72) 10%,
    rgba(207, 195, 156, 0.82) 50%,
    rgba(207, 195, 156, 0.72) 90%,
    rgba(207, 195, 156, 0) 100%
  );
}

/* Body (left info / right image) */
.infoBlock__body{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(18px, 3vw, 40px);
  align-items: start;
}

.infoBlock__info{
  padding-top: 6px;
}

.infoBlock__clinicName{
  margin: 0 0 10px;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size: clamp(18px, 2vw, 26px);
  letter-spacing: .12em;
  color: var(--ink);
}

.infoBlock__postal,
.infoBlock__addr{
  margin: 0;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  letter-spacing: .06em;
  line-height: 1.85;
  color: var(--muted);
}
.infoBlock__postal{ margin-top: 2px; }
.infoBlock__addr{ margin-top: 6px; }

/* hours panel */
/* ===== Hours Table (Info Block) ===== */
.infoBlock__hours{
  margin-top: 18px;
  background: rgba(255,255,255,.45);
  border: 1px solid rgba(0,0,0,.18);
  padding: 14px 16px;
}

.infoBlock__tableWrap{
  overflow-x: auto; /* SPで横スクロール */
  -webkit-overflow-scrolling: touch;
}

.infoBlock__table{
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  min-width: 640px; /* SP時に崩れない */
  background: rgba(255,255,255,.65);
}

.infoBlock__table th,
.infoBlock__table td{
  border: 1px solid rgba(0,0,0,.16);
  padding: 12px 8px;
  text-align: center;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  letter-spacing: .04em;
  color: rgba(0,0,0,.78);
  font-size: 13px;
  line-height: 1.3;
}

/* header */
.infoBlock__table thead th{
  background: rgba(0,0,0,.04);
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  letter-spacing: .10em;
  font-weight: 500;
  color: rgba(0,0,0,.72);
}

/* time column */
.infoBlock__thTime{
  width: 170px;
}
.infoBlock__tdTime{
  text-align: left;
  padding-left: 14px;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  letter-spacing: .08em;
  background: rgba(0,0,0,.02);
}

/* open / closed */
.infoBlock__open{
  color: rgba(0,0,0,.9);
  font-weight: 600;
}
.infoBlock__closed{
  color: rgba(0,0,0,.35);
  background: rgba(0,0,0,.02);
}

/* optional: sat emphasis */
.infoBlock__sat{
  background: linear-gradient(135deg, rgba(154,143,98,.18), rgba(207,195,156,.22));
}

/* note */
.infoBlock__note{
  margin: 10px 0 0;
  font-size: 12px;
  letter-spacing: .08em;
  color: rgba(0,0,0,.6);
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
}

.infoBlock__hoursRow{
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.12);
}
.infoBlock__hoursRow:first-child{
  border-top: none;
  padding-top: 0;
}

.infoBlock__hoursLabel{
  margin: 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .12em;
  color: rgba(0,0,0,.7);
  font-size: 14px;
}

.infoBlock__hoursText{
  margin: 0;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  letter-spacing: .06em;
  color: var(--ink);
  font-size: 14px;
}

/* Image */
.infoBlock__media{
  margin: 0;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  overflow: hidden;
}
.infoBlock__media img{
  display: block;
  width: 100%;
  height: auto;
}

/* CTA */
.infoBlock__cta{
  margin-top: clamp(22px, 3vw, 34px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  width: min(760px, 92vw);
  margin-left: auto;
  margin-right: auto;
}

.infoBlock__btn{
  text-decoration: none;
  display: grid;
  grid-template-columns: 56px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 14px;
  padding: 18px 18px;
  border: 2px solid transparent;
  color: #fff;
  min-height: 92px;
}

.infoBlock__btnIcon{
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  font-size: 22px;
  line-height: 1;
}

.infoBlock__btnMain{
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .12em;
  font-size: clamp(18px, 2.2vw, 26px);
}

.infoBlock__btnSub{
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  letter-spacing: .06em;
  font-size: 12px;
  opacity: .92;
}

/* tel / web colors (gold系) */
.infoBlock__btn--tel{
  background: linear-gradient(135deg, var(--gold2), var(--gold));
  border-color: rgba(0,0,0,.08);
}

.infoBlock__btn--web{
  background: linear-gradient(135deg, #7f744f, #cfc39c);
  border-color: rgba(0,0,0,.08);
}

/* hover */
.infoBlock__btn:hover{
  filter: brightness(1.03);
  color: #3E4656;
}
.infoBlock__btn:focus-visible{
  outline: 3px solid rgba(255,255,255,.9);
  outline-offset: 4px;
}

/* responsive */
@media (max-width: 900px){
  .infoBlock__body{
    grid-template-columns: 1fr;
  }
  .infoBlock__cta{
    grid-template-columns: 1fr;
  }
  .infoBlock__hoursRow{
    grid-template-columns: 80px 1fr;
  }
}
/* =========================
   モバイル版だけ調整
   デスクトップ版は変更しない
   ========================= */
@media (max-width: 767px) {

  .infoBlock__body {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .infoBlock__info,
  .infoBlock__media,
  .infoBlock__hours,
  .infoBlock__tableWrap {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

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

  /* 横スクロールにしない */
  .infoBlock__tableWrap {
    overflow: visible;
  }

  /* SPでは表を親幅に収める */
  .infoBlock__table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }

  .infoBlock__table th,
  .infoBlock__table td {
    padding: 8px 2px;
    font-size: 12px;
    line-height: 1.4;
    letter-spacing: 0;
  }

  /* 時間帯列だけ少し広め */
  .infoBlock__thTime,
  .infoBlock__tdTime {
    width: 34%;
    font-size: 11px;
    white-space: nowrap;
  }

  .infoBlock__note {
    font-size: 12px;
    line-height: 1.6;
  }
}

/* さらに小さい端末向け */
@media (max-width: 430px) {
  .infoBlock__table th,
  .infoBlock__table td {
    padding: 6px 1px;
    font-size: 11px;
  }

  .infoBlock__thTime,
  .infoBlock__tdTime {
    width: 38%;
    font-size: 10px;
  }

  .infoBlock__note {
    font-size: 11px;
  }
}

/*=========================================================
  *院長挨拶
=================================================================*/
.dirIntro{
  --bg: #fff;
  --ink: #2b2b2b;
  --muted: rgba(0,0,0,.65);
  --line: rgba(0,0,0,.18);

  --gold: #cfc39c;
  --gold2: #9a8f62;

  background: var(--bg);
  padding: clamp(52px, 6vw, 96px) 0;
}

.dirIntro__inner{
  width: min(1200px, 92vw);
  margin: 0 auto;
}

/* Head */
.dirIntro__head{
  text-align: center;
  margin-bottom: clamp(26px, 3.6vw, 52px);
}
.dirIntro__en{
  margin: 0;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  font-size: clamp(40px, 4.6vw, 70px);
  letter-spacing: .14em;
  color: #3E4656;
  line-height: 1.1;
}
.dirIntro__ja{
  margin: 10px 0 0;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-size: clamp(18px, 2vw, 26px);
  letter-spacing: .14em;
  font-weight: 500;
  color: var(--ink);
}
.dirIntro__wave{
  position: relative;
  width: min(220px, 60vw);
  height: 18px;
  margin: 14px auto 0;
  background: none;
}

.dirIntro__wave::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 128px;
  height: 5px;
  background: linear-gradient(
    90deg,
    rgba(207, 195, 156, 0) 0%,
    rgba(207, 195, 156, 0.72) 10%,
    rgba(207, 195, 156, 0.82) 50%,
    rgba(207, 195, 156, 0.72) 90%,
    rgba(207, 195, 156, 0) 100%
  );
}
/* Grid */
.dirIntro__grid{
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: clamp(18px, 3vw, 40px);
  align-items: start;
}

/* Photo */
.dirIntro__photo{
  margin: 0;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  overflow: hidden;
  position: relative;
}
.dirIntro__photo img{
  display:block;
  width:100%;
  height:auto;
}
/* corner line */
.dirIntro__photo::before,
.dirIntro__photo::after{
  content:"";
  position:absolute;
  width: 88px;
  height: 88px;
  border-style: solid;
  border-color: rgba(0,0,0,.18);
  pointer-events:none;
}
.dirIntro__photo::before{
  top: 14px; left: 14px;
  border-top-width: 2px; border-left-width: 2px;
  border-right-width: 0; border-bottom-width: 0;
}
.dirIntro__photo::after{
  bottom: 14px; right: 14px;
  border-bottom-width: 2px; border-right-width: 2px;
  border-left-width: 0; border-top-width: 0;
}

.dirIntro__photoCap{
  display:flex;
  gap: 10px;
  align-items: baseline;
  padding: 14px 16px;
  border-top: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.65);
}
.dirIntro__role{
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .12em;
  color: rgba(0,0,0,.7);
  font-size: 14px;
}
.dirIntro__name{
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .14em;
  color: var(--ink);
  font-size: 20px;
  font-weight: 500;
}

/* Message */
.dirIntro__content{
  border-top: 1px solid var(--line);
  padding-top: 18px;
}
.dirIntro__message{
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  color: rgba(0,0,0,.78);
  letter-spacing: .05em;
  line-height: 1.95;
}
.dirIntro__message p{
  margin: 0 0 1.05em;
}
.dirIntro__message strong{
  color: rgba(0,0,0,.88);
  background-image: linear-gradient(transparent 70%, rgba(207,195,156,.45) 0);
  background-size: 100% 1.2em;
  background-repeat: no-repeat;
  background-position: 0 92%;
  font-weight: 700;
}

/* Points */
.dirIntro__points{
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.dirIntro__point{
  position: relative;
  padding: 12px 12px 12px 44px;
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.55);
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .10em;
  color: rgba(0,0,0,.78);
}
.dirIntro__point::before{
  content:"";
  position:absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  background: linear-gradient(135deg, var(--gold2), var(--gold));
}

/* Details */
.dirIntro__details{
  margin-top: 20px;
  display: grid;
  gap: 10px;
}
.dirIntro__detail{
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.55);
}
.dirIntro__summary{
  cursor: pointer;
  padding: 14px 16px;
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  letter-spacing: .12em;
  color: rgba(0,0,0,.78);
  list-style: none;
  position: relative;
}
.dirIntro__summary::-webkit-details-marker{ display:none; }
.dirIntro__summary::after{
  content:"＋";
  position:absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(0,0,0,.55);
}
.dirIntro__detail[open] .dirIntro__summary::after{ content:"－"; }

.dirIntro__timeline,
.dirIntro__list,
.dirIntro__papers{
  margin: 0;
  padding: 0 16px 16px 16px;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  letter-spacing: .04em;
  color: rgba(0,0,0,.78);
  line-height: 1.9;
  font-size: 14px;
}
.dirIntro__timeline{ list-style: none; }
.dirIntro__timeline li{
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.10);
}
.dirIntro__timeline li:first-child{ border-top: none; }

.dirIntro__year{
  display: inline-block;
  min-width: 74px;
  font-family: "Cormorant Garamond","Times New Roman",serif;
  letter-spacing: .10em;
  color: rgba(0,0,0,.55);
}

.dirIntro__list{
  list-style: none;
}
.dirIntro__list li,
.dirIntro__papers li{
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.10);
}
.dirIntro__list li:first-child,
.dirIntro__papers li:first-child{ border-top: none; }

.dirIntro__papers{
  padding-left: 34px;
}

/* Responsive */
@media (max-width: 980px){
  .dirIntro__grid{
    grid-template-columns: 1fr;
  }
  .dirIntro__content{
    border-top: none;
    padding-top: 0;
  }
}

/* =========================================================
  * 院長紹介：経歴 / 所属学会・資格（常時表示）
========================================================= */
.dirIntro__careerWrap{
  margin-top: 18px;
}

.dirIntro__careerGrid{
  display: grid;
  grid-template-columns: 6fr 4fr;
  gap: clamp(14px, 2vw, 24px);
  align-items: start;
}

.dirIntro__careerCol{
  border: 1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.55);
}

.dirIntro__careerTitle{
  margin: 0;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(0,0,0,.10);
  font-family: "Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.6;
  color: rgba(0,0,0,.78);
  background:
    linear-gradient(90deg, rgba(207,195,156,.20) 0%, rgba(207,195,156,.08) 100%);
}

.dirIntro__careerTimeline,
.dirIntro__careerList{
  margin: 0;
  padding: 0 18px 18px;
  font-family: "Yu Gothic Pr6N","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: .04em;
  color: rgba(0,0,0,.78);
}

.dirIntro__careerTimeline{
  list-style: none;
}

.dirIntro__careerTimeline li,
.dirIntro__careerList li{
  padding: 12px 0;
  border-top: 1px solid rgba(0,0,0,.10);
}

.dirIntro__careerTimeline li:first-child,
.dirIntro__careerList li:first-child{
  border-top: none;
}

.dirIntro__careerList{
  list-style: none;
}

.dirIntro__careerList li{
  position: relative;
  padding-left: 20px;
}

.dirIntro__careerList li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 8px;
  height: 8px;
  background: linear-gradient(135deg, var(--gold2), var(--gold));
  transform: rotate(45deg);
}

/* 既存の year を使う場合はそのままでOK。
   必要なら下記で少しだけ見やすく上書き */
.dirIntro__careerTimeline .dirIntro__year{
  min-width: 82px;
  margin-right: 6px;
  vertical-align: top;
}

/* Responsive */
@media (max-width: 980px){
  .dirIntro__careerGrid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px){
  .dirIntro__careerTitle{
    padding: 12px 14px;
    font-size: 15px;
  }

  .dirIntro__careerTimeline,
  .dirIntro__careerList{
    padding: 0 14px 14px;
    font-size: 13px;
    line-height: 1.85;
  }

  .dirIntro__careerTimeline .dirIntro__year{
    display: block;
    min-width: 0;
    margin: 0 0 2px;
  }

  .dirIntro__careerList li::before{
    top: 18px;
  }
}

/*=========================================================
  *診療案内 
=================================================================*/
.medGuide {
  padding: 110px 20px;
  background:
    linear-gradient(rgba(248, 248, 246, 0.82), rgba(248, 248, 246, 0.82)),
    url("https://hiroshima-dental.com/wp-content/uploads/2025/07/pexels-photo-305568.webp") center center / cover no-repeat;
}

.medGuide-inner{
  width: min(1180px, 100%);
  margin: 0 auto;
}

.medGuide-head{
  text-align: center;
  margin-bottom: 48px;
}

.medGuide-en{
  margin: 0;
  color: #4a5060;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(40px, 7vw, 88px);
  line-height: 1;
  letter-spacing: .12em;
}

.medGuide-ja{
  margin: 12px 0 0;
  color: #222;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.5;
}

.medGuide-lead{
  margin: 14px 0 0;
  color: #555;
  font-size: 16px;
  line-height: 1.9;
}

.medGuide-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.medGuide-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 210px;
  padding: 24px 22px 22px;
  background: #fff;
  border: 1px solid #d8d5cc;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease, background-color .3s ease;
}

.medGuide-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  border-color: #cfc39c;
  background: #f5f1e6;
}

.medGuide-num{
  margin: 0 0 24px;
  color: #cfc39c;
  font-family: "Cormorant Garamond", serif;
  font-size: 32px;
  line-height: 1;
  letter-spacing: .08em;
}

.medGuide-ttl{
  margin: 0;
  color: #1f2430;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .06em;
}

.medGuide-more{
  position: relative;
  margin: 28px 0 0;
  padding-right: 24px;
  color: #4a5060;
  font-size: 13px;
  letter-spacing: .08em;
  line-height: 1.4;
}

.medGuide-more::after{
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 14px;
  height: 1px;
  background: #4a5060;
  transform: translateY(-50%);
}

.medGuide-more::before{
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid #4a5060;
  border-right: 1px solid #4a5060;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: center;
}


/*==============================
  responsive
==============================*/
@media (max-width: 1080px){
  .medGuide-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px){
  .medGuide{
    padding: 80px 16px;
  }

  .medGuide-head{
    margin-bottom: 32px;
  }

  .medGuide-ja{
    font-size: 26px;
  }

  .medGuide-lead{
    font-size: 14px;
    line-height: 1.8;
  }

  .medGuide-grid{
    gap: 12px;
  }

  .medGuide-card{
    min-height: 150px;
    padding: 18px 16px 16px;
  }

  .medGuide-num{
    margin-bottom: 16px;
    font-size: 24px;
  }

  .medGuide-ttl{
    font-size: 18px;
    line-height: 1.5;
  }

  .medGuide-more{
    margin-top: 18px;
    font-size: 12px;
  }
}

@media (max-width: 480px){
  .medGuide-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .medGuide-card{
    min-height: 138px;
  }

  .medGuide-ttl{
    font-size: 16px;
  }
}
/*==============================
  Footer
==============================*/
.siteFooter{
  padding: 80px 20px 24px;
  background: #2f3440;
  color: #fff;
}

.siteFooter__inner{
  width: min(1180px, 100%);
  margin: 0 auto;
}

.siteFooter__top{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.siteFooter__logoLink{
  display: inline-block;
  margin-bottom: 18px;
}

.siteFooter__logoImg{
  display: block;
  width: min(320px, 100%);
  height: auto;
}

.siteFooter__addr,
.siteFooter__time,
.siteFooter__holiday{
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: 15px;
  line-height: 2;
}

.siteFooter__cta{
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-self: start;
}

.siteFooter__btn{
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 92px;
  padding: 18px 22px;
  text-decoration: none;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  transition: transform .3s ease, box-shadow .3s ease, opacity .3s ease;
}

.siteFooter__btn::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(255,255,255,.22) 0%,
    rgba(255,255,255,0) 35%,
    rgba(255,255,255,.08) 100%
  );
  pointer-events: none;
}

.siteFooter__btn:hover{
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(0,0,0,.24);
  opacity: .98;
}

.siteFooter__btn--tel{
  color: #2f3440;
  background: linear-gradient(
    135deg,
    #e4d8b6 0%,
    #cfc39c 38%,
    #bca873 70%,
    #e7dcc0 100%
  );
  border-color: rgba(255,255,255,.2);
}

.siteFooter__btn--web{
  color: #fff;
  background: linear-gradient(
    135deg,
    #4b5364 0%,
    #353b48 42%,
    #242a35 100%
  );
  border-color: rgba(255,255,255,.14);
}

.siteFooter__btnLabel,
.siteFooter__btnText{
  position: relative;
  z-index: 1;
}

.siteFooter__btnLabel{
  font-size: 14px;
  letter-spacing: .08em;
  line-height: 1.4;
}

.siteFooter__btnText{
  margin-top: 6px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .04em;
}

.siteFooter__navWrap{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding: 42px 0 30px;
}

.siteFooter__navTtl{
  margin: 0 0 14px;
  color: #cfc39c;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.5;
}

.siteFooter__navList{
  margin: 0;
  padding: 0;
  list-style: none;
}

.siteFooter__navList li + li{
  margin-top: 10px;
}

.siteFooter__navList a{
  color: rgba(255,255,255,.82);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.8;
  transition: color .3s ease;
}

.siteFooter__navList a:hover{
  color: #fff;
}

.siteFooter__bottom{
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.14);
  text-align: center;
}

.siteFooter__copy{
  margin: 0;
  color: rgba(255,255,255,.6);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .06em;
}

/*==============================
  responsive
==============================*/
@media (max-width: 980px){
  .siteFooter__top{
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .siteFooter__navWrap{
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 20px;
  }
}

@media (max-width: 767px){
  .siteFooter{
    padding: 64px 16px 20px;
  }

  .siteFooter__logo{
    font-size: 22px;
  }

  .siteFooter__addr,
  .siteFooter__time,
  .siteFooter__holiday{
    font-size: 14px;
    line-height: 1.9;
  }

  .siteFooter__btn{
    min-height: 78px;
    padding: 16px 18px;
  }

  .siteFooter__btnText{
    font-size: 20px;
  }

  .siteFooter__navWrap{
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 16px;
    padding: 34px 0 24px;
  }

  .siteFooter__navTtl{
    margin-bottom: 10px;
    font-size: 15px;
  }

  .siteFooter__navList a{
    font-size: 13px;
    line-height: 1.8;
  }
}
/*=========================================================
  *応募フォーム 
=================================================================*/
/* =========================================
   TOP 採用バナー
   ========================================= */
.top-recruit-bnr {
  display: block;
  max-width: 1000px;
  margin: 0 auto;
  text-decoration: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.top-recruit-bnr__img {
  display: block;
  width: 100%;
  height: auto;
}

/* hover */
.top-recruit-bnr:hover {
  opacity: 0.9;
}

/* SP */
@media (max-width: 767px) {
  .top-recruit-bnr {
    max-width: 100%;
  }
}