/*
Theme Name: Kishi English v2
Author: Kishiwada Tokushukai Hospital
Version: 2.0
*/

/* テーマ側で付いているかもしれない上マージンを消す */
.site,
#page,
.site-header,
#masthead {
  margin-top: 0;
  padding-top: 0;
}

/* 固定ページだけ、タイトルの上に少し余白を足す */
body.page .page-wrap{
  padding-top: 24px;
}

/* 固定ヘッダーを考慮して body の上に余白 */
html{
  margin:0;
  padding:0;
  -webkit-text-size-adjust:100%;
}

:root{
  --bg:#fff;
  --section:#E5C2C7;      /* dusty rose */
  --accent:#3A4B59;       /* navy for CTA/headings/links */
  --accent-hover:#31404C;
  --text:#2B2B2B;
  --muted:#6D7177;
  --surface:#fff;
  --gold:#D9C9A3;
  --silver:#D0D3D4;
  --border:#E9D9DD;
  --radius:10px;
  --shadow:0 1px 2px rgba(0,0,0,.04), 0 4px 10px rgba(0,0,0,.03);
  --hero-img:none;
  --header-height: 88px;
}

/* ベースタイポグラフィ */
*{ box-sizing:border-box; }

body{
  margin:0;
  padding-top:var(--header-height);    
  background:var(--bg);
  color:var(--text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:18px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{
  color:var(--accent);
  text-decoration-thickness:.08em;
  text-underline-offset:.14em;
}

/* 見出し */
h1,h2,h3{
  color:var(--accent);
  font-family:"Playfair Display", "Noto Serif JP", "Georgia", serif,"Hiragino Mincho ProN","Yu Mincho","Times New Roman",serif;
  font-weight:600;
  letter-spacing:.2px;
  line-height:1.25;
  margin:0 0 16px;
}
h1{ font-size:42px; margin-top:8px; }
h2{ font-size:26px; }
h3{ font-size:20px; }

p{ margin:0 0 20px; }

/* コンテナ */
.kth-wrap{
  max-width:1320px;
  margin:0 auto;
  padding:32px clamp(20px, 4vw, 32px);
  width:100%;
}

/* 細いゴールドライン（任意） */
.topline{
  height:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
}


/* =========================
ページ中央寄せ
   ========================= */

/* コンテンツを包む共通コンテナ */
.page-wrap,
.width1140,
.entry-content,
.site-main {
  max-width: 1140px;      /* ページの最大幅 */
  margin: 0 auto;         /* 左右センター */
  padding: 0 24px;        /* 端がくっつかないように少し余白 */
}

/* 上下にゆとりをつける汎用クラス（前に使ってたはずのやつ） */
.padding-tb {
  padding-top: 40px;
  padding-bottom: 40px;
}


/* =========================
   Mobile: header actions simplify
========================= */
@media (max-width: 520px){

  /* 余白を詰める */
  .kth-utility .kth-bar{
    padding: 8px 12px;
    gap: 10px;
  }

  /* ロゴをもう少し小さく */
  .kth-brand img{
    height: 44px;
  }

  /* 上部のリンクチップはモバイルでは隠す（下の固定バーにある前提） */
  .kth-utility a.kth-chip{
    display: none !important;
  }

  /* Menuボタンは必ず表示して右に追いやられないようにする */
  .kth-utility button.js-nav-open{
    display: inline-flex !important;
    margin-left: auto;
    flex: 0 0 auto;
  }
}





/* ==================================
   ヘッダー（ユーティリティバー）
   ================================== */

.kth-utility{
  margin-top:0;
}

.kth-utility .kth-bar{
  display:flex;
  align-items:center;
  gap:18px;
  padding:8px 32px;
}

/* ブランドロゴ */
.kth-brand{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  color:var(--accent);
  white-space:nowrap;
}
.kth-brand img{
  height:65px;
  width:auto;
  display:block;
   }
   @media (max-width: 768px) {
     .kth-brand img {
       height: 48px;
     }
   }

/* ==== Chips / buttons ==== */
.kth-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:9999px;
  border:1px solid var(--silver);
  background:#fff;
  color:var(--accent);
  text-decoration:none;
  font-weight:700;
  white-space:nowrap;
}
.kth-chip .i{
  line-height:1;
  display:inline-flex;
}
.kth-chip .t{
  white-space:nowrap;
}
.kth-chip--sm{
  padding:6px 10px;
}
.kth-chip--call{
  background:var(--accent);
  color:#fff;
  border-color:transparent;
}
.kth-chip--call:hover{
  background:var(--accent-hover);
}

/* WhatsApp ボタン */
.kth-chip--wa{
  border:1px solid var(--silver) !important;
  background:#fff !important;
  box-shadow:none !important;
}
.kth-wa-icon{
  width:18px;
  height:18px;
  display:block;
  color:#25D366;
}

/* JMIP バッジ */
.kth-jmip-inline{
  display:inline-flex;
}
.kth-badge--jmip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid var(--silver);
  border-radius:8px;
  background:#fff;
  text-decoration:none;
  font-weight:700;
  font-size:12px;
  line-height:1;
  color:var(--accent);
}
.kth-badge--jmip:hover{
  filter:brightness(.97);
}
.kth-badge--jmip .kth-jmip-icon{
  width:16px;
  height:16px;
  opacity:.9;
}

/* レスポンシブ調整（ヘッダーチップ） */
@media (max-width:1280px){
  .kth-chip{
    padding:8px 10px;
    font-size:15px;
  }
}
@media (max-width:1100px){
  .kth-chip:not(.kth-chip--call) .t{
    display:none;
  }
  .kth-chip:not(.kth-chip--call){
    padding:8px;
  }
}
@media (max-width:900px){
  .kth-chip.kth-chip--call{
    padding:8px 10px;
    font-size:14px;
  }
}
@media (max-width:600px){
  .kth-chip{
    padding:6px 8px;
  }
}

/* 固定バー分のスペーサ（必要なページのみ使用） */
#ubar-spacer{
  height:56px;
}

   .menu-icon {
     display: inline-flex;
     flex-direction: column;
     gap: 3px;
     transition: transform 0.3s ease;
   }
   .menu-icon span {
     width: 18px;
     height: 2px;
     background: currentColor;
     transition: all 0.3s ease;
   }
   /* Add rotation animation on open */



/* =========================
   Global nav overlay
========================= */
.nav-overlay{
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;

  display: none;
  background: rgba(0,0,0,.5);
}

.nav-overlay.is-open,
.nav-overlay[aria-hidden="false"]{
  display: block;
}

/* panel */
.nav-panel{
  position: absolute;
  top: 0; right: 0;
  height: 100%;
  width: 100%;
  max-width: 480px;

  background: #fff;
  overflow-y: auto;

  transform: translateX(100%);
  transition: transform .25s ease;
}

.nav-overlay.is-open .nav-panel,
.nav-overlay[aria-hidden="false"] .nav-panel{
  transform: translateX(0);
}

/* head */
.nav-head{
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 1;

  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 16px 20px;
  border-bottom: 1px solid rgba(0,0,0,.12);
}

/* footer stick */
.nav-foot{
  position: sticky;
  bottom: 0;
  background: #fff;
  z-index: 1;

  padding: 16px 20px;
  border-top: 1px solid rgba(0,0,0,.12);
}







/* ==================================
   ヒーロー / カード / News など
   ================================== */

/* ==================================
   Bottom dock（スマホ専用・統一版）
   ================================== */

.kth-dock{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1000;
  display:none;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--silver);
  border-top:1px solid var(--silver);
}
.kth-dock__item{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  height:56px;
  background:#fff;
  color:var(--accent);
  text-decoration:none;
  font-weight:700;
  -webkit-tap-highlight-color:transparent;
}
.kth-dock svg,
.kth-dock img{
  width:22px;
  height:22px;
  display:block;
}
@media (max-width:780px){
  body{
    padding-bottom:64px;
  }
  .kth-dock{
    display:grid;
  }
  .kth-dock__label{
    display:none;
  }
}
@media (min-width:781px){
  .kth-dock{
    display:none !important;
  }
}






/* ==================================
   Outpatient & Inpatient page base
   ================================== */

/* 外来ページ全体の箱 */
.outpatient-page {
  max-width: 960px;
  margin: 0 auto 80px;
  font-size: 17px;
  line-height: 1.9;
}

.outpatient-page .op-lead {
  font-size: 18px;
  line-height: 2;
  margin-bottom: 0.4em;
}

/* Inpatients ページ用のベースコンテナ */
.max-container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px 48px;
}

.inpatients-page {
  font-size: 1rem;
  color: #333;
}

/* 共通：セクション区切り線（<hr class="op-divider">） */
.op-divider {
  display: block;
  border: 0;
  border-top: 1px solid var(--border);
  margin: 40px 0 32px;
}

/* =========================
   Section layout（全ページ共通）
   ========================= */

/* セクションの基本スタイル */
.op-section {
  margin: 40px auto 32px;   /* ここは今まで通りでOK（必要なら） */
  padding-top: 24px;
  border-top: 1px solid var(--border);
}


/* 一番最初のセクションだけ線ナシ */
.op-section:first-of-type {
  border-top: none;
  padding-top: 0;
}

/* セクション見出し */
.op-section h2 {
  font-size: 24px;
  margin: 0 0 12px;
  color: #2c3e50;
}

/* セクション冒頭の説明文 */
.op-section-lead {
  margin: 0 0 16px;
  color: #666;
}

/* =========================
   Bullet / Numbered lists
   ========================= */

.op-bullet-list {
  list-style-type: disc;
  margin: 0 0 8px 1.4rem;
  padding-left: 0;
}

.op-bullet-list li {
  margin-bottom: 6px;
}

.op-numbered-list {
  list-style: decimal;
  margin: 8px 0 0 1.4rem;
  padding-left: 0;
}

/* ネストされた箇条書き（Halal などで使用） */
.op-bullet-list ul {
  list-style: none;
  margin: 6px 0 6px 1.6rem;
  padding-left: 0;
}

.op-bullet-list ul li {
  position: relative;
  margin-bottom: 4px;
  padding-left: 1.1em;
}

.op-bullet-list ul li::before {
  content: "–";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--accent);
  font-weight: 600;
}

/* 第3階層：小さな四角 */
.op-bullet-list ul ul li::before {
  content: "■";
  font-size: 0.75rem;
}

/* 外来・入院ページ内のリンクは下線付きにする */
.outpatient-page a,
.inpatients-page a {
  text-decoration: underline;
}


/* =========================
   Quick information card（共通コンポーネント）
   ========================= */

.info-card {
  border-radius: 18px;
  padding: 24px 28px 28px;
  margin: 32px auto 40px;
  border: 1px solid #f1d5dd;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
  background: #fff;
}

/* ピンクグラデーション背景バリエーション */
.info-card--primary {
  background: linear-gradient(
    180deg,
    rgba(229,194,199,.85) 0%,
    rgba(229,194,199,.45) 40%,
    #fff7f8 100%
  );
}

/* カードのリード文（任意） */
.info-card-lead {
  margin: 0 0 16px;
  color: #666;
}

/* 1行ごとの 2カラム行 */
.info-card .info-item {
  display: grid;
  grid-template-columns: minmax(260px, 320px) 1fr;
  column-gap: 40px;
  align-items: baseline;
  margin: 0 0 18px;
}

/* 左ラベル：共通で太字にする（Outpatient / Language Support 共通） */
.info-card .info-item > :first-child {
  margin: 0;
  font-weight: 700;
  font-size: 1.05rem;
}

/* 右側本文 */
.info-card .info-item > :last-child {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.7;
}

/* 補足メモ（右列に揃える） */
.info-card .info-item-note {
  margin: 2px 0 0;
  font-size: 0.85rem;
  color: #666;
  grid-column: 2 / 3;
}

/* Inpatients のマークアップ用の微調整（h3/p/h4） */
.info-item-label h3 {
  margin: 0 0 6px;
  font-size: 1.15rem;
}

.info-item-label p {
  margin: 0;
  color: #666;
}

.info-item-body h4 {
  margin: 0 0 4px;
  font-size: 0.98rem;
  font-weight: 600;
  color: #3a4b59;
}

.info-item-body .op-bullet-list {
  margin-bottom: 10px;
}

/* =========================
   Infection prevention card
   ========================= */

.info-card--infection {
  background: #fff5f2;   /* ほんのりピンク一色 */
}

.info-card-note {
  margin: 18px 0 0;
  font-size: 0.95rem;
  color: #555;
}

/* ラベル左の丸アイコン（必要なときだけ使用） */
.info-icon-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background: rgba(229,194,199,0.25);
  color: var(--accent);
  margin-right: 8px;
  flex-shrink: 0;
}

.info-icon-circle i {
  font-size: 1.1rem;
}

/* =========================
   Breadcrumb
   ========================= */

.kth-breadcrumb {
  margin: 0 0 16px;
  font-size: 14px;
  color: #6c7680;
}

.kth-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.kth-breadcrumb a:hover {
  text-decoration: underline;
}

/* ページタイトル（h1） */
.page h1.big-h2 {
  margin: 10px 0 4px;
}

/* =========================
   First visit block（左右2カラム）
   ========================= */

.ofv-row {
  display: grid;
  grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
  column-gap: 40px;
  align-items: flex-start;
  margin: 32px 0;
}

.ofv-head h2 {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 600;
}

.ofv-body {
  max-width: 720px;
}

.ofv-body p {
  margin: 0 0 14px;
  line-height: 1.7;
}

/* Summary の箇条書き */
ul.ofv-list {
  list-style: disc;
  margin: 0 0 10px 1.6em;
  padding-left: 0;
}

/* What to bring の番号付きリスト */
ol.ofv-list-number {
  list-style: decimal;
  margin: 0 0 10px 1.6em;
  padding-left: 0;
}

.ofv-body ul.ofv-list li,
.ofv-body ol.ofv-list-number li {
  margin: 0 0 4px;
}

/* =========================
   First visit – step by step（アイコン＋番号）
   ========================= */

/* 基本：ページ幅いっぱい・左揃え */
.ofv-steps {
  margin: 40px 0 48px;      /* auto をやめる＝センター寄せ解除 */
  padding-top: 24px;
  border-top: 1px solid var(--border);
  max-width: 100%;          /* コンテナにぴったり合わせる */
}

/* 外来ページ（First visit – step by step）だけ、
   今まで通り 960px で中央寄せにしたい場合だけコレを使う */
.outpatient-page .ofv-steps {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}


.ofv-steps h2 {
  margin: 0 0 18px;
  font-size: 1.9rem;
}

/* リスト全体：カウンターリセット */
.ofv-steps-list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: ofv-step;
}

/* 各ステップ */
.ofv-steps-list > li {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 18px;
  counter-increment: ofv-step;
}

/* Language Support ページの「How to use the interpretation service」の番号だけリセット */
.ofv-steps--interpret .ofv-steps-list{
  counter-reset: ofv-step 0;
}


/* 丸アイコン */
.ofv-step-icon {
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(229,194,199,0.25);
  color: var(--accent);
  flex-shrink: 0;
  position: relative;
}

.ofv-step-icon i {
  font-size: 1.1rem;
}

/* 左上の番号バッジ 1,2,3… */
.ofv-step-icon::before {
  content: counter(ofv-step);
  position: absolute;
  top: -6px;
  left: -6px;
  width: 18px;
  height: 18px;
  border-radius: 9999px;
  background: #fff;
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.05);
}

/* テキスト側 */
.ofv-step-content {
  flex: 1;
}

.ofv-step-title {
  margin: 0 0 4px;
  font-weight: 700;
}

.ofv-step-text {
  margin: 0;
  line-height: 1.7;
}

/* Halal セクションでも使う小見出し／本文 */
.halal-steps .ofv-step-title {
  margin: 0 0 6px;
}

.halal-steps .ofv-step-text {
  margin: 0 0 10px;
}

/* =========================
   Alerts（黄色い注意ボックス）
   ========================= */

.op-alert {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 20px;
  margin: 24px 0 32px;
  border-radius: 12px;
  background: #fff8e1;
  border-left: 4px solid #f4b000;
}

.op-alert-icon {
  flex: 0 0 auto;
  font-size: 26px;
  line-height: 1;
  color: #f4b000;
  margin-top: 2px;
}

.op-alert-body h3 {
  margin: 0 0 8px;
}

.op-alert-body p {
  margin: 0;
}

/* =========================
   Halal info box（ピンクの説明ボックス）
   ========================= */

.op-infobox {
  border-radius: 18px;
  padding: 24px 28px 28px;
  margin: 32px auto 40px;
  border: 1px solid #f1d5dd;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
  background: #fff5f2;
}

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

.op-infobox-list li {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.op-infobox-list li:last-child {
  margin-bottom: 0;
}

.op-infobox-icon {
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background: rgba(229,194,199,0.25);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 600;
}

.op-infobox-list h3 {
  margin: 0 0 6px;
  font-size: 1.05rem;
}

.op-infobox-list p {
  margin: 0 0 8px;
}

/* =========================
   Important guidelines（カードグリッド）
   ========================= */

.op-guideline-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
  margin-top: 18px;
}

.op-guideline {
  background: #ffffff;
  border-radius: 18px;
  border: 1px solid #f1d5dd;
  padding: 18px 20px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
}

.op-guideline h3 {
  margin: 0 0 8px;
  font-size: 1.05rem;
  color: #2c3e50;
}

.op-guideline p {
  margin: 0;
  color: #666;
}

/* =========================
   Responsive tweaks
   ========================= */

@media (max-width: 780px) {

  /* First visit 2カラム → 縦並び */
  .ofv-row {
    grid-template-columns: 1fr;
    row-gap: 8px;
  }

  .ofv-head {
    border-bottom: 1px solid var(--border);
    padding-bottom: 4px;
  }

  /* ページ本体の箱を画面幅いっぱいに */
  .page-wrap,
  .page-wrap.width1140,
  .op-section,
  .op-section-inner {
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  html,
  body {
    overflow-x: hidden;
  }
}

@media (max-width: 768px) {

  /* Info card 2カラム → 縦並び */
  .info-card .info-item {
    display: block;
  }

  .op-guideline-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ofv-steps {
    padding-top: 16px;
  }

  .ofv-steps-list li {
    align-items: flex-start;
  }
}


.op-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 32px 23px;
  border-radius: 9999px;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  border: 1px solid rgba(229,194,199,.9);
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
  line-height: 1;
  transition: background 0.2s ease-out, box-shadow 0.2s ease-out, transform 0.2s ease-out;
}

.op-btn--primary {
  background: linear-gradient(
    180deg,
    rgba(229,194,199,.88) 0%,
    rgba(229,194,199,.62) 42%,
    rgba(255,255,255,1) 100%
  );
  color: #243443;
}

.op-btn--primary:hover {
  background: linear-gradient(
    180deg,
    rgba(214,170,176,1) 0%,
    rgba(214,170,176,.85) 45%,
    rgba(255,255,255,1) 100%
  );
  box-shadow: 0 8px 22px rgba(0,0,0,0.12);
  transform: translateY(-1px);
}


/* =========================
   Language list – compact 2-column label style
   ========================= */

.lang-card-grid{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 32px;              /* 行間4px・列間32px */
  max-width: 720px;           /* 文章より少し狭くして締める */
  margin: 8px 0 20px;
}

/* 1つ1つは小さめの横ラベルにする（BOXなし） */
.lang-card{
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 2px 0;
  border: none;
  box-shadow: none;
  background: transparent;
  border-radius: 0;
  flex: 0 0 calc(50% - 32px); /* PCでは2列に並べる */
}

/* 国旗は控えめサイズ */
.lang-flag{
  font-size: 1.0rem;
  line-height: 1;
  flex-shrink: 0;
}

/* テキスト部分：ラベル＋補足 */
.lang-text{
  display: flex;
  flex-wrap: wrap;
  column-gap: 4px;
}

.lang-main{
  font-weight: 600;
  font-size: 0.95rem;
}

.lang-sub{
  font-size: 0.85rem;
  color: #666;
}
.lang-sub::before{
  content: "– ";
}

/* スマホは1列に戻す */
@media (max-width: 640px){
  .lang-card-grid{
    display: block;
    max-width: 100%;
  }
  .lang-card{
    flex: none;
  }
}

/* Language tables */
.lang-table {
  width: 100%;
  border-collapse: collapse;
  margin: 6px 0 20px;
  font-size: 0.97rem;
}

.lang-table td {
  padding: 4px 10px;
  border-bottom: 1px solid #eee;
  vertical-align: top;
  white-space: nowrap;    /* 不自然に折り返さない */
}

.lang-table tr:last-child td {
  border-bottom: none;
}

.lang-table td:hover {
  background: #fafafa;
}


/* ===== Language lists ===== */

.lang-note{
  margin: 0 0 10px;
  font-size: 0.95rem;
  color: #666;
}

/* Featured list（英・中・越・アラビア語・ネパール語・スペイン語） */
.lang-featured{
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 32px;   /* 上下・左右のすき間 */
}

.lang-featured li{
  display: flex;
  align-items: baseline;  /* ← これでインデント問題を解消 */
  min-width: 220px;       /* PCで2列くらいに並ぶ */
}

.lang-flag{
  margin-right: 8px;
  font-size: 1.1rem;
  line-height: 1;
}

.lang-name{
  font-weight: 600;
}

.lang-tag{
  margin-left: 6px;
  font-size: 0.9rem;
  color: #666;
}

/* =========================
   Other supported languages – grouped layout
   ========================= */

/* デフォルト：スマホは1カラム */
.lang-groups{
  display: grid;
  grid-template-columns: 1fr;   /* まずは1列 */
  gap: 16px 40px;
  margin: 8px 0 24px;
}

/* PC（幅900px以上）は2カラム */
@media (min-width: 900px){
  .lang-groups{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: flex-start;
  }
}

/* 各グループ */
.lang-group{
  margin: 0;
}

/* グループ見出し */
.lang-group-title{
  margin: 0 0 4px;
  font-size: 0.96rem;
  font-weight: 600;
  color: #2c3e50;
}

/* グループ内リスト */
.lang-group-list{
  margin: 0 0 2px 1.2em;
  padding: 0;
}

.lang-group-list li{
  margin-bottom: 2px;
}


/* =========================
   Most commonly used languages – 3×2 layout on desktop
   ========================= */
@media (min-width: 900px){
  .lang-featured{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3列固定 */
    gap: 6px 32px;  /* 行・列のすき間（今と同じ感覚） */
  }

  .lang-featured li{
    min-width: 0;     /* さっきの min-width:220px を打ち消す */
    margin-left: 0;   /* 念のためインデントもゼロにそろえる */
  }
}
.lang-grid{
  columns: 2;
}

/* Language Support の how-to：基本は 1 カラム。
   見出しブロックの下にステップが続く */
.ofv-steps--interpret .ofv-steps-head{
  margin-bottom: 16px;       /* 見出しとステップの間の余白だけ足す */
}

.ofv-steps--interpret .ofv-steps-body{
  max-width: 720px;          /* 文章はちょっと細めにして読みやすくする（お好みで） */
}


/* How-to interpretation：上の <hr> だけを使う（セクション枠線は消す＋左揃えにする） */
.ofv-steps.ofv-steps--interpret{
  border-top: none;
  padding-top: 0;

  /* ← ここから追加 */
  padding-left: 0;   /* アイコン用の左余白をキャンセル */
  margin: 40px 0;    /* 上下だけ余白、左右は 0 で左揃え */
  max-width: 100%;   /* コンテンツ幅いっぱい */
}



/* Interpretation contact links */
.ls-contact-list i{
  margin-right: 6px;
  width: 1.1em;
  text-align: center;
}
.ls-contact-list a{
  text-decoration: none;
}
.ls-contact-list a:hover{
  text-decoration: underline;
}


/* ===== Language Support – contact icons ===== */
.ls-contact-icons{
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;          /* スマホで狭くなったら折り返す */
}

.ls-contact-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  font-size: 1.25rem;
  text-decoration: none;
}

/* ブランドカラー */
.ls-contact-icon--line{
  background: #00B900;
  color: #fff;
}

.ls-contact-icon--whatsapp{
  background: #25D366;
  color: #fff;
}

.ls-contact-icon--mail{
  background: #f5f5f5;
  color: #444;
  border: 1px solid #ddd;
}

/* ついでに X / Facebook も仕込んでおく（今は使わなくてOK） */
.ls-contact-icon--x{
  background: #000;
  color: #fff;
}

.ls-contact-icon--facebook{
  background: #1877f2;
  color: #fff;
}

/* 画面には見せないけど読み上げ用 */
.sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

/* Interpretation method list */
.ls-interpret-list{
  margin: 4px 0 0;
  padding-left: 1.4em;
}
.ls-interpret-list li{
  margin-bottom: 2px;
}


/* =========================
   Language Support – FAQ (Cleveland / Mayo style)
   ========================= */

.ls-faq {
  margin: 40px 0 56px;
}

.ls-faq h2 {
  font-size: 24px;
  margin: 0 0 10px;
}

/* FAQ 全体のリスト：幅制限を外す */
.ls-faq-list{
  list-style: none;
  margin: 24px 0 32px;   /* 好きな余白でOK */
  padding: 0;
  max-width: 100%;       /* ← ここがポイント */
}



/* 個々の FAQ ブロック */
.ls-faq-item {
  border-bottom: 1px solid var(--border);
  padding: 14px 0;
}

/* summary 行の基本スタイル（質問） */
.ls-faq-item > summary {
  list-style: none;               /* デフォルトの三角を消す */
  cursor: pointer;
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--accent);
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

/* WebKit のデフォルトマーカーも消す */
.ls-faq-item > summary::-webkit-details-marker {
  display: none;
}

/* 左側の小さな Q バッジ（お好みで消してもOK） */
.ls-faq-item > summary::before {
  content: "Q";
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 0.8rem;
  margin-top: 2px;
  color: var(--accent);
  background: #fff;
}

/* 右端の矢印アイコン（＋ → － みたいな感じ） */
.ls-faq-item > summary::after {
  content: "＋";
  margin-left: auto;
  font-size: 0.9rem;
  color: #888;
}

/* 開いたときは記号を変える */
.ls-faq-item[open] > summary::after {
  content: "－";
}

/* 答え部分 */
.ls-faq-answer {
  margin-top: 10px;
  background: #fafafa;
  border-left: 4px solid rgba(229,194,199,.55); /* dusty rose ライン */
  padding: 14px 18px;
  border-radius: 8px;
  color: #444;
  font-size: 0.97rem;

  /* 開閉のときに少しふわっとさせる */
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity .18s ease-out, transform .18s ease-out;
}

/* open 状態のときだけ表示 */
.ls-faq-item[open] .ls-faq-answer {
  opacity: 1;
  transform: translateY(0);
}

/* モバイル微調整 */
@media (max-width: 640px) {
  .ls-faq-list {
    max-width: 100%;
  }
  .ls-faq-item > summary {
    font-size: 1rem;
  }
  .ls-faq-answer {
    font-size: 0.95rem;
  }
}

/* FAQ セクションだけ、op-section の線を消す */
.op-section.ls-faq{
  border-top: none;
  padding-top: 0;
  margin-top: 40px;   /* 好きに調整してOK。今とあまり変えたくなければそのまま */
}



/* === Remote Interpretation FAQ – line length tweak === */
.ls-faq-item{
  max-width: 900px;        /* 好きなら 820〜960 に調整 */
  margin: 0 auto 24px;     /* 各 Q&A を中央寄せ＋下に少し余白 */
}


/* Hover */
.cta-icon:hover .cta-icon__circle{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}


/* Quick information card内のアイコン位置調整 */
.ls-contact-icons--in-card{
  margin-top: 14px;
  justify-content: flex-start; /* ← left */

}



/* Quick information card内のアイコン位置 */
.ls-contact-icons--in-card{
  margin-top: 14px;
  justify-content: flex-start;
}

/* Inline CTA link style */
.kth-link-cta{
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .16em;
  display: inline;
  white-space: nowrap;
}
.kth-link-cta:hover{
  color: var(--accent-hover);
}

/* Alert variants (importance levels) */
.op-alert--info{
  background: #f6f7f9;
  border-left-color: #9aa6b2;
}
.op-alert--info .op-alert-icon{ color:#607080; }

.op-alert--critical{
  background: #fff3f6;
  border-left-color: #c85a6a;
}
.op-alert--critical .op-alert-icon{ color:#c85a6a; }

/* Appointment page safety override (recommended: scope it) */
.appointment-page .ofv-row li,
.appointment-page .op-section p{
  white-space: normal;
}


/* Payment - super simple reset */
.info-card .pay-simple,
.info-card .pay-simple *{ box-sizing:border-box; }

.info-card .pay-simple{ margin-top:10px; }

.info-card .pay-simple .pay-row{
  display:flex;
  gap:22px;
  align-items:flex-start;
}
.info-card .pay-simple .pay-label{
  width:280px;
  font-weight:800;
}
.info-card .pay-simple .pay-content{ flex:1; min-width:0; }

.info-card .pay-simple .pay-block{
  padding:14px 16px;
  margin:0 0 14px;
  border-radius:14px;
  background: rgba(255,255,255,0.45);
  border: 1px solid rgba(255,255,255,0.35);
}
.info-card .pay-simple .pay-title{
  font-weight:900;
  margin-bottom:8px;
  color:#243443;
}
.info-card .pay-simple .pay-text{ margin:4px 0; line-height:1.6; }

.info-card .pay-simple .pay-line{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1.6;
}
.info-card .pay-simple .pay-line--main{ font-weight:700; margin-bottom:4px; }
.info-card .pay-simple .pay-line--sub{ font-size:0.95rem; color:#333; }

.info-card .pay-simple .pay-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px; height:22px;
  border-radius:50%;
  font-size:0.9rem;
  background: rgba(229,194,199,0.35);
  color:#7a2e2e;
  flex-shrink:0;
}
.info-card .pay-simple .pay-icon--atm{
  background: rgba(180,200,220,0.35);
  color:#1f4b6e;
}



.info-card .pay-simple .pay-logos{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:8px 0 6px;
}

/*  ロゴ固定：暴走も縮小も防ぐ */
.info-card .pay-simple .pay-logos img{
  display:inline-block !important;
  height:28px !important;
  width:auto !important;
  max-width:140px !important;
  max-height:28px !important;
  object-fit:contain !important;
  vertical-align:middle;
}

/* Insuranceだけ少し大きめ */
.info-card .pay-simple .pay-logos--ins img{
  height:34px !important;
  max-height:34px !important;
  max-width:180px !important;
}

.info-card .pay-simple .pay-note{
  margin:10px 0 8px;
  padding:10px 12px;
  border-radius:12px;
  background: rgba(255,226,170,0.35);
  border: 1px solid rgba(255,200,90,0.45);
  line-height:1.55;
}
.info-card .pay-simple .pay-foot{
  margin-top:8px;
  color:#666;
  font-size:0.92rem;
}

@media (max-width:900px){
  .info-card .pay-simple .pay-row{ display:block; }
  .info-card .pay-simple .pay-label{ width:auto; margin-bottom:10px; }
}



/* === Credit card logos: base === */
.info-card .pay-logos{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}

/* 全ロゴ共通：潰れ防止 */
.info-card .pay-logos img.pay-logo{
  height: 34px !important;      /* 基本サイズ（読める大きさ） */
  width: auto !important;
  max-width: 160px !important;  /* 横暴走防止 */
  object-fit: contain !important;
  display: block;
}

/* 個別補正：VISAは少し小さく */
.info-card .pay-simple .pay-logos img.pay-logo--visa{
  height: 24px !important;
  max-height: 24px !important;
}

/* Mastercard */
.info-card .pay-simple .pay-logos img.pay-logo--mc{
  height: 40px !important;
  max-height: 40px !important;
}

/* Amex / Diners（潰れやすいので少し大きめ） */
.info-card .pay-simple .pay-logos img.pay-logo--amex,
.info-card .pay-simple .pay-logos img.pay-logo--diners{
  height: 40px !important;
  max-height: 40px !important;
}


/* Insurance logos row */
.info-card .pay-simple .pay-logos--ins{
  gap: 14px;                 /* クレカと同じにするなら同値に */
  margin: 8px 0 10px;
  align-items: center;
}

/* 保険ロゴの共通サイズ（まずここで揃える） */
.info-card .pay-simple .pay-logos--ins img{
  height: 34px !important;
  max-height: 34px !important;
  width: auto !important;
  max-width: 190px !important;
  object-fit: contain !important;
  display: inline-block !important;
}

/* “見た目”補正（ロゴって同じ高さでも揃って見えないから） */
.info-card .pay-simple .pay-logos--ins img.pay-logo--intac{
  height: 45px !important;   /* INTACは小さく見えがちなら少し上げる */
  max-height: 45px !important;
}

.info-card .pay-simple .pay-logos--ins img.pay-logo--msad{
  height: 40px !important;   /* MS&ADはそのまま */
  max-height: 40px !important;
}



/* ========== Payment: Insurance ========== */

/* 2 columns */
.kth-pay-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
  align-items:start;
}

/* card */
.kth-pay-card{
  /* 枠なしにしたいなら border/background/box-shadow を消す */
  border:0;
  background: transparent;
  box-shadow:none;

  padding:0;            /* “シンプル維持” */
}

/* ✅ロゴ回り込み（このクラスを img に付ける） */
.kth-pay-logo--float{
  float:left;
  width:130px;          /* 見た目調整ポイント */
  height:auto;
  margin: 2px 16px 10px 0;
  display:block;
  object-fit:contain;
}

/* float解除 */
.kth-pay-card::after{
  content:"";
  display:block;
  clear:both;
}

/* title */
.kth-pay-name{
  font-weight:900;
  color:#243443;
  font-size:1.05rem;
  margin: 2px 0 10px;
  display:block;
}

.kth-pay-desc{ margin:0 0 10px; line-height:1.7; }
.kth-pay-list{ margin:0; padding-left:18px; }
.kth-pay-list li{ margin:6px 0; }

/* responsive */
@media (max-width:900px){
  .kth-pay-grid{ grid-template-columns:1fr; }
  .kth-pay-logo--float{ width:110px; margin-right:14px; }
}




/* Info-card内のボタン中央寄せ */
.info-card__cta{
  margin-top: 18px;
  text-align: center;
}
/* info-card 右カラム内の1行 */
.info-item-line{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 6px;
}

/* ボタンを右カラム内で中央寄せ */
.info-item-cta{
  margin-top: 12px;
  text-align: center;
}
/* 右カラムの箇条書きを整える */
.info-bullets{
  list-style: none;
  padding: 0;
  margin: 0;
}

.info-bullets li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 25px;
}

/* Visitor Form のボタン：右コラム内で左揃え */
.info-item-cta{
  margin-top: 14px;
  text-align: left;
}

/* Map block (v2 style) */
.op-map-figure{
  margin: 18px auto 0;
  max-width: 550px;          /* 画像が大きすぎないように */
  text-align: center;
}

.op-map-img{
  width: 100%;
  height: auto;
  border-radius: 16px;       /* v2の角丸トーンに合わせる */
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
  border: 1px solid #f1d5dd; /* info-cardの薄い枠と統一 */
  background: #fff;
  display: block;
}

.op-map-caption{
  margin-top: 10px;
  color: #666;
  font-size: 0.95rem;
  line-height: 1.4;
}


/* Visitor’s Pass: simple left-aligned layout (no boxes) */
.kth-vpass{
  margin-top: 18px;
  max-width: 980px;     /* 基準幅（好みで 940〜1040） */
}

.kth-vpass-grid{
  display: flex;
  gap: 28px;
  align-items: flex-start;
  justify-content: flex-start; /* 右寄せ防止 */
  width: 100%;
}

.kth-vpass-map{
  flex: 0 0 360px;      /* 地図の幅（ボロ隠し） */
}

.kth-vpass-img{
  display: block;
  width: 100%;
  height: auto;
  border: 0;            /* 黒線対策 */
  box-shadow: none;
  border-radius: 0;
  background: transparent;
}

.kth-vpass-text{
  flex: 1 1 auto;
  text-align: left;
}

.kth-vpass-list{
  margin-top: 10px;
}

/* Visiting Hours */
.kth-vhours-title{
  margin-top: 28px;     /* 地図ブロックとの距離 */
}

.kth-table{
  width: 100%;
  border-collapse: collapse;
  margin-top: 10px;
}

.kth-table th,
.kth-table td{
  padding: 12px 14px;
  vertical-align: top;
  border-bottom: 1px solid #eee;
}

.kth-table thead th{
  text-align: left;
  font-weight: 700;
  background: #fbf3f5;
  border-bottom: 2px solid #e7c6cf; /* v2の薄ピンク */
}

.kth-table tbody tr:hover{
  background: #faf7f8;
}

.kth-table td:first-child{
  width: 55%;
}

.kth-table td:last-child{
  width: 45%;
  white-space: nowrap;  /* 時間が崩れない */
}

.kth-table td:last-child br{
  line-height: 2.0;
}

.op-infobox--guidelines{
  background: #fbf7f8;   /* infection よりほんの少し濃くしてもOK */
}


.er-sub-link{
  margin-top: 10px;
  font-size: 0.9rem;
  color: #666;
}

.er-sub-link a{
  color: #666;
  text-decoration: underline;
}

.er-sub-link a:hover{
  color: #243443;
}



/* ------------------------------
   Departments: Quick information (v2)
--------------------------------- */

.dept-quick{
  max-width: 900px;
  margin: 24px auto 40px;
}

/* Title row: subtle pink (NOT a big pink box) */
.dept-quick__title{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid #f1d5dd;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
  background: #fff5f2; /* v2薄ピンク */
}

.dept-quick__icon{
  width: 28px;
  height: 28px;
  border-radius: 9999px;
  background: rgba(229,194,199,0.25);
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  line-height: 1;
}

.dept-quick__h2{
  margin: 0;
  font-size: 1.2rem;
  color: #2c3e50;
}

/* Rows: clean white rows with subtle separation */
.dept-quick__row{
  display: grid;
  grid-template-columns: 220px 1fr;
  column-gap: 28px;
  align-items: start;
  padding: 18px 6px;
  border-bottom: 1px solid #eee;
}

.dept-quick__row:last-of-type{
  border-bottom: none;
}

/* Left label */
.dept-quick__label{
  font-weight: 700;
  color: #2c3e50;
}

/* Right body */
.dept-quick__body{
  color: #333;
  line-height: 1.7;
}

/* Alert row: reuse v2 op-alert but tighten */
.dept-quick__alert{
  margin: 18px 0;
  border-radius: 12px;
}

.dept-quick__alert-icon{
  width: 28px;
  height: 28px;
  border-radius: 9999px;
  background: rgba(243,195,99,0.25);
  color: #8a5a00;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  line-height: 1;
}

.dept-quick__alert-text{
  line-height: 1.7;
  color: #333;
}

/* Responsive: stack labels on small screens */
@media (max-width: 720px){
  .dept-quick__row{
    grid-template-columns: 1fr;
    row-gap: 6px;
    padding: 16px 2px;
  }
}


.dept-about-minimal{
  max-width: 900px;
}

.dept-about-minimal__wrap p{
  margin: 0 0 18px;
  line-height: 1.9;
  color: #333;
}

.dept-about-minimal__divider{
  border: none;
  border-top: 1px solid #e4d9dd;
  margin: 24px 0;
}


.dept-scope{
  max-width: 900px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 24px;
}

.dept-scope-item{
  padding: 16px 18px;
  background: #fff;
  border-radius: 14px;
  border-right: 5px solid rgba(182,106,117,0.55); /* 濃いピンク線 */
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  font-weight: 500;
  color: #2c3e50;
}

@media (max-width: 720px){
  .dept-scope{
    grid-template-columns: 1fr;
  }
}


/* ------------------------------
   Departments: When to visit / ER
--------------------------------- */

.dept-when{
  max-width: 900px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 24px;
}

.dept-when__block{
  background: #fff;
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.03);
}

.dept-when__title{
  margin: 0 0 10px;
  font-size: 1.0rem;
  color: #2c3e50;
}

.dept-when__list{
  margin: 0 0 8px 1.2em;
  line-height: 1.7;
  color: #333;
}

/* ER side: subtle warning tone */
.dept-when__block--er{
  border-left: 5px solid rgba(243,195,99,0.75);
  background: #fffdf3;
}

.dept-when__note{
  margin: 10px 0 0;
  color: #444;
  font-size: 0.95rem;
}

@media (max-width: 760px){
  .dept-when{
    grid-template-columns: 1fr;
  }
}


.dept-timeline{
  max-width: 900px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dept-timeline__item{
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  padding: 18px 0 18px 0;
}

.dept-timeline__item:not(:last-child){
  border-bottom: 1px solid #eee;
}

.dept-timeline__badge{
  width: 34px;
  height: 34px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #2c3e50;
  background: #faf6f7;
  border: 1px solid #e4d9dd;
}

.dept-timeline__content{
  border-left: 4px solid rgba(182,106,117,0.45);
  padding: 6px 0 6px 14px;
}

.dept-timeline__content h3{
  margin: 0 0 6px;
  font-size: 1.05rem;
  color: #2c3e50;
}

.dept-timeline__content p{
  margin: 0;
  line-height: 1.75;
  color: #333;
}

@media (max-width: 720px){
  .dept-timeline__item{
    grid-template-columns: 40px 1fr;
  }
}



.dept-leadership {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--border-soft);
}

.dept-leadership p {
  max-width: 880px;
  line-height: 1.8;
}


.dept-contact-list{
  max-width: 900px;
}

.dept-contact-item{
  padding: 18px 20px;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #eee;
  border-left: 4px solid rgba(182,106,117,0.45);
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  margin: 0 0 16px;
}

.dept-contact-item h3{
  margin: 0 0 8px;
  font-size: 1.08rem;
  color: #2c3e50;
}

.dept-contact-item p{
  margin: 0 0 10px;
  line-height: 1.7;
  color: #333;
}

.dept-contact-item ul{
  margin: 0;
  padding-left: 1.2em;
}

.dept-contact-item li{
  margin: 6px 0;
  line-height: 1.6;
}

.dept-contact-footer{
  max-width: 900px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #eee;
}

.dept-contact-footer a{
  color: #8a3b46;
  text-decoration: underline;
}

/* --- Contact section (v2-friendly, simple & readable) --- */
.contact-cards{
  max-width: 980px;
  margin-top: 14px;
  display: grid;
  gap: 18px;
}

.contact-card{
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.04);
}

.contact-card--jmhc{
  border-left: 4px solid rgba(182,106,117,0.45);
  background: #faf6f7;
}

.contact-card__eyebrow{
  font-size: 0.92rem;
  color: #666;
  margin-bottom: 6px;
}

.contact-card__title{
  margin: 0 0 10px;
  font-size: 1.18rem;
}

.contact-card__lead{
  margin: 0 0 14px;
  line-height: 1.75;
}

.contact-action{
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #eee;
  background: #fff;
}

.contact-action__label{
  display: inline-block;
  font-weight: 700;
  margin-right: 8px;
}

.contact-subblock{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #eee;
}

.contact-subblock--note{
  border-left: 4px solid rgba(182,106,117,0.25);
  padding-left: 12px;
}

.contact-subblock__title{
  margin: 0 0 8px;
  font-size: 1.02rem;
}

.contact-list{
  margin: 0;
  padding-left: 1.2em;
}

.contact-list li{
  margin: 7px 0;
  line-height: 1.65;
}

.link-strong{
  font-weight: 700;
  text-decoration: underline;
}








.condition-page{ max-width: 980px; }

.condition-hero{ margin-bottom: 16px; }
.condition-eyebrow{
  margin: 0 0 6px;
  font-size: .9rem;
  color: #666;
}
.condition-title{
  margin: 0 0 10px;
  font-size: 1.6rem;
  line-height: 1.25;
}
.condition-lead{
  margin: 0;
  line-height: 1.75;
}

.condition-summary{
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid #eee;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,0.04);
  margin: 14px 0 22px;
}
.condition-summary__label{
  font-weight: 700;
  margin-bottom: 3px;
}
.condition-summary__value{ color: #333; line-height: 1.6; }

.condition-block{ margin: 22px 0; }
.condition-block h2{
  margin: 0 0 10px;
  font-size: 1.18rem;
}
.condition-list{ margin: 0; padding-left: 1.2em; }
.condition-list li{ margin: 7px 0; line-height: 1.65; }
.condition-note{ color: #555; line-height: 1.7; margin-top: 10px; }

.condition-cards{
  display: grid;
  gap: 14px;
  margin: 10px 0 14px;
}
.condition-card{
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 14px 16px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}
.condition-card h3{ margin: 0 0 6px; font-size: 1.02rem; }

.condition-highlight{
  margin-top: 12px;
  padding: 14px 16px;
  border-left: 4px solid rgba(182,106,117,0.45);
  border-radius: 14px;
  background: #faf6f7;
}
.condition-highlight h3{ margin: 0 0 6px; }

.condition-two-col{
  display: grid;
  gap: 14px;
}
.condition-callout{
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 14px 16px;
  background: #fff;
}
.condition-callout--critical{
  border-left: 4px solid rgba(182,106,117,0.45);
  background: #fff;
}

.condition-ref{
  border-top: 1px solid #eee;
  padding-top: 16px;
}

@media (min-width: 860px){
  .condition-summary{
    grid-template-columns: repeat(3, 1fr);
  }
  .condition-two-col{
    grid-template-columns: 1fr 1fr;
  }
  .condition-cards{
    grid-template-columns: repeat(3, 1fr);
  }
}



/* ===== Disease page (v2) ===== */
.disease-hero { margin-top: 8px; }
.disease-breadcrumb { font-size: 14px; opacity: .7; margin: 0 0 10px; }
.disease-title { margin: 0 0 12px; }
.disease-lead {
  max-width: none;
  width: 100%;
}

.disease-kpi{
  margin: 14px 0 10px;
  padding: 14px;
  border-radius: 14px;
  background: #fff7f8;
  border: 1px solid #f2d6db;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.disease-kpi__label{ font-size: 12px; opacity: .75; margin-bottom: 4px; }
.disease-kpi__value{ font-weight: 700; line-height: 1.35; }

.disease-rows { margin-top: 18px; }

.disease-row{
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid #f1d9dd;
}
.disease-row__h h2{ margin: 0; font-size: 22px; }
.disease-row__b p{ margin: 0 0 10px; line-height: 1.75; }
.disease-muted{ opacity: .85; }

.disease-callout{
  border-radius: 14px;
  background: #fff;
  border: 1px solid #f2d6db;
  border-right: 6px solid #d9a0aa; /* v2 pink line */
  padding: 14px 16px;
}

.disease-bullets{ margin: 0; padding-left: 1.2em; }
.disease-bullets li{ margin: 10px 0; }

@media (max-width: 820px){
  .disease-kpi{ grid-template-columns: 1fr; }
  .disease-row{ grid-template-columns: 1fr; }
}




.dept-scope-link{
  display:block;
  width:100%;
  height:100%;
  text-decoration:none;
  color:inherit;
}


.medical-meta {
  font-size: 0.9rem;
  color: #555;
  margin-top: 40px;
}

.medical-disclaimer {
  margin-bottom: 8px;
}

.page-updated {
  font-style: italic;
}




.site-disclaimer{
  margin: 18px auto 0;
  padding: 10px 0 0;
  max-width: 1140px; /* width1140 に寄せる */
  border-top: 1px solid rgba(200, 150, 160, 0.35); /* 例のピンク系を“薄く” */
  color: rgba(0,0,0,0.55);
  font-size: 12px;
  line-height: 1.5;
}
.site-disclaimer small{
  font-size: inherit;
}
.profile-header {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 24px;
}

.profile-photo {
  width: 110px;
  height: auto;
  border-radius: 12px;
}

.profile-title h2 {
  margin: 0 0 6px;
}


/* JMIP proof */

.jmip-proof {
  margin: 24px auto 0;
  text-align: center;
}

.jmip-proof img {
  width: 100%;
  max-width: 520px;
  height: auto;
  display: block;
  margin: 0 auto;
}

.jmip-proof figcaption {
  margin-top: 12px;
  font-size: 0.92rem;
  color: #666;
  line-height: 1.4;
}




.kth-access__grid{
  display:grid;
  gap:40px;
}

@media(min-width:900px){
  .kth-access__grid{
    grid-template-columns: 1fr 1fr;
    align-items:start;
  }
}

.kth-access__photo img{
  width:100%;
  max-width:520px;
  height:auto;
  border-radius:14px;
  display:block;
}

.kth-access__caption{
  margin:4px 0 0;
  font-size:0.82rem;
  color:#777;
}


@media(min-width:900px){
  .kth-access__photo{
    margin-top: 18px; /* ← ここを 12〜24px で微調整 */
  }
}


.info-card .muted{ color:#666; font-size:0.92em; }
.info-card i{ margin-right:8px; color: var(--dusty-rose); }

/* Find Us 専用：info-card */
.info-card--findus .info-item{
  display:grid;
  grid-template-columns: 210px 1fr; /* 左列幅はお好み */
  column-gap: 24px;
  align-items:start;
}

/* 右カラムが下がる原因を潰す */
.info-card--findus .info-item > div{
  margin:0;
  padding:0;
}

.info-card--findus .map-link{
  display:inline-block;
  line-height:1.1;
  vertical-align:top;
}

/* 左ラベル側も揃える */
.info-card--findus .info-item > div:first-child strong{
  display:inline-flex;
  align-items:center;
  gap:8px;
  line-height:1.1;
}

.info-card--findus .info-item{
  display:grid;
  grid-template-columns: 210px 1fr;
  column-gap: 24px;
  row-gap: 6px;
  align-items:start;
  padding: 10px 0;
}

.info-card--findus .muted{ color:#666; font-size:0.92em; }

.info-card--findus i{ margin-right:8px; color: var(--dusty-rose); }


.chart-wrap{ height: 320px; }


/* Chart.js card - make the plot use full width */
.chart-wrap {
  width: 100%;
}

.chart-wrap canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
}


/* 1枚だけのときは1カラムにする（右の空席を消す） */
.chart-grid--single{
  grid-template-columns: 1fr !important;
}

/* ついでに中央寄せ＆横幅を気持ち広く */
.chart-grid--single .chart-card{
  margin: 0 auto;
  max-width: none;
}



/* YouTube button */
.btn-primary.yt-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px;
  white-space: nowrap;
}

.btn-primary.yt-btn svg {
  width: 20px;
  height: 20px;
  display: inline-block;
  vertical-align: middle;
}


/* Quick anchors (only inside .page-nav) */
.page-nav .page-nav-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
}
.page-nav .page-nav-list li{ margin:0; padding:0; }
.page-nav .page-nav-list a{
  text-decoration: none;
  border-bottom: 1px solid rgba(182,106,117,.35);
}


/* Publications list: spacing fix + “link/no-link” looking consistent*/

  .pub-authors{ display:block; margin:0; }
  .pub-title{ display:block; margin:2px 0; }
  .pub-cite{ display:block; margin:0; font-style:italic; }

  .pub-title a{ color:inherit; text-decoration:none; }
  .pub-title a:hover{ text-decoration:underline; }

  .pub-list{
  margin:0;
  padding-left:1.2em;
}
.pub-list li{
  margin:0 0 10px 0;
  line-height:1.5;
}
.pub-list a{
  text-decoration: underline;
}



/* Current Clinical Trials 専用 */
#ongoing-studies .dept-scope{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2列固定 */
  gap: 18px;
  align-items: start; /* 高さ揃えで伸びない */
}

/* カードを横に“太く”見せる：内側余白を詰めて文字領域を広げる */
#ongoing-studies .dept-scope-link{
  padding: 14px 22px; /* ←縦を詰めつつ、左右は確保 */
  line-height: 1.5;
  min-height: 0;      /* 余計な最低高さを殺す */
}

/* ここが“謎の大空欄”の主犯になりがち（min-height / height を強制解除） */
#ongoing-studies .dept-scope-item,
#ongoing-studies .dept-scope-link{
  height: auto !important;
  min-height: 0 !important;
}

/* strong（見出し）と本文の間を詰めて、さらに高さを削る */
#ongoing-studies .dept-scope-link strong{
  display:block;
  margin: 0 0 6px; /* ←ここが大きいと縦に伸びる */
}

/* 画面が狭い時だけ1列（IE対応を考えるなら media query は任意） */
@media (max-width: 700px){
  #ongoing-studies .dept-scope{
    grid-template-columns: 1fr;
  }
}
#ongoing-studies{
  max-width: 1140px;
  margin: 0 auto;
}

#ongoing-studies .dept-scope-item{
  padding: 0 !important;      /* item側の余計な余白を消す */
  display: block !important;
}


/* FAQ grouping */
.ls-faq-group{
  border: 1px solid #f1d5dd;
  background: #fff5f2;
  border-radius: 18px;
  padding: 18px 18px 10px;
  margin: 22px 0;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
}

.ls-faq-group-head{
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
}

.ls-faq-group-title{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #3a4b59;
}

/* round icon like your infobox style */
.ls-faq-group-icon{
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  background: rgba(229,194,199,0.25);
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* tighten details spacing inside group */
.ls-faq-group .ls-faq-item{
  margin: 8px 0;
  background: #fff;           /* makes each Q pop */
  border-radius: 14px;
  border: 1px solid rgba(229,194,199,0.55);
  overflow: hidden;
}

.ls-faq-group .ls-faq-item summary{
  padding: 14px 14px;
}

.ls-faq-group .ls-faq-answer{
  padding: 0 14px 14px;
}


/* ===== Split layout (screenshot-like) ===== */
.kth-split{
  border: 1px solid #f1d5dd;
  border-radius: 18px;
  padding: 22px 26px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
  text-align: left; /* 中央寄せ事故を殺す */
}

.kth-split-lead{
  margin: 0 0 14px;
  color: #333;
}

.kth-split-row{
  display: grid;
  grid-template-columns: 260px 1fr;
  column-gap: 36px;
  padding: 14px 0;
  border-top: 1px solid #e4d9dd;
}
.kth-split-row:first-of-type{
  border-top: 0;
}

.kth-split-left{
  display: flex;
  align-items: center;
  gap: 12px;
}

.kth-split-title{
  font-weight: 700;
  color: #243443;
}

.kth-split-right{
  color: #333;
  line-height: 1.65;
}

.kth-split-note{
  margin: 14px 0 0;
  color: #666;
}

/* Icon circle (v2 tone) */
.kth-split-icon{
  width: 32px;
  height: 32px;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(229,194,199,0.25);
  color: var(--accent);
}

/* Link variant tweaks (no extra lead/note needed) */
.kth-split--links .kth-split-icon{ display:none; }
.kth-inline-link{
  text-decoration: none;
  border-bottom: 1px solid rgba(182,106,117,0.35);
}
.kth-inline-link:hover{
  border-bottom-color: rgba(182,106,117,0.8);
}

/* Responsive: stack on small screens */
@media (max-width: 740px){
  .kth-split-row{
    grid-template-columns: 1fr;
    row-gap: 6px;
  }
}


/* ========== Fees (using kth-pay-grid layout) ========== */

.kth-fees-muted{ color:#666; }

.kth-fees-note{
  margin: 10px 0 0;
  color:#666;
  font-size: 0.95em;
}

/* Fees cards: add gentle frame (optional but recommended) */
.kth-fees .kth-fee-card{
  border: 1px solid #f0d9df;
  border-radius: 18px;
  padding: 16px 18px;
  background: #fff;
  position: relative; /* for price chip */
}

/* Price chip (top-right, NOT using kth-pay-logo--float) */
.kth-fees .kth-fee-chip{
  position: absolute;
  top: 14px;
  right: 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 40px;
  padding: 0 12px;
  border: 1px solid #e4d9dd;
  border-radius: 9999px;
  background: #fff;

  font-weight: 800;
  white-space: nowrap;
}

/* Make sure title doesn't collide with chip */
.kth-fees .kth-pay-name{
  padding-right: 140px; /* enough space for the chip */
}

/* On small screens, relax the padding */
@media (max-width: 520px){
  .kth-fees .kth-pay-name{ padding-right: 0; }
  .kth-fees .kth-fee-chip{
    position: static;
    margin: 6px 0 10px;
  }
}


/* ========== Fees & Packages (FINAL) ========== */

.kth-fees-muted{ color:#666; }

.kth-fees-note{
  margin: 10px 0 0;
  color:#666;
  font-size: 0.95em;
}

/* ✅ ここが本体：Feesだけ2カラムを強制 */
.kth-fees .kth-pay-grid{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px !important;
  align-items: start !important;
  width: 100% !important;
}

.kth-fees .kth-pay-card{
  min-width: 0 !important;
}

/* card frame */
.kth-fees .kth-fee-card{
  border: 1px solid #f0d9df;
  border-radius: 18px;
  padding: 16px 18px;
  background: #fff;
  position: relative; /* for price chip */
}

/* price chip */
.kth-fees .kth-fee-chip{
  position: absolute;
  top: 14px;
  right: 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 40px;
  padding: 0 12px;
  border: 1px solid #e4d9dd;
  border-radius: 9999px;
  background: #fff;

  font-weight: 800;
  white-space: nowrap;
}

/* avoid chip collision */
.kth-fees .kth-pay-name{
  padding-right: 140px;
}

/* ✅ スマホだけ1列（ここだけで切り替える） */
@media (max-width: 740px){
  .kth-fees .kth-pay-grid{
    grid-template-columns: 1fr !important;
  }
}

/* chip becomes inline on very small screens */
@media (max-width: 520px){
  .kth-fees .kth-pay-name{ padding-right: 0; }
  .kth-fees .kth-fee-chip{
    position: static;
    margin: 6px 0 10px;
  }
}
/* FIX: WPが勝手に入れる p/br を grid の子要素から排除 */
.kth-fees .kth-pay-grid > p{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
}
.kth-fees .kth-pay-grid > br{
  display:none !important;
}




/* ===== Privacy Hub ===== */

.kth-privacy-lead{
  color:#444;
  margin-bottom:20px;
}

.kth-privacy-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}

.kth-privacy-card{
  border:1px solid #f0d9df;
  border-radius:18px;
  padding:18px 20px;
  background:#fff;
}

.kth-privacy-card h3{
  margin:0 0 8px;
  color:#243443;
}

.kth-privacy-card p{
  margin:0 0 12px;
  color:#444;
  line-height:1.6;
}

@media (max-width:800px){
  .kth-privacy-grid{
    grid-template-columns:1fr;
  }
}

/* =========================
   KTH Footer (no-card style)
   ========================= */

.kth-footer {
  margin-top: 40px;
  padding: 34px 0 22px;
  background: #fff;
  border-top: 1px solid #e4d9dd;
  color: #333;
  font-size: 0.65rem;     
  line-height: 1.35;      
}

.kth-footer__inner {
  padding-left: 18px;
  padding-right: 18px;
}

/* Main grid */
.kth-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px 34px;
  align-items: start; /* ← 伸び防止（重要） */
}

@media (max-width: 980px) {
  .kth-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .kth-footer__grid {
    grid-template-columns: 1fr;
  }
}

/* Remove card look */
.kth-footer__col {
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

/* Column D stack */
.kth-footer__col--stack {
  padding: 0;
}

.kth-footer__stack{
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 18px 26px;
}


@media (max-width: 560px) {
  .kth-footer__stack {
    grid-template-columns: 1fr;
  }
}

/* mini blocks become plain */
.kth-footer__mini {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

/* Titles */
.kth-footer__title {
  margin: 0 0 10px;
  font-size: 1rem;
  font-weight: 700;
  color: #2c3e50;
  letter-spacing: 0.2px;
  line-height: 1.15;
}

/* Menus */
.kth-footer__menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.kth-footer__menu > li {
  margin: 0 0 8px;
  margin-bottom: 6px; 
}

.kth-footer__menu a {
  color: #243443;
  text-decoration: none;
  line-height: 1.35;
  display: inline-block;
  padding: 2px 0;  
}

.kth-footer__menu a:hover,
.kth-footer__menu a:focus {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Utility row */
.kth-footer__utility {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #e4d9dd;
}

.kth-footer__utility-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.kth-footer__utility-menu li {
  margin: 0;
}

.kth-footer__utility-menu a {
  color: #243443;
  text-decoration: none;
}

.kth-footer__utility-menu a:hover,
.kth-footer__utility-menu a:focus {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Bottom */
.kth-footer__bottom {
  margin-top: 14px;
  color: #666;
  font-size: 0.92rem;
}

.kth-footer__bottom p {
  margin: 0;
}

/* Footer titles: avoid awkward wrapping */
.kth-footer__title {
  white-space: nowrap;
}

/* Give Column D a bit more room so long titles fit */
.kth-footer__grid{
  grid-template-columns: 1.2fr 1fr 1fr 1.6fr;
}


/* Right stack: force 2x2 layout */
.kth-footer__stack{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 70px;   /* 横余白 */
  row-gap: 35px;      /* 上下余白 */
}

/* Place each box by aria-label (robust) */
.kth-footer__stack .kth-footer__mini[aria-label="Visitors &amp; Travel"],
.kth-footer__stack .kth-footer__mini[aria-label="Visitors & Travel"]{
  grid-column: 1; grid-row: 1; /* 左上 */
}

.kth-footer__stack .kth-footer__mini[aria-label="Privacy &amp; Patient Rights"],
.kth-footer__stack .kth-footer__mini[aria-label="Privacy & Patient Rights"]{
  grid-column: 2; grid-row: 1; /* 右上 */
}

.kth-footer__stack .kth-footer__mini[aria-label="Health Check up"]{
  grid-column: 1; grid-row: 2; /* 左下 */
}

.kth-footer__stack .kth-footer__mini[aria-label="Find Us"]{
  grid-column: 2; grid-row: 2; /* 右下 */
}

/* Safety: prevent ugly wraps in headings */
.kth-footer__title{ white-space: nowrap; }

/* Space between Research block and About block */
.kth-footer__col[aria-label="Research and About"] .kth-footer__subcol{
  margin-top: 28px;
}


/* ===== Footer: responsive fix ===== */
@media (max-width: 900px){
  /* main footer grid becomes 1 column */
  .kth-footer__grid{
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  /* prevent overflow by any min-width hacks */
  .kth-footer__col,
  .kth-footer__col--stack{
    min-width: 0 !important;
  }

  /* right stack: keep 2 columns or switch to 1 column (choose one) */
  .kth-footer__stack{
    grid-template-columns: 1fr !important; /* ←安全：スマホは1列 */
    column-gap: 0 !important;
    row-gap: 18px !important;
  }

  /* breathing room */
  .kth-footer{
    padding: 18px 0;
  }
}

@media (max-width: 900px){

  /* 右側 mini 4ブロック（Visitors/Privacy/Checkup/Find Us） */
  .kth-footer__stack{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 28px !important;  /* ←これ大事 */
    row-gap: 18px !important;
  }

  /* 見出しは必ずブロック化（連結防止） */
  .kth-footer__title{
    display: block;
    white-space: normal;
  }

  /* 各miniが潰れないように */
  .kth-footer__mini{
    min-width: 0 !important;
  }
}

/* =========================
   Footer: Mobile layout fix
   ========================= */
@media (max-width: 768px) {

  /* 横はみ出し防止（まずこれ） */
  .kth-footer,
  .kth-footer__inner,
  .kth-footer__grid {
    max-width: 100%;
    overflow-x: hidden;
  }

  /* PCの5列 → モバイルは2列グリッドに切替 */
  .kth-footer__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 18px;
    row-gap: 22px;
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Research+About を同じ列に入れてる subcol を “普通の列”に戻す */
  .kth-footer__subcol {
    display: contents; /* 中のnavをグリッドの子として扱う */
  }

  /* Column E（4分割）も “普通の列”に戻す */
  .kth-footer__col--stack {
    display: contents;
  }

  /* 4分割の中身（.kth-footer__stack）は不要なので解除 */
  .kth-footer__stack {
    display: block !important;
  }

  /* 各ブロックの見出し：折り返しはOK、ただし詰まり事故を避ける */
  .kth-footer__title {
    white-space: normal;
    line-height: 1.25;
    margin: 0 0 8px;
  }

  /* メニューの行間もコンパクトに（tom-tom指定の “詰め”） */
  .kth-footer__menu li,
  .kth-footer__utility-menu li {
    margin: 0 0 6px;
  }

  .kth-footer__menu a,
  .kth-footer__utility-menu a {
    line-height: 1.25;
  }
}
  /* 各ミニブロックを普通に縦積み */
  .kth-footer__mini{
    margin: 0 0 18px !important; /* ブロック間の余白 */
  }
  .kth-footer__mini:last-child{
    margin-bottom: 0 !important;
  }

  /* 見出し：切れ防止（折り返しOK） */
  .kth-footer__mini .kth-footer__title{
    white-space: normal;
    line-height: 1.25;
  }
@media (max-width: 780px){
  body{ padding-bottom: 64px; }
}


.lang-jump-list {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.lang-jump-list li {
  margin: 0 0 8px;
}

.lang-jump-list a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}

.lang-jump-list a:hover {
  text-decoration: underline;
}

html {
  scroll-behavior: smooth;
}

.lang-nav{
display:flex;
flex-wrap:wrap;
gap:8px;
align-items:center;
}

.lang-a .kth-table thead th{
  background:#fbf3f5 !important;
}

.lang-b .kth-table thead th{
  background:#E5C2C7 !important;
}

.page-content h3{
  margin-top: 30px;
}


.kth-table{
  table-layout: fixed;
  width: 100%;
}

.kth-table th,
.kth-table td{
  box-sizing: border-box;
}

.kth-table th:first-child,
.kth-table td:first-child{
  width: 240px;
  vertical-align: top;
}

.kth-table th:last-child,
.kth-table td:last-child{
  width: auto;
  white-space: normal;
  overflow-wrap: break-word;
}


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

.op-infobox-list li{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-bottom:16px;
}

.op-infobox-icon{
  flex:0 0 32px;
  width:32px;
  height:32px;
  min-width:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
}

.op-infobox-list li > div:last-child{
  flex:1 1 auto;
  min-width:0;
}


/* Contact page */
.page-id-1104 .page-content {
  max-width: 920px;
}

.page-id-1104 .page-content p {
  margin: 0 0 16px;
}

.page-id-1104 .contact-lead {
  margin: 0 0 24px;
}

.page-id-1104 .contact-alert {
  background: #fff7e0;
  border-left: 4px solid #f3c363;
  padding: 18px 20px;
  margin: 24px 0 24px;
  border-radius: 12px;
}

.page-id-1104 .contact-response {
  margin: 0 0 28px;
  font-weight: 600;
  color: #2c3e50;
}

.page-id-1104 .contact-form-wrap {
  background: #fff;
  border: 1px solid #eadde1;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.03);
  padding: 24px 28px 28px;
  margin-top: 24px;
}

.page-id-1104 .contact-form-wrap h2 {
  margin: 0 0 18px;
  font-size: 1.35rem;
  color: #2c3e50;
}

.page-id-1104 .wpcf7-form p {
  margin: 0 0 16px;
}

.page-id-1104 .wpcf7-form label,
.page-id-1104 .wpcf7-form p {
  font-size: 1rem;
  line-height: 1.6;
}

.page-id-1104 .wpcf7-form-control-wrap {
  display: block;
  margin-top: 6px;
}

.page-id-1104 .wpcf7 input[type="text"],
.page-id-1104 .wpcf7 input[type="email"],
.page-id-1104 .wpcf7 input[type="tel"],
.page-id-1104 .wpcf7 textarea {
  width: 100%;
  max-width: 680px;
  padding: 12px 14px;
  border: 1px solid #d9cfd3;
  border-radius: 10px;
  background: #fff;
  font-size: 1rem;
  line-height: 1.5;
  box-sizing: border-box;
}

.page-id-1104 .wpcf7 textarea {
  min-height: 180px;
  resize: vertical;
}

.page-id-1104 .wpcf7 input[type="submit"] {
  display: inline-block;
  padding: 12px 28px;
  border: 1px solid rgba(229,194,199,.9);
  border-radius: 9999px;
  background: linear-gradient(
    180deg,
    rgba(229,194,199,.88) 0%,
    rgba(229,194,199,.62) 42%,
    rgba(255,255,255,1) 100%
  );
  color: #243443;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
}

.page-id-1104 .wpcf7 input[type="submit"]:hover {
  box-shadow: 0 8px 22px rgba(0,0,0,0.12);
}

.page-id-1104 .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 0.92rem;
}

.page-id-1104 .wpcf7-response-output {
  margin: 20px 0 0;
  border-radius: 10px;
  padding: 12px 14px;
}


/* Contact Form 7 success message */
.page-id-1104 .wpcf7 form.sent .wpcf7-response-output,
.page-id-1104 .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 14px 16px;
  border: 1px solid #d9b8c0;
  border-left: 4px solid #b66a75;
  border-radius: 12px;
  background: #fff5f2;
  color: #333;
}

/* Optional: validation / error messages also align better */
.page-id-1104 .wpcf7 form.invalid .wpcf7-response-output,
.page-id-1104 .wpcf7 form.unaccepted .wpcf7-response-output,
.page-id-1104 .wpcf7 form.payment-required .wpcf7-response-output {
  border: 1px solid #f0d2a6;
  border-left: 4px solid #f3c363;
  background: #fff7e0;
  color: #333;
}



.newsmeta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}


/* News */
.cat-news {
  background: #f8f1f3;
  color: #7a4f58;
  border-color: #ead6dc;
}

/* Health Alert */
.cat-health-alert {
  background: linear-gradient(
    180deg,
    rgba(229,194,199,.55) 0%,
    #fff1f3 100%
  );
  color: #9a4e5b;
  border-color: #ddb8c1;
}

/* Hospital Update */
.cat-hospital-update {
  background: #fdf6f7;
  color: #8a6670;
  border-color: #ead6dc;
}

/* NEWS LIST */

.news-list{
  margin:30px 0;
}

.news-item{
  padding:16px 0;
  border-bottom:1px solid #ead6dc;
}

.news-date{
  font-size:13px;
  color:#8a6670;
  margin-bottom:4px;
}

.news-title{
  font-size:18px;
  font-weight:600;
  color:#2c3e50;
}

.news-title a{
  text-decoration:none;
  color:inherit;
}

.news-title a:hover{
  color:#b66a75;
}

/* CATEGORY TAG */

.news-tag{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  margin-bottom:6px;
  border:1px solid #ddb8c1;
  background:linear-gradient(
    180deg,
    rgba(229,194,199,.55) 0%,
    #fff1f3 100%
  );
  color:#9a4e5b;
}


/* ============================================================
   FRONT PAGE — kth-scope
   Scoped to .kth-scope to avoid bleeding into other pages.
   All variables inherit from :root in style.css.
   Last updated: 2025
   ============================================================ */


/* ── Hero ─────────────────────────────────────────────────── */

.kth-hero {
  position: relative;
  border-top: 1px solid var(--silver);
  border-bottom: 1px solid var(--silver);
  background:
    linear-gradient(
      180deg,
      rgba(229, 194, 199, .25) 0%,
      rgba(229, 194, 199, .10) 40%,
      rgba(255, 255, 255, 1)   100%
    );
}

/* H1: two-line treatment */
.kth-h1 {
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.2;
  margin: 0 0 6px;
  color: var(--accent);
  font-family: "Playfair Display", "Georgia", serif;
  font-weight: 700;
}

.kth-h1-sub {
  display: block;
  font-size: clamp(20px, 2.8vw, 30px);
  font-weight: 400;
  color: var(--muted);
  margin-top: 6px;
}

/* Subtext bar */
.kth-sub {
  font-size: 15px;
  color: var(--muted);
  margin: 0 0 24px;
  letter-spacing: .01em;
}


/* ── Quick cards: 2×2 grid ────────────────────────────────── */
/* !important required: overrides kth v2.css repeat(3,1fr) from theme  */

.kth-scope .kth-quick {
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: 1fr !important;
  margin-bottom: 22px;
  margin-top: 20px;
}

@media (min-width: 600px) {
  .kth-scope .kth-quick {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (min-width: 780px) {
  .kth-scope .kth-quick {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* Base card */
.kth-card {
  border: 1px solid rgba(233, 217, 221, .7);
  border-radius: 14px;
  padding: 22px 20px;
  box-shadow: 0 2px 8px rgba(58, 75, 89, .06);
  color: var(--text);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display: block;
  position: relative;
}

.kth-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(58, 75, 89, .11);
  border-color: rgba(233, 217, 221, 1);
}

/* Row 1: A — clean white, warm left accent */
.kth-card--intl {
  background: #ffffff;
  border-left: 3px solid #A08088;
}

.kth-card--spec {
  background: #ffffff;
  border-left: 3px solid var(--accent);
}

/* Row 2: B — receded, clearly secondary */
.kth-card--res,
.kth-card--lang {
  background:  #f4f4f4;
  border-left: 3px solid #C8CACB;
}

.kth-card--res:hover,
.kth-card--lang:hover {
  box-shadow: 0 4px 14px rgba(58, 75, 89, .07);
}

/* Eyebrow label — subtle category indicator, NOT shouted */
.kth-card__eyebrow {
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
  opacity: .75;
}

.kth-card--intl .kth-card__eyebrow {
  color: #8B6F75;
  opacity: 1;
}

.kth-card--spec .kth-card__eyebrow {
  color: var(--accent);
  opacity: .8;
}

/* Card title — clear, warm, readable at a glance */
.kth-title {
  font-family: "Playfair Display", "Georgia", serif;
  font-weight: 600;
  font-size: 19px;
  color: var(--accent);
  margin-bottom: 8px;
  line-height: 1.25;
}

/* Card body */
.kth-desc {
  margin: 0;
  font-size: 14px;
  color: #555;
  line-height: 1.65;
  font-weight: 400;
}

/* "+N departments" emphasis within desc */
.kth-desc__more {
  color: var(--accent);
  font-weight: 600;
  white-space: nowrap;
}

/* Row 1 cards: slightly larger title for A-target priority */
.kth-card--intl .kth-title,
.kth-card--spec .kth-title {
  font-size: 20px;
}

/* Row 2 cards: softer title */
.kth-card--res .kth-title,
.kth-card--lang .kth-title {
  font-size: 17px;
  font-weight: 500;
  font-family: "Inter", -apple-system, sans-serif;
  color: #4a5568;
}

.kth-card--res .kth-desc,
.kth-card--lang .kth-desc {
  font-size: 13px;
  color: #666;
}


/* ── Badges ───────────────────────────────────────────────── */

.kth-badges {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 1fr;
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
}

@media (min-width: 600px) {
  .kth-badges {
    grid-template-columns: repeat(4, 1fr);
  }
}

.kth-badges li {
  background: rgba(255,255,255,.92);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 10px;
  text-align: center;
  box-shadow: var(--shadow);
  min-height: 72px;
  display: flex;
}

.kth-badges li > a,
.kth-badges li > .kth-badge-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.kth-badges li strong {
  display: block;
  font-size: 13px;
  color: var(--accent);
  font-weight: 700;
  line-height: 1.3;
}

.kth-badges li span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-top: 3px;
  line-height: 1.35;
}

.kth-badges li a {
  text-decoration: none;
  color: inherit;
}

.kth-badges li a:hover strong {
  color: var(--accent-hover);
}


/* ── Why Kishiwada (commitment section) ───────────────────── */

.kth-commit {
  background: #fff;
  border-top: 1px solid var(--silver);
  border-bottom: 1px solid var(--silver);
  padding: 0;
}

.kth-commit__grid {
  display: grid;
  gap: 32px;
  align-items: center;
  grid-template-areas: "text" "photo";
}

@media (min-width: 900px) {
  .kth-commit__grid {
    grid-template-columns: 1.15fr 0.85fr;
    grid-template-areas: "text photo";
    column-gap: 48px;
  }
}

.kth-commit__grid article {
  grid-area: text;
}

.kth-commit__grid article h2 {
  margin-bottom: 14px;
}

.kth-commit__grid article p {
  margin: 0 0 16px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.8;
}

/* CTA link inside commitment text */
.kth-cta-link {
  display: inline-block;
  margin-top: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  border-bottom: 2px solid var(--border);
  padding-bottom: 2px;
  transition: border-color .15s;
}

.kth-cta-link:hover {
  border-color: var(--accent);
}

.kth-commit__photo {
  grid-area: photo;
  margin: 0;
}

.kth-commit__photo img {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: 60% 40%;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0,0,0,.09);
}


/* ── Departments grid ─────────────────────────────────────── */

.depts {
  position: relative;
  border-top: 1px solid var(--silver);
  border-bottom: 1px solid var(--silver);
  background:
    linear-gradient(
      180deg,
      rgba(229, 194, 199, .15) 0%,
      rgba(229, 194, 199, .06) 40%,
      rgba(255, 255, 255, 1)  100%
    );
}

.kth-scope .depts .grid {
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: 1fr !important;
}

@media (min-width: 600px) {
  .kth-scope .depts .grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (min-width: 900px) {
  .kth-scope .depts .grid {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

@media (min-width: 1100px) {
  .kth-scope .depts .grid {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

/* Base department card */
.card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px 16px;
  box-shadow: var(--shadow);
  transition: transform .15s ease, box-shadow .15s ease;
  text-decoration: none;
  color: var(--text);
  display: block;
}

.card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0,0,0,.09);
}

.card h3 {
  margin: 0 0 6px;
  font-size: 17px;
  color: var(--accent);
  font-family: "Playfair Display", "Georgia", serif;
  font-weight: 600;
}

.card .muted {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

/* Priority cards: cardiovascular + colorectal */
.card--priority {
  border-left: 4px solid var(--accent);
  background: #fafafa;
}

.card--priority h3 {
  font-size: 18px;
}

/* "View all" link chip */
.more-right {
  text-align: right;
}

.cta-chip {
  display: inline-block;
  background: var(--accent);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: 20px;
  text-decoration: none;
  letter-spacing: .02em;
  transition: background .15s;
}

.cta-chip:hover {
  background: var(--accent-hover);
  color: #fff;
}


/* ── News ─────────────────────────────────────────────────── */

.news {
  background: #fff;
}

.newslist {
  display: grid;
  gap: 0;
}

.newsitem {
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
}

.newsitem:last-child {
  border-bottom: none;
}

.newsitem a {
  text-decoration: none;
  color: inherit;
  display: block;
}

.newsitem a:hover .newstitle {
  color: var(--accent-hover);
}

.newsmeta {
  font-size: 12px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}

.newstag {
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 4px;
}

.cat-news          { background: #E8F0FE; color: #1a56b0; }
.cat-health-alert  { background: #FEF3C7; color: #92400e; }
.cat-hospital-update { background: #D1FAE5; color: #065f46; }

.newstitle {
  font-weight: 600;
  font-size: 15px;
  color: var(--accent);
  line-height: 1.5;
  transition: color .15s;
}




/* ── A-1 card: Enquire Now CTA ───────────────────────────── */

.kth-card__cta {
  display: inline-block;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 600;
  color: #8B6F75;
  letter-spacing: .03em;
  border-bottom: 1.5px solid rgba(139,111,117,.35);
  padding-bottom: 1px;
  transition: color .15s, border-color .15s;
}

.kth-card--intl:hover .kth-card__cta {
  color: var(--accent);
  border-color: var(--accent);
}


/* ── Departments grid: stretch cards in same row ─────────── */

.kth-scope .depts .grid {
  align-items: stretch !important;
}

.kth-scope .depts .card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.kth-scope .depts .card h3 {
  margin-bottom: 8px;
  flex-shrink: 0;
}

.kth-scope .depts .card .muted {
  flex: 1;
  /* prevent orphaned single word on last line */
  text-wrap: balance;
}


/* ── Responsive: mobile tidy-ups ──────────────────────────── */

@media (max-width: 599px) {
  .kth-h1 {
    font-size: 26px;
  }
  .kth-h1-sub {
    font-size: 19px;
  }
  .kth-sub {
    font-size: 14px;
  }
}

/* ── info-card--single: full-width single column override ───
   Use when info-card content is prose paragraphs (not label/value pairs).
   Prevents the default 2-column grid from crushing text into a narrow column.
   ─────────────────────────────────────────────────────────── */



.info-card--single p {
  max-width: 100%;
  margin: 0 0 16px;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--text);
}

.info-card--single p:last-child {
  margin-bottom: 0;
}



/* ==================================
   Global nav overlay — grid layout
   ================================== */
.nav-body {
  padding: 20px;
}

.nav-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 20px;
}

.nav-group h3 {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accent);
  margin: 0 0 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(0,0,0,.1);
}

.nav-group h3 a {
  color: inherit;
  text-decoration: none;
}

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

.nav-list li {
  margin: 0;
  padding: 0;
}

.nav-list a {
  display: block;
  padding: 5px 0;
  font-size: 0.875rem;
  color: var(--text);
  text-decoration: none;
  line-height: 1.4;
}

.nav-list a:hover {
  color: var(--accent);
}

/* ==================================
   Footer grid — 均等レイアウト修正
   ================================== */
.kth-footer__grid {
  grid-template-columns: 1.8fr 1.8fr 1.4fr 1.5fr 1.3fr;
}

.kth-footer__title {
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
  margin: 0 0 8px;
}

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

.kth-footer__menu li {
  margin: 0;
  padding: 0;
}

.kth-footer__menu a {
  display: block;
  padding: 2px 0;
  font-size: 0.8rem;
  line-height: 1.35;
  text-decoration: none;
}

.kth-footer__subcol {
  margin-top: 20px;
}

.kth-footer__stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.kth-footer__mini .kth-footer__title {
  font-size: 0.75rem;
}

.kth-footer__mini .kth-footer__menu a {
  font-size: 0.75rem;
}


/* ==================================
   Contact Form 7 — デザイン
   ================================== */
.wpcf7 {
  max-width: 640px;
  margin: 0 auto;
}

.wpcf7 p {
  margin: 0 0 1.2rem;
}

.wpcf7 label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 6px;
  color: var(--text);
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  width: 100%;
  padding: 10px 14px;
  font-size: 0.95rem;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 6px;
  background: #fff;
  box-sizing: border-box;
  transition: border-color .15s;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--accent);
}

.wpcf7 textarea {
  height: 140px;
  resize: vertical;
}

.wpcf7 input[type="submit"] {
  display: inline-block;
  padding: 12px 32px;
  background: var(--accent);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: opacity .15s;
}

.wpcf7 input[type="submit"]:hover {
  opacity: 0.85;
}

.wpcf7 .wpcf7-not-valid-tip {
  font-size: 0.8rem;
  color: #c0392b;
  margin-top: 4px;
}


/* Floor Guide */
.floor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 16px;
}

.floor-card {
  margin: 0;
}

.floor-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  border: 1px solid #f1d5dd;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}

.floor-card figcaption {
  margin-top: 8px;
  font-size: 0.9rem;
  color: #666;
  text-align: center;
}

@media (max-width: 640px) {
  .floor-grid {
    grid-template-columns: 1fr;
  }
}
