@charset "utf-8";
/*
 * ======================================
 * 川島整形外科 サイト固有CSS（site.css）
 * ======================================
 * 共通CSS：./css/main.css
 *   共通フレームワーク ./scss/ は読み取り専用。
 *   ./scss-site/main.scss で !default 変数だけをサイト値に上書きし、
 *   sass scss-site/main.scss css/main.css --style=compressed --no-source-map
 *   でビルドしている。
 * 本ファイルは main.css の後に読み込み、共通クラスで再現できない
 * claude-design-output/ の実数値だけを補う。
 *
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * ---- 基盤 ----
 * .kwo-site / __main          - 100vh フレックスラッパー（フッター最下部固定）
 * .kwo-container (--narrow)   - コンテナ（max-width:1400px + 左右 clamp(24px,4.5vw,70px)）
 *                               --narrow は 960px。テキスト＋小さめの表だけのセクション用
 * .kwo-sec / --sub/--dir/--entry - セクション上下padding（clamp流動値 4種）
 * .kwo-bg-white / .kwo-bd-top / .kwo-bd-bottom - 背景・境界線
 * .kwo-navytex                - 濃紺テクスチャ背景（写真+グラデの2層を疑似要素で重ねる）
 * .kwo-pattern                - 淡いパターン背景（opacity:.16 + 白グラデの2層）
 * .kwo-fade                   - スクロールフェードイン（JS有効時のみ初期非表示）
 * .kwo-br-pc                  - PC専用改行（SP 639px以下で display:none）
 * .kwo-wbr                    - 文節を折り返し単位にする（inline-block／1文字段落ち防止）
 *
 * ---- 見出し ----
 * .kwo-heading (--white/--mb12/26/34/46/52) - 英字の上に日本語を絶対配置で重ねる見出し
 * .kwo-subttl / __cap (--sm/--md)           - 縦キャップ+下線の小見出し
 *
 * ---- ヘッダー ----
 * .kwo-topbar / __inner / __addr / __hours / __closed - 上部インフォメーションバー
 * .kwo-header / __inner / __logo                       - sticky ヘッダー
 * .kwo-nav__link (--current) / __tel / __tel-label / __tel-num
 * .kwo-spnav__tel / __hours / .kwo-pagetop
 *
 * ---- 下層ヒーロー ----
 * .kwo-pagehero / __overlay / __content / __ttl
 * .kwo-breadcrumb-wrap / .kwo-breadcrumb
 *
 * ---- CTA / フッター ----
 * .kwo-cta / __inner / __lead / __note
 * .kwo-telbtn / __label / __num
 * .kwo-footer / __inner / __col / __logo / __nav / __addr / __tel / __telnum
 *             / __map / __bottom / __copy
 * .kwo-hours (--mv) / __label / __body / __table / __th-time / __th-sun
 *            / __time / __mark (--tri/--off) / __note   - 縦書きラベル+診療時間表
 *
 * ---- TOP ----
 * .kwo-mv / __slideshow / __overlay / __inner / __ttl / __hours
 * .kwo-newsbar / __inner / __badge / __body / __date / __link / __all
 * .kwo-lead / .kwo-deptgrid / .kwo-deptcard / __ttl / __icon / __text
 * .kwo-featgrid / .kwo-feat / __img / __ttl / __text
 * .kwo-sched__lead / __note / .kwo-schedtabs / .kwo-schedtab / __num
 * .kwo-schedpanel / .kwo-schedtable / __thtime / __thsun / __row / __time
 *                 / __cell (--off)
 * .kwo-director / __facets / __inner / __text / __name / __img
 * .kwo-btn (--white/--navy)
 * .kwo-access / __map
 * .kwo-dl (--compact/--career) / __row (--last) / __label (--year)
 *         / __value (--tel/--fax/--lh/--career)
 *
 * ---- 下層ページ ----
 * .kwo-intro / .kwo-roomgrid / .kwo-room__img / __label
 * .kwo-overview / .kwo-clinicmap / __note
 * .kwo-doc (--sub) / __photo (--pending/--sm) / __photo-veil / __body (--sub)
 *          / __role (--sm) / __name (--sm) / __en (--wide/--sm) / __text / __detail
 * .kwo-docs / __item
 * .kwo-list (--mb40) / __item / __dot
 * .kwo-depts / .kwo-dept / __ttl / __body / __icon / __text
 * .kwo-rule / __bar / __line (--mb22)   - 3px アクセント + 1px 罫線の二重ルール
 * .kwo-tags / .kwo-tag
 * .kwo-treatments / __note / .kwo-treatment / __ttl / __text
 * .kwo-cases / __text
 * .kwo-notice / __ttl / __text
 * .kwo-steps / __note / .kwo-step / __head / __num / __ttl / __text
 * .kwo-hourstable-wrap / .kwo-hourstable / __thtime / __thsun / __row / __time
 *                      / __mark (--tri/--off) / __note
 * .kwo-entrylayout / __main / .kwo-entrylist / .kwo-pager / __next
 * .kwo-entrylist-cms          - CMS出力の受け皿（.pages / .page_prev / .page_next を装飾）
 * .kwo-side / __ttl (--mt) / __post / __date / __title / __archive
 * .kwo-side__archives         - 月別アーカイブCMS出力の受け皿（裸の ul/li/a を装飾）
 * .kwo-entry__meta / __date / __ttl / __thumb / __text / __box / __box-ttl
 *                  / __box-text / __back
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *
 * 1. 値の粒度不足
 *    - fz-* が 0.1rem 刻みのため 13.5px / 14.5px / 15.5px / 12.5px を作れない
 *    - section の上下余白が 120px / 60px 固定で、clamp(64px,8vw,110px) のような
 *      流動値を持たない（デザインは全セクションが clamp 指定）
 *    - gap-* が 5/10/15/20/30/40/60px のみで 22/26/34/44/56px が無い
 *    - lh-* が 1/1.1/1.2/1.4/1.6/1.8/2 のみで 1.85/1.9/2.05/2.1/2.2/2.3 が無い
 *
 * 2. 指定方向不足
 *    - heading-big--overlap は「負マージンで重ねる」方式のみで、
 *      英字の縦中央に日本語を絶対配置で重ねる指定ができない
 *
 * 3. 状態不足
 *    - なし（hover 系 utility で再現できた）
 *
 * 4. 構造不足
 *    - container が max-width のみで「左右 clamp gutter」を持たない
 *      （BP以下は 95% + 10px 固定のため流動ガターに置き換えられない）
 *    - 縦書きラベル + 表の横並びブロック（診療時間パネル）に相当する component が無い
 *    - tab-nav はあるが、タブ内に英字の期間ラベルを持つ構造が無い
 *    - dt/dd の「ラベル固定幅 + 本文」定義リストが dl-timeline（年号80px固定）しかなく、
 *      74px / 92px / 100px の可変ラベル幅に対応できない
 *
 * 5. 装飾パターン不足
 *    - 背景写真 + グラデーションの2層重ね（filter: saturate/brightness 付き）を
 *      指定する仕組みが無い（bg-photo-* は1層のみ）
 *    - CSSグラデーションによる面取り（ファセット）背景が無い
 *    - 3px アクセント線 + 1px 罫線を重ねた二重ルール（.kwo-rule）が無い
 */

/* ==========================================================================
   0. デザイントークン（claude-design-output/ の実数値）
   ========================================================================== */
:root {
  --kwo-gutter: clamp(24px, 4.5vw, 70px);   /* 左右padding */
  --kwo-width: 1400px;                      /* コンテナ最大幅 */

  --kwo-navy: #00406C;      /* メイン（濃紺） */
  --kwo-blue: #5298D6;      /* アクセント */
  --kwo-blue-pale: #dbe6f1; /* 英字見出し */
  --kwo-red: #990000;       /* サブ（エンジ） */
  --kwo-red-hover: #cb0100;

  --kwo-ink: #1f2430;
  --kwo-ink2: #333a49;
  --kwo-gray: #5a6272;
  --kwo-gray2: #8b93a3;
  --kwo-gray3: #7d8598;
  --kwo-mute: #b4bac6;

  --kwo-line: #e3e0d9;
  --kwo-line2: #e9e6df;
  --kwo-line3: #dcd8cf;
  --kwo-line4: #f0ece4;
  --kwo-line5: #dfe6ef;

  --kwo-bg: #fbfaf9;
  --kwo-bg-img: #eef1f6;
  --kwo-bg-tag: #eef3f9;
  --kwo-bg-box: #f4f2ed;

  --kwo-mincho: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  --kwo-cormorant: Cormorant, serif;
  --kwo-garamond: "EB Garamond", serif;
}

/* ==========================================================================
   1. ベース（claude-design-output/ の body 指定に合わせる）
   ========================================================================== */
body {
  background: var(--kwo-bg);
  color: var(--kwo-ink);
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 19.5px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: normal;
  /* overflow-x:hidden（main.css）は position:sticky なヘッダーを壊すため clip に置換 */
  overflow-x: clip;
}
a { color: var(--kwo-navy); }
a:hover { color: var(--kwo-blue); opacity: 1; }
img, svg { display: block; }
button { font-family: inherit; }

/* 全体ラッパー（フッターを最下部に固定） */
.kwo-site { min-height: 100vh; display: flex; flex-direction: column; }
.kwo-site__main { flex: 1; }

/* コンテナ（max-width:1400px + clamp gutter） */
.kwo-container {
  width: 100%;
  max-width: var(--kwo-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--kwo-gutter);
  padding-right: var(--kwo-gutter);
}

/* 幅を必要とする要素（画像グリッド・マップ・2カラム）を持たず、
   テキストと小さめの表だけで構成されるセクション用の狭いコンテナ。
   1400px だと中身が4〜5割しか埋まらず、min-width:660px の表が
   1.9倍に引き伸ばされてスカスカに見えるため。
   当初960pxだったが、文字を拡大したぶん初診の流れの説明文が
   「〜ご提示くださ／い。」のように1〜2文字で折り返すので1180pxに広げた。
   .kwo-container と同じ詳細度なので、必ずこの順（後ろ）に置くこと */
.kwo-container--narrow { max-width: 1180px; }

/* セクション上下padding */
.kwo-sec        { padding-top: clamp(64px, 8vw, 110px); padding-bottom: clamp(64px, 8vw, 110px); }
.kwo-sec--sub   { padding-top: clamp(56px, 7vw, 96px);  padding-bottom: clamp(56px, 7vw, 96px); }
.kwo-sec--dir   { padding-top: clamp(60px, 7vw, 96px);  padding-bottom: clamp(60px, 7vw, 96px); }
.kwo-sec--entry { padding-top: clamp(52px, 6vw, 88px);  padding-bottom: clamp(52px, 6vw, 88px); }

.kwo-bg-white  { background: #fff; }
.kwo-bd-bottom { border-bottom: 1px solid var(--kwo-line); }
.kwo-bd-top    { border-top: 1px solid var(--kwo-line); }

/* 濃紺テクスチャ背景（トップバー・フッター・縦帯ラベル共通） */
.kwo-navytex { position: relative; background: var(--kwo-navy); overflow: hidden; }
.kwo-navytex::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28533/bg-texture-navy.png");
  background-size: cover;
  background-position: center;
  filter: saturate(1.05) brightness(.62);
  pointer-events: none;
}
.kwo-navytex::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,64,108,.4), rgba(0,64,108,.3) 55%, rgba(0,64,108,.5));
  pointer-events: none;
}

/* 淡いパターン背景セクション（当院について／外来担当表） */
.kwo-pattern { position: relative; background: #fff; overflow: hidden; }
.kwo-pattern::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28533/bg-pattern-light.png");
  background-size: cover;
  background-position: center;
  opacity: .16;
  pointer-events: none;
}
.kwo-pattern::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.85));
  pointer-events: none;
}
.kwo-pattern > * { position: relative; z-index: 1; }

/* スクロールフェードイン（JS有効時のみ・最終状態はデザインと同一） */
/* 文節を1つの折り返し単位にするラッパー。日本語は文字単位で改行されるため、
   これで囲んだ範囲の内部では改行されず、境界だけが改行位置になる（1文字段落ち防止） */
.kwo-wbr { display: inline-block; }

.js-anim .kwo-fade { opacity: 0; transform: translateY(16px); }
.js-anim .kwo-fade.is-shown {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .7s ease, transform .7s ease;
}

/* ==========================================================================
   2. セクション見出し（英字 + 日本語の重なり）
   ========================================================================== */
.kwo-heading { position: relative; display: block; text-align: center; margin: 0 0 40px; }
.kwo-heading .heading__en {
  display: block;
  font-family: var(--kwo-cormorant);
  font-weight: 500;
  font-size: clamp(44px, 5.4vw, 78px);
  line-height: 1.04;
  letter-spacing: .02em;
  color: var(--kwo-blue-pale);
  text-transform: uppercase;
  white-space: nowrap;
}
.kwo-heading .heading__ja {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-14%);
  margin: 0;
  text-align: center;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: clamp(21px, 2.1vw, 27px);
  line-height: normal;
  letter-spacing: .18em;
  color: var(--kwo-navy);
  white-space: nowrap;
}
.kwo-heading--white .heading__en { color: rgba(255,255,255,.22); }
.kwo-heading--white .heading__ja { color: #fff; }
.kwo-heading--mb12 { margin-bottom: 12px; }
.kwo-heading--mb26 { margin-bottom: 26px; }
.kwo-heading--mb34 { margin-bottom: 34px; }
.kwo-heading--mb46 { margin-bottom: 46px; }
.kwo-heading--mb52 { margin-bottom: clamp(32px, 4vw, 52px); }

/* 小見出し（縦キャップ + 下線） */
.kwo-subttl {
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  gap: 13px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: 23px;
  line-height: normal;
  letter-spacing: .14em;
  color: var(--kwo-navy);
  border-bottom: 1px solid var(--kwo-navy);
  padding-bottom: 12px;
}
.kwo-subttl__cap {
  flex: none;
  width: 7px;
  height: 21px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--kwo-navy), var(--kwo-blue));
}

/* ==========================================================================
   3. ヘッダー / トップバー / ナビ
   ========================================================================== */
.kwo-topbar { color: #d8e6f2; font-size: 15px; letter-spacing: .08em; }
.kwo-topbar__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  align-items: center;
  justify-content: space-between;
  /* 左右位置を下の .kwo-header__inner（ロゴ・ナビ）と揃える。
     .kwo-container の max-width:1400px + 左右 gutter だとヘッダーより内側に入るため、
     ヘッダーと同じ「幅96% + 左右padding 0」で上書きする（margin auto は kwo-container のまま）。
     .kwo-header__inner の width を変えるときはここも合わせる */
  max-width: none;
  width: 96%;
  padding: 8px 0;
}
.kwo-topbar__hours { display: flex; gap: 20px; flex-wrap: wrap; }
.kwo-topbar__closed { color: #9fcdf0; }

.kwo-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.96);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--kwo-line);
}
.kwo-header__inner {
  max-width: none;
  width: 96%;
  height: auto;
  padding: 12px 0;
  gap: 0 20px;
  flex-wrap: nowrap;
}
.kwo-header__logo img { height: 52px; width: auto; }

.kwo-nav {
  margin: 0;
  gap: 0 2px;
  flex-wrap: nowrap;
  font-size: 16.5px;
  letter-spacing: .02em;
  white-space: nowrap;
}
.kwo-nav__link {
  padding: 10px 11px;
  color: var(--kwo-ink);
  text-decoration: none;
  transition: color .3s ease;
}
.kwo-nav__link:hover { color: var(--kwo-red); opacity: 1; }
.kwo-nav__link--current { color: var(--kwo-red); }
.kwo-nav__tel {
  margin-left: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--kwo-red);
  color: #fff;
  padding: 10px 16px;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background .3s ease;
}
.kwo-nav__tel:hover { background: var(--kwo-red-hover); color: #fff; opacity: 1; }
.kwo-nav__tel-label { font-family: var(--kwo-cormorant); font-size: 15px; letter-spacing: .2em; opacity: .75; }
.kwo-nav__tel-num { font-family: var(--kwo-garamond); font-size: 24px; letter-spacing: .04em; }

/* SPナビ */
.kwo-spnav__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--kwo-red);
  color: #fff;
  padding: 12px 24px;
  letter-spacing: .04em;
  text-decoration: none;
}
.kwo-spnav__tel:hover { background: var(--kwo-red-hover); color: #fff; opacity: 1; }
.kwo-spnav__hours { margin-top: 14px; font-size: 15px; line-height: 1.9; color: rgba(255,255,255,.8); }
/* main.css の擬似要素アイコンは FA5 のファミリー名を指定しているが、
   読み込んでいるのは FA6（ROS CDN）のため、使用箇所のみファミリー名を合わせる */
.sp-nav__link::after { font-family: "Font Awesome 6 Free"; }
.kwo-pagetop { background: var(--kwo-navy); }
.kwo-pagetop:hover { background: var(--kwo-red); color: #fff; }

/* ==========================================================================
   4. 下層ページヒーロー / パンくず
   ========================================================================== */
.kwo-pagehero { background: var(--kwo-navy); }
.kwo-pagehero__overlay { background: linear-gradient(100deg, rgba(0,42,71,.8), rgba(0,64,108,.45)); }
.kwo-pagehero__content {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  min-height: clamp(260px, 30vw, 380px);
  padding-top: clamp(110px, 13vw, 180px);
  padding-bottom: clamp(48px, 6vw, 72px);
}
.kwo-pagehero__ttl { text-align: left; }
.kwo-pagehero .heading__en {
  display: block;
  font-family: var(--kwo-cormorant);
  font-weight: 500;
  font-size: clamp(52px, 6.4vw, 96px);
  line-height: 1.04;
  letter-spacing: .02em;
  color: rgba(255,255,255,.22);
  text-transform: uppercase;
}
.kwo-pagehero .heading__ja {
  margin: 6px 0 0;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: clamp(23px, 2.3vw, 30px);
  line-height: normal;
  letter-spacing: .18em;
  color: #fff;
}

.kwo-breadcrumb-wrap { background: #fff; border-bottom: 1px solid var(--kwo-line); }
.kwo-breadcrumb {
  padding: 12px 0;
  font-size: 15px;
  color: var(--kwo-gray2);
  letter-spacing: .04em;
}
.kwo-breadcrumb .breadcrumb__item:not(:last-child)::after { content: "＞"; margin: 0 .7em; color: var(--kwo-gray2); }
.kwo-breadcrumb .breadcrumb__link { color: var(--kwo-gray2); }
.kwo-breadcrumb .breadcrumb__link:hover { color: var(--kwo-navy); text-decoration: none; }
.kwo-breadcrumb .breadcrumb__current { color: var(--kwo-gray2); }

/* ==========================================================================
   5. 電話CTA帯（フッター上）
   ========================================================================== */
.kwo-cta { background: var(--kwo-red); }
.kwo-cta__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 48px;
  align-items: center;
  justify-content: space-between;
  padding-top: clamp(40px, 5vw, 60px);
  padding-bottom: clamp(40px, 5vw, 60px);
}
.kwo-cta__lead {
  margin: 0 0 8px;
  font-family: var(--kwo-mincho);
  font-size: clamp(21px, 2.6vw, 27px);
  color: #fff;
  letter-spacing: .1em;
}
.kwo-cta__note { margin: 0; font-size: 17.5px; color: #f2d4d4; letter-spacing: .04em; }
.kwo-telbtn {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  color: var(--kwo-red);
  padding: 16px 30px;
  text-decoration: none;
  transition: background .3s ease, color .3s ease;
}
.kwo-telbtn:hover { background: var(--kwo-navy); color: #fff; opacity: 1; }
.kwo-telbtn__label { font-family: var(--kwo-cormorant); font-size: 15px; letter-spacing: .2em; }
.kwo-telbtn__num { font-family: var(--kwo-garamond); font-size: 33px; letter-spacing: .04em; }

/* ==========================================================================
   6. フッター
   ========================================================================== */
.kwo-footer { color: #cbdcec; }
.kwo-footer__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(32px, 4vw, 56px);
  padding-top: clamp(48px, 6vw, 72px);
  padding-bottom: clamp(48px, 6vw, 72px);
}
.kwo-footer__logo { display: flex; align-items: center; margin-bottom: 24px; }
.kwo-footer__logo img { height: 44px; width: auto; background: #fff; padding: 8px 14px; }
.kwo-footer__nav { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 17.5px; }
.kwo-footer__nav a { color: #eaf2fa; text-decoration: none; }
.kwo-footer__nav a:hover { color: #9fcdf0; }
.kwo-footer__addr { margin: 24px 0 6px; font-size: 15px; line-height: 1.9; }
.kwo-footer__tel { margin: 0; font-size: 15px; line-height: 1.9; }
.kwo-footer__telnum { font-family: var(--kwo-garamond); font-size: 21px; color: #fff; letter-spacing: .04em; }

.kwo-hours { display: flex; align-items: stretch; background: #fff; }
.kwo-hours__label {
  color: #fff;
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 12px;
  font-family: var(--kwo-mincho);
  font-size: 18px;
  letter-spacing: .3em;
}
.kwo-hours__label > span { position: relative; z-index: 1; }
.kwo-hours__body { flex: 1; padding: 16px 22px; }
.kwo-hours__table { font-size: 16.5px; width: 100%; }
.kwo-hours__table th {
  padding: 0 6px 9px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  color: var(--kwo-navy);
  font-size: 16.5px;
}
.kwo-hours__th-time { padding: 0 0 9px; width: 148px; }
.kwo-hours__th-sun { color: var(--kwo-gray2); }
.kwo-hours__time {
  padding: 6px 0;
  font-family: var(--kwo-garamond);
  font-size: 19px;
  color: var(--kwo-ink);
  letter-spacing: .04em;
  /* 文字を大きくすると「14:30 〜 18:30」が2行に折り返すため折り返しを禁止する */
  white-space: nowrap;
}
.kwo-hours__mark { padding: 6px; text-align: center; color: var(--kwo-navy); font-size: 19px; }
.kwo-hours__mark--tri { color: var(--kwo-blue); }
.kwo-hours__mark--off { color: var(--kwo-mute); }
.kwo-hours__note { margin: 12px 0 0; font-size: 14px; line-height: 1.85; color: var(--kwo-gray); }
/* 外来担当表への導線。下線テキストリンクだと見つけにくいとのご指摘があり、
   entry.php の「お知らせ一覧へ戻る」と同じ枠線ボタン
   （.btn.btn--outline.kwo-btn.kwo-btn--navy）に変更し、パネル内でセンター寄せにしている */
.kwo-hours__linkwrap { margin: 10px 0 0; text-align: center; }

.kwo-footer__map { position: relative; z-index: 1; }
.kwo-footer__map iframe { border: 0; width: 100%; height: 300px; display: block; filter: grayscale(.25); }
.kwo-footer__bottom { position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.16); }
.kwo-footer__copy {
  margin: 0;
  padding: 18px 0;
  font-family: var(--kwo-garamond);
  font-size: 15px;
  letter-spacing: .12em;
  color: #eaf2fa;
}

/* ==========================================================================
   7. TOP：メインビジュアル
   ========================================================================== */
.kwo-mv { position: relative; background: var(--kwo-navy); overflow: hidden; }
.kwo-mv__slideshow { position: absolute; inset: 0; z-index: 0; height: 100%; }
.kwo-mv__slideshow .swiper-slide,
.kwo-mv__slideshow .main_slider__inner { height: 100%; }
/* object-position の縦位置がMVのトリミング調整つまみ。
   yang_dr.jpg（1920x1280）は医師の頭頂部が原画の上端すれすれ（縦約1%）にあるため、
   既定の center（50%）でも 25% でも頭が切れる。top（0%）が頭を全部入れられる唯一の位置。
   写真を差し替えたら、この値も被写体に合わせて調整すること */
.kwo-mv__slideshow img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.kwo-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(100deg, rgba(0,42,71,.78), rgba(0,64,108,.38));
  pointer-events: none;
}
.kwo-mv__inner {
  position: relative;
  z-index: 2;
  padding-top: clamp(90px, 13vw, 180px);
  padding-bottom: clamp(80px, 11vw, 150px);
  /* MVの高さ＝写真のトリミング量を決めるつまみ。
     object-fit:cover なので、切り取られる量は「MVの高さ ÷ 画面幅から決まる写真の表示高さ」で決まる。
     つまり効くのは vh ではなく vw。以前の 60vh 基準だと画面が横に広いほど切り取りが増え、
     1920px 環境で写真の約45%しか見えず中途半端なトリミングになっていた。
       48vw  … 写真の約7割（医師の頭から胸元まで）が入る比率。これが主軸
       82vh  … 画面が縦に短いノートPCで、下端の外来診療時間パネルが画面外に出ないための上限
       500px / 820px … 下限・上限（820px超は1画面を占有しすぎるため頭打ちにする）
     ※900px以下は下の @media で --kwo-mv-h に切り替わるのでここは効かない */
  min-height: clamp(500px, min(48vw, 82vh), 820px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.kwo-mv__ttl {
  margin: 0;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  color: #fff;
  /* MVコピーは元から最大級の文字なので今回の一律拡大の対象外（据え置き）。
     大きくすると 1024px 付近で右下の診療時間パネルに突っ込む */
  font-size: clamp(30px, 5.2vw, 58px);
  line-height: 1.5;
  letter-spacing: .08em;
}
.kwo-mv__hours {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
  max-width: 100%;
  box-shadow: 0 -6px 30px rgba(0,0,0,.12);
}
.kwo-hours--mv .kwo-hours__label { padding: 22px 13px; font-size: 22px; }
.kwo-hours--mv .kwo-hours__body { flex: none; padding: 22px 26px; }
.kwo-hours--mv .kwo-hours__table { width: auto; font-size: 18px; }
.kwo-hours--mv .kwo-hours__table th { padding: 0 9px 10px; font-size: 18px; }
.kwo-hours--mv .kwo-hours__th-time { padding: 0 0 13px; width: 172px; }
.kwo-hours--mv .kwo-hours__time { padding: 7px 0; font-size: 23px; }
.kwo-hours--mv .kwo-hours__mark { padding: 7px 9px; font-size: 21px; }
.kwo-hours--mv .kwo-hours__note { margin: 14px 0 0; font-size: 15.5px; }
.kwo-hours--mv .kwo-hours__linkwrap { margin: 12px 0 0; }

/* ==========================================================================
   8. TOP：お知らせ帯
   ========================================================================== */
.kwo-newsbar { background: var(--kwo-bg); }
.kwo-newsbar__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 40px;
  align-items: center;
  padding-top: 26px;
  padding-bottom: 26px;
}
.kwo-newsbar__badge {
  background: var(--kwo-red);
  color: #fff;
  font-size: 15px;
  letter-spacing: .16em;
  padding: 6px 14px;
}
.kwo-newsbar__body {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  align-items: baseline;
  flex: 1;
  min-width: 260px;
}
/* CMS出力は <span id="cms-blog-entry-list-1-area"> の innerHTML に入るため、
   ダミーHTMLと違って日付・タイトルの親に span が1階層増える。
   このラッパーを透過させて日付・タイトルを直接 flex item に戻す（gap を効かせるため） */
.kwo-newsbar__body > span[id^="cms-blog-entry-list"] { display: contents; }
.kwo-newsbar__date {
  font-family: var(--kwo-garamond);
  font-size: 19px;
  color: var(--kwo-gray3);
  letter-spacing: .06em;
}
.kwo-newsbar__link {
  font-size: 19px;
  color: var(--kwo-ink);
  border-bottom: 1px solid var(--kwo-line3);
  text-decoration: none;
  transition: color .3s ease;
}
.kwo-newsbar__link:hover { color: var(--kwo-red); }
.kwo-newsbar__all {
  font-family: var(--kwo-cormorant);
  font-size: 16.5px;
  letter-spacing: .16em;
  color: var(--kwo-navy);
  border-bottom: 1px solid var(--kwo-blue);
  padding-bottom: 3px;
  text-decoration: none;
}
.kwo-newsbar__all:hover { color: var(--kwo-red); }

/* ==========================================================================
   9. TOP：当院について
   ========================================================================== */
.kwo-lead {
  margin: 0 auto;
  max-width: 1120px;
  font-size: 23px;
  line-height: 2.3;
  letter-spacing: .04em;
  color: var(--kwo-ink2);
  text-align: center;
}
.kwo-deptgrid { gap: 22px; margin-top: 54px; }
.kwo-deptcard { background: #fff; padding: 34px 26px; }
.kwo-deptcard__ttl {
  margin: 0 0 14px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  /* 上限22px：4カラム時のカード内寸は約246px。最長の「リハビリテーション科」
     （10文字・letter-spacing .08em ＝ 文字幅の約1.08倍）が1行に収まる限界がここ。
     これより大きいとこのカードだけ2行になり、アイコンと本文の高さが揃わなくなる
     （拡大前の clamp(18px,1.5vw,24px) では1600px超の画面で実際に2行になっていた） */
  font-size: clamp(20px, 1.7vw, 22px);
  line-height: normal;
  color: var(--kwo-navy);
  letter-spacing: .08em;
  text-align: center;
}
.kwo-deptcard__icon { margin: 0 0 16px; display: flex; justify-content: center; }
.kwo-deptcard__icon img { width: 52px; height: 52px; object-fit: contain; }
.kwo-deptcard__text { margin: 0; font-size: 19px; line-height: 1.7em; color: var(--kwo-gray); }

/* ==========================================================================
   10. TOP：当院の特徴
   ========================================================================== */
.kwo-featgrid { gap: 34px 30px; }
.kwo-feat { display: flex; flex-direction: column; gap: 18px; }
.kwo-feat__img { aspect-ratio: 4 / 3; background: var(--kwo-bg-img); overflow: hidden; }
.kwo-feat__img img { width: 100%; height: 100%; object-fit: cover; }
.kwo-feat__ttl {
  margin: 0 0 14px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  font-size: clamp(20px, 1.65vw, 26px);
  line-height: normal;
  color: var(--kwo-navy);
  letter-spacing: .08em;
}
.kwo-feat__text { margin: 0; font-size: 17.5px; line-height: 1.7em; color: var(--kwo-gray); }

/* ==========================================================================
   11. TOP：外来担当表
   ========================================================================== */
.kwo-sched__lead {
  margin: 0 0 26px;
  font-size: 17.5px;
  color: var(--kwo-gray);
  letter-spacing: .03em;
  text-align: center;
  line-height: normal;
}
.kwo-schedtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 0 0 22px;
  border-bottom: none;
}
.kwo-schedtab {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 24px;
  font-family: var(--kwo-mincho);
  font-size: 17.5px;
  font-weight: 500;
  letter-spacing: .06em;
  line-height: normal;
  cursor: pointer;
  border: 1px solid var(--kwo-line5);
  border-radius: 0;
  background: #fff;
  color: var(--kwo-gray);
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.kwo-schedtab.is-active { border-color: var(--kwo-navy); background: var(--kwo-navy); color: #fff; }
.kwo-schedtab__num { font-family: var(--kwo-garamond); font-size: 19px; letter-spacing: .04em; }

.kwo-schedpanel {
  overflow-x: auto;
  border: 1px solid var(--kwo-line);
  background: #fff;
  max-width: 1060px;
  margin: 0 auto;
}
.kwo-schedtable { width: 100%; min-width: 790px; font-size: 17.5px; table-layout: fixed; }
.kwo-schedtable thead tr { background: var(--kwo-navy); color: #fff; }
.kwo-schedtable th {
  padding: 13px 6px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: .06em;
}
.kwo-schedtable__thtime { padding: 13px 18px; text-align: left; width: 23%; font-size: 17.5px; }
.kwo-schedtable__thsun { color: #a9bde0; }
.kwo-schedtable__row { border-bottom: 1px solid var(--kwo-line2); }
.kwo-schedtable__time {
  padding: 14px 18px;
  font-family: var(--kwo-mincho);
  font-size: 17.5px;
  color: var(--kwo-navy);
  letter-spacing: .02em;
  white-space: nowrap;
}
.kwo-schedtable__cell {
  padding: 14px 6px;
  text-align: center;
  border-left: 1px solid var(--kwo-line4);
  line-height: 1.9;
  color: var(--kwo-ink2);
}
.kwo-schedtable__cell--off { color: var(--kwo-mute); }
.kwo-sched__note {
  margin: 16px auto 0;
  max-width: 1060px;
  font-size: 16.5px;
  color: var(--kwo-gray2);
  letter-spacing: .02em;
  line-height: normal;
}

/* ==========================================================================
   12. TOP：医師紹介（濃紺・面取り背景）
   ========================================================================== */
.kwo-director { position: relative; background: var(--kwo-navy); overflow: hidden; }
.kwo-director__facets {
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
  opacity: .3;
  background-image:
    linear-gradient(115deg, rgba(0,20,38,.85) 0 22%, transparent 22.4% 46%, rgba(0,20,38,.6) 46.4% 61%, transparent 61.4% 100%),
    linear-gradient(28deg, rgba(0,16,32,.8) 0 18%, transparent 18.4% 39%, rgba(0,16,32,.5) 39.4% 57%, transparent 57.4% 100%),
    linear-gradient(160deg, rgba(0,22,42,.65) 0 30%, transparent 30.4% 52%, rgba(0,22,42,.45) 52.4% 74%, transparent 74.4% 100%);
  pointer-events: none;
}
.kwo-director__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(36px, 5vw, 70px);
  align-items: center;
}
.kwo-director__text {
  margin: 0 0 22px;
  color: #d6dced;
  font-size: 19px;
  line-height: 2.2;
  letter-spacing: .03em;
  text-align: left;
}
.kwo-director__name {
  margin: 0 0 34px;
  color: #fff;
  font-family: var(--kwo-mincho);
  font-size: 22px;
  letter-spacing: .1em;
  text-align: right;
  line-height: normal;
}
.kwo-director__img { aspect-ratio: 4 / 3; background: #00517f; overflow: hidden; }
.kwo-director__img img { width: 100%; height: 100%; object-fit: cover; }

/* ボタン（枠線タイプ） */
.kwo-btn {
  display: inline-flex;
  width: auto;
  max-width: none;
  border-width: 1px;
  border-radius: 0;
  padding: 15px 30px;
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
  letter-spacing: .08em;
}
.kwo-btn--white { border-color: rgba(255,255,255,.55); color: #fff; background: transparent; }
.kwo-btn--white:hover { background: #fff; color: var(--kwo-navy); border-color: #fff; opacity: 1; }
.kwo-btn--navy { border-color: var(--kwo-navy); color: var(--kwo-navy); background: transparent; padding: 15px 40px; }
.kwo-btn--navy:hover { background: var(--kwo-navy); color: #fff; opacity: 1; }

/* ==========================================================================
   13. TOP：アクセス（地図 + 情報リスト）
   ========================================================================== */
.kwo-access {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 44px;
}
.kwo-access__map { aspect-ratio: 16 / 10; border: 1px solid var(--kwo-line); overflow: hidden; }

.kwo-dl { display: flex; flex-direction: column; }
.kwo-dl__row { display: flex; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--kwo-line2); }
.kwo-dl__row--last { border-bottom: none; }
.kwo-dl__label {
  width: 92px;
  flex-shrink: 0;
  color: var(--kwo-navy);
  font-size: 17.5px;
  font-weight: 500;
  letter-spacing: .1em;
  line-height: normal;
}
.kwo-dl__value { font-size: 18.5px; line-height: 1.9; color: var(--kwo-ink2); }
.kwo-dl__value--tel {
  font-family: var(--kwo-garamond);
  font-size: 28px;
  color: var(--kwo-red);
  letter-spacing: .04em;
  line-height: normal;
}
.kwo-dl__value--fax {
  font-family: var(--kwo-garamond);
  font-size: 23px;
  color: var(--kwo-ink2);
  letter-spacing: .04em;
  line-height: normal;
}


/* ==========================================================================
   15. クリニック紹介
   ========================================================================== */
.kwo-intro {
  margin: 0 0 40px;
  max-width: 1100px;
  font-size: 21px;
  line-height: 2.3;
  letter-spacing: .04em;
  color: var(--kwo-ink2);
}
.kwo-roomgrid { gap: 26px; }
.kwo-room__img { aspect-ratio: 4 / 3; background: var(--kwo-bg-img); overflow: hidden; }
.kwo-room__img img { width: 100%; height: 100%; object-fit: cover; }
.kwo-room__label {
  margin: 14px 0 0;
  font-size: 18px;
  color: var(--kwo-navy);
  letter-spacing: .06em;
  line-height: normal;
}
.kwo-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 0 56px;
}
.kwo-dl--compact .kwo-dl__row { gap: 20px; padding: 16px 0; }
.kwo-dl--compact .kwo-dl__label { width: 100px; }
.kwo-dl--compact .kwo-dl__value { line-height: normal; }
.kwo-dl--compact .kwo-dl__value--lh { line-height: 1.9; }
.kwo-clinicmap {
  margin-top: clamp(36px, 4vw, 56px);
  border: 1px solid var(--kwo-line3);
  overflow: hidden;
  height: clamp(280px, 32vw, 420px);
}
.kwo-clinicmap__note { margin: 18px 0 0; font-size: 18px; line-height: 2.1; color: var(--kwo-gray); }

/* ==========================================================================
   16. 医師紹介
   ========================================================================== */
.kwo-doc {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(32px, 4vw, 60px);
  align-items: start;
}
.kwo-doc--sub { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(32px, 4vw, 56px); }
.kwo-doc__photo { position: relative; aspect-ratio: 3 / 4; background: var(--kwo-bg-img); overflow: hidden; }
.kwo-doc__photo img { width: 100%; height: 100%; object-fit: cover; }
.kwo-doc__photo--pending img { filter: blur(7px) grayscale(.25); transform: scale(1.08); }
.kwo-doc__photo--sm img { filter: blur(6px) grayscale(.25); }
.kwo-doc__photo-veil { position: absolute; inset: 0; background: rgba(0,64,108,.34); }
.kwo-doc__body { grid-column: span 2; min-width: 300px; }
.kwo-doc__body--sub { min-width: 280px; }
.kwo-doc__role { margin: 0 0 3px; font-size: 16.5px; letter-spacing: .16em; color: var(--kwo-navy); line-height: normal; }
.kwo-doc__role--sm { font-size: 16.5px; }
.kwo-doc__name {
  margin: 0 0 6px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  color: var(--kwo-navy);
  font-size: clamp(26px, 3.3vw, 35px);
  letter-spacing: .14em;
  line-height: normal;
}
.kwo-doc__name--sm { font-size: 28px; letter-spacing: .12em; margin: 0 0 5px; }
.kwo-doc__en {
  margin: 0 0 32px;
  font-family: var(--kwo-cormorant);
  font-size: 18px;
  letter-spacing: .16em;
  color: var(--kwo-gray2);
  line-height: normal;
}
.kwo-doc__en--wide { margin-bottom: 34px; }
.kwo-doc__en--sm { font-size: 16.5px; margin-bottom: 22px; }
.kwo-doc__text { margin: 0; font-size: 19.5px; line-height: 2.3; letter-spacing: .04em; color: var(--kwo-ink2); }
.kwo-doc__detail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(32px, 4vw, 56px);
  margin-top: 64px;
}
.kwo-dl--career .kwo-dl__row { gap: 20px; padding: 13px 0; }
.kwo-dl__label--year {
  width: 74px;
  font-family: var(--kwo-garamond);
  font-size: 19px;
  color: var(--kwo-navy);
  letter-spacing: normal;
}
.kwo-dl__value--career { font-size: 18px; line-height: 1.9; color: var(--kwo-ink2); }

.kwo-list { display: flex; flex-direction: column; gap: 4px; list-style: none; margin: 0; padding: 0; }
.kwo-list--mb40 { margin-bottom: 40px; }
.kwo-list__item {
  margin: 0;
  display: flex;
  gap: 11px;
  align-items: center;
  font-size: 18px;
  line-height: 1.9;
  color: var(--kwo-ink2);
}
.kwo-list__dot { flex: none; font-size: 6px; color: var(--kwo-blue); }

.kwo-subttl--sm { margin: 0 0 18px; font-size: 22px; padding-bottom: 11px; }
.kwo-subttl__cap--sm { height: 20px; }
.kwo-subttl--md { margin: 0 0 16px; font-size: 24px; letter-spacing: .1em; padding-bottom: 12px; }
.kwo-subttl__cap--md { height: 22px; }

.kwo-docs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: clamp(32px, 4vw, 56px);
}
.kwo-docs__item { display: grid; grid-template-columns: 150px 1fr; gap: 28px; align-items: start; }

/* ==========================================================================
   17. 診療案内
   ========================================================================== */
.kwo-depts { display: flex; flex-direction: column; gap: clamp(44px, 5vw, 72px); }
.kwo-rule__bar { border-top: 3px solid var(--kwo-blue); width: 44px; }
.kwo-rule__line { border-top: 1px solid #dfe3ea; margin-top: -1px; }
.kwo-rule--mb22 .kwo-rule__line { margin-bottom: 22px; }
.kwo-dept__ttl {
  margin: 26px 0 30px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: clamp(23px, 2.2vw, 29px);
  letter-spacing: .1em;
  color: var(--kwo-navy);
  line-height: normal;
}
.kwo-dept__body {
  display: grid;
  grid-template-columns: minmax(140px, 180px) 1fr;
  gap: clamp(24px, 3vw, 48px);
  align-items: center;
}
.kwo-dept__icon {
  width: clamp(92px, 9vw, 116px);
  height: clamp(92px, 9vw, 116px);
  border-radius: 50%;
  background: #fff;
  border: 1px solid #e3e8ef;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kwo-dept__icon img { width: 56%; height: 56%; object-fit: contain; }
.kwo-dept__icon i { font-size: clamp(34px, 3.4vw, 44px); color: var(--kwo-blue); line-height: 1; }
.kwo-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px; }
.kwo-tag {
  padding: 7px 15px;
  background: var(--kwo-bg-tag);
  font-size: 16.5px;
  letter-spacing: .06em;
  color: var(--kwo-navy);
}
.kwo-dept__text { margin: 0; font-size: 18.5px; line-height: 2.1; color: var(--kwo-ink2); }

.kwo-treatments {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(28px, 3vw, 44px);
}
.kwo-treatment__ttl {
  margin: 0 0 12px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  font-size: 22.5px;
  color: var(--kwo-navy);
  letter-spacing: .06em;
  line-height: normal;
}
.kwo-treatment__text { margin: 0; font-size: 18px; line-height: 2.05; color: var(--kwo-gray); }
.kwo-treatments__note { margin: 26px 0 0; font-size: 16.5px; color: var(--kwo-gray2); line-height: 1.9; }
.kwo-cases {
  margin-top: clamp(44px, 5vw, 68px);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(28px, 3.4vw, 52px);
}
.kwo-cases__text { margin: 0; font-size: 18.5px; line-height: 2.1; color: var(--kwo-ink2); }

/* ==========================================================================
   18. ご来院の方へ
   ========================================================================== */
.kwo-notice {
  background: var(--kwo-navy);
  color: #fff;
  padding: clamp(28px, 4vw, 44px);
  margin-bottom: 60px;
}
.kwo-notice__ttl {
  margin: 0 0 12px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  font-size: clamp(21px, 2.6vw, 27px);
  letter-spacing: .1em;
  line-height: normal;
}
.kwo-notice__text { margin: 0; font-size: 18.5px; line-height: 2.1; color: #d6dced; }

.kwo-steps { display: flex; flex-direction: column; border-top: 1px dashed #c8cfd8; margin-bottom: 34px; }
.kwo-step {
  display: grid;
  grid-template-columns: minmax(230px, 300px) 1fr;
  gap: clamp(20px, 4vw, 60px);
  align-items: center;
  padding: clamp(30px, 3.6vw, 46px) 0;
  border-bottom: 1px dashed #c8cfd8;
}
.kwo-step__head { display: flex; align-items: center; gap: 22px; }
.kwo-step__num {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border: 1px solid var(--kwo-blue);
  border-radius: 50%;
  font-family: var(--kwo-garamond);
  font-size: 21px;
  letter-spacing: .08em;
  color: var(--kwo-navy);
}
.kwo-step__ttl {
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: clamp(19px, 1.65vw, 22px);
  letter-spacing: .08em;
  color: var(--kwo-navy);
}
.kwo-step__text { margin: 0; font-size: 18px; line-height: 2.1; color: var(--kwo-navy); }
.kwo-steps__note { margin: 0; font-size: 17.5px; line-height: 2.1; color: var(--kwo-gray); }

.kwo-hourstable-wrap { overflow-x: auto; border: 1px solid var(--kwo-line); }
.kwo-hourstable { width: 100%; min-width: 660px; font-size: 18px; }
.kwo-hourstable thead tr { background: var(--kwo-navy); color: #fff; }
.kwo-hourstable th { padding: 15px 8px; font-weight: 500; }
.kwo-hourstable__thtime { padding: 15px 14px; text-align: left; letter-spacing: .08em; width: 190px; }
.kwo-hourstable__thsun { color: #a9bde0; }
.kwo-hourstable__row { border-bottom: 1px solid var(--kwo-line2); }
.kwo-hourstable__time { padding: 18px 14px; color: var(--kwo-navy); }
.kwo-hourstable__mark { padding: 18px 8px; text-align: center; color: var(--kwo-navy); }
.kwo-hourstable__mark--tri { color: var(--kwo-red); }
.kwo-hourstable__mark--off { color: var(--kwo-mute); }
.kwo-hourstable__note { margin: 16px 0 0; font-size: 16.5px; color: var(--kwo-gray); line-height: 2; }

/* ==========================================================================
   19. お知らせ一覧 / 記事詳細
   ========================================================================== */
.kwo-entrylayout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(36px, 4vw, 60px);
  align-items: start;
}
.kwo-entrylayout__main { grid-column: span 2; min-width: 280px; }

.kwo-entrylist { border-top: none; }
.kwo-entrylist .blog-list__item { border-bottom: 1px solid var(--kwo-line); }
.kwo-entrylist .blog-list__link {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 6px 24px;
  align-items: baseline;
  padding: 22px 4px;
  color: var(--kwo-ink);
  transition: color .3s ease;
}
.kwo-entrylist .blog-list__link:hover { background: transparent; color: var(--kwo-red); }
.kwo-entrylist .blog-list__date {
  font-family: var(--kwo-garamond);
  font-size: 19px;
  color: var(--kwo-gray3);
  letter-spacing: .08em;
  line-height: normal;
}
.kwo-entrylist .blog-list__title { font-size: 19.5px; font-weight: 500; line-height: 1.8; color: inherit; }
.kwo-entrylist .blog-list__link:hover .blog-list__title { color: inherit; }

.kwo-pager { margin: 44px 0 0; }
.kwo-pager .pagination__list { gap: 8px; justify-content: center; }
.kwo-pager .pagination__link {
  width: 42px;
  height: 42px;
  min-width: 42px;
  padding: 0;
  border: 1px solid var(--kwo-line3);
  color: var(--kwo-gray);
  font-family: var(--kwo-garamond);
  font-size: 21px;
}
.kwo-pager .pagination__link:hover { border-color: var(--kwo-navy); color: var(--kwo-navy); }
.kwo-pager .pagination__link.is-current {
  background: var(--kwo-navy);
  border-color: var(--kwo-navy);
  color: #fff;
}
.kwo-pager .kwo-pager__next {
  width: auto;
  min-width: 0;
  padding: 0 18px;
  font-family: inherit;
  font-size: 16.5px;
}

/* ページャ（ブログCMSの <%page_link%> 出力）
   実出力：
     <div class="pages">
       <div class="page_prev"><a href="?p=0&…#cmsblog">&lt;&nbsp;前の1件</a></div>
       <div class="page_next"><a href="?p=2&…#cmsblog">次の1件&nbsp;&gt;</a></div>
     </div>
   数字のページリンクは出力されず「前の◯件／次の◯件」の2つのみ。
   デザインの数字ページャは再現できないため、ボタンの見た目（.kwo-pager__next）を踏襲する。
   1ページ目は page_next のみ、最終ページは page_prev のみが出力される。 */
.kwo-entrylist-cms .pages {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 44px;
}
.kwo-entrylist-cms .pages a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 18px;
  border: 1px solid var(--kwo-line3);
  color: var(--kwo-gray);
  font-size: 16.5px;
  letter-spacing: .08em;
  text-decoration: none;
  transition: border-color .3s ease, color .3s ease;
}
.kwo-entrylist-cms .pages a:hover { border-color: var(--kwo-navy); color: var(--kwo-navy); }

.kwo-side { min-width: 240px; }
.kwo-side__ttl {
  margin: 0 0 18px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: 21px;
  line-height: normal;
  color: var(--kwo-navy);
  letter-spacing: .14em;
  border-bottom: 1px solid var(--kwo-navy);
  padding-bottom: 12px;
}
.kwo-side__ttl--mt { margin-top: 44px; }
.kwo-side__post {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px 0;
  border-bottom: 1px solid var(--kwo-line2);
  text-decoration: none;
}
.kwo-side__date {
  font-family: var(--kwo-garamond);
  font-size: 17.5px;
  letter-spacing: .08em;
  color: var(--kwo-gray2);
}
.kwo-side__title { font-size: 17.5px; line-height: 1.8; color: var(--kwo-ink2); }
.kwo-side__archive {
  display: block;
  padding: 12px 0;
  border-bottom: 1px solid var(--kwo-line2);
  font-family: var(--kwo-garamond);
  font-size: 18px;
  letter-spacing: .06em;
  color: var(--kwo-ink2);
  text-decoration: none;
}
.kwo-side__post:hover .kwo-side__title,
.kwo-side__archive:hover { color: var(--kwo-red); }

/* 月別アーカイブ（ブログCMS output_blog_entry_month_ajax.php の出力）
   実出力：<ul><li><a href="entry_list.php?d=2026-08">2026年08月（3）</a></li></ul>
   クラスが一切付かないため要素セレクタで .kwo-side__archive と同じ体裁にする。
   ラベル文字列（「2026年08月（3）」）はCMS固定でテンプレート化できない。
   ul,ol は main.css で list-style:none 済み、* リセットで margin/padding も 0 */
.kwo-side__archives a {
  display: block;
  padding: 12px 0;
  border-bottom: 1px solid var(--kwo-line2);
  font-family: var(--kwo-garamond);
  font-size: 18px;
  letter-spacing: .06em;
  color: var(--kwo-ink2);
  text-decoration: none;
}
.kwo-side__archives a:hover { color: var(--kwo-red); }

.kwo-entry__meta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-bottom: 18px; }
.kwo-entry__date {
  font-family: var(--kwo-garamond);
  font-size: 21px;
  color: var(--kwo-gray3);
  letter-spacing: .06em;
}
.kwo-entry__ttl {
  margin: 0 0 30px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  color: var(--kwo-navy);
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.7;
  letter-spacing: .06em;
  border-bottom: 1px solid var(--kwo-line);
  padding-bottom: 26px;
}
.kwo-entry__thumb {
  aspect-ratio: 16 / 9;
  background: var(--kwo-bg-img);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9aa5b8;
  font-family: var(--kwo-cormorant);
  font-size: 15px;
  letter-spacing: .2em;
  margin-bottom: 34px;
}
.kwo-entry__text { margin: 0 0 26px; font-size: 19.5px; line-height: 2.3; letter-spacing: .04em; color: var(--kwo-ink2); }

/* 記事本文（ブログCMS c=entry_body の出力）
   実出力：<div style="overflow: hidden;">本文<br /><br />本文</div>
   出力される div は inline style の overflow だけなので、
   タイポグラフィは .kwo-entry__text と同じ値をここで継承させる。
   CMSエディタが見出しやリストを吐くようになったら随時追加する */
.kwo-entry__body { font-size: 19.5px; line-height: 2.3; letter-spacing: .04em; color: var(--kwo-ink2); }
.kwo-entry__body p { margin: 0 0 26px; }
.kwo-entry__body p:last-child { margin-bottom: 0; }
.kwo-entry__body img { max-width: 100%; height: auto; }
.kwo-entry__body a { text-decoration: underline; }
.kwo-entry__box { background: var(--kwo-bg-box); padding: 26px 28px; margin-bottom: 26px; }
.kwo-entry__box-ttl {
  margin: 0 0 10px;
  font-family: var(--kwo-mincho);
  font-weight: 500;
  font-size: 22px;
  line-height: normal;
  color: var(--kwo-navy);
  letter-spacing: .08em;
}
.kwo-entry__box-text { margin: 0; font-size: 19px; line-height: 2; color: var(--kwo-ink2); }
.kwo-entry__back { display: flex; justify-content: center; margin-top: 52px; }
/* ==========================================================================
   14. レスポンシブ補正（デザインはPC基準。破綻する箇所のみ補正）
   ========================================================================== */
/* 切替点は元は899pxだったが、900〜999px では診療時間パネル（実寸約500px）の左端が
   MVコピー「最適な治療を。」の右端に重なって「を。」が隠れていたため 999px に引き上げた */
@media (max-width: 999px) {
  /* MVの外来診療時間：右下固定をやめ、MV下端に流し込む（position:relative で画像より前面に保つ） */
  .kwo-mv__hours { position: relative; right: auto; bottom: auto; box-shadow: none; }
  .kwo-hours--mv .kwo-hours__body { flex: 1 1 auto; overflow-x: auto; }
  /* この幅からパネル内が横スクロールになる。センター寄せだと外来担当表ボタンが
     スクロール後の位置（画面外）に来てしまうため、左寄せに戻す */
  .kwo-hours--mv .kwo-hours__linkwrap { text-align: left; }

  /* MVの写真の縦幅（トリミング調整用）
     ここを変えるだけで写真の見え方が変わる。
     元画像 yang_dr.jpg は 1920x1280（3:2 横長）。
     高くする → 左右が切れる ／ 低くする → 上下が切れる
     ※上の .kwo-mv__hours が通常フローに入るぶん .kwo-mv 全体が縦長になるため、
       inset:0 の写真枠を「診療時間パネルより上」だけに限定して高さを固定している。 */
  .kwo-mv { --kwo-mv-h: clamp(300px, 46vh, 420px); }
  .kwo-mv__slideshow,
  .kwo-mv__overlay { bottom: auto; height: var(--kwo-mv-h); }
  .kwo-mv__inner { min-height: var(--kwo-mv-h); padding-top: 24px; padding-bottom: 24px; }
}
@media (max-width: 639px) {
  /* 上部インフォメーションバー（青帯）はSPでは非表示。
     住所は footer、診療時間・TEL は SPナビ下部（.kwo-spnav__hours / __tel）で参照できる */
  .kwo-topbar { display: none; }
  /* PC用の改行はSPだと数文字の端切れ行を量産して改行位置の意味がなくなるため無効化 */
  .kwo-br-pc { display: none; }
  /* 当院について リード文：中央揃えは1行20文字前後だと行頭が揃わず読みにくいので左揃え。
     行間2.3も短い行では空きすぎるため詰める */
  /* PCは23pxだが、幅375px前後だと1行15文字を切って読みにくくなるので21pxに抑える
     （拡大前は19px。SPも一段大きくはしている） */
  .kwo-lead { text-align: left; line-height: 1.9; font-size: 21px; }
  /* 電話CTA帯（赤帯）のTELボタン：PC実数値のままだと実寸約285pxで
     幅320px端末（コンテンツ幅272px）からはみ出すため少し詰める */
  .kwo-telbtn { padding: 14px 22px; }
  .kwo-telbtn__num { font-size: 28px; }
  /* 英字見出しは nowrap のままだと画面幅を超えるため折り返しを許可 */
  .kwo-heading .heading__en,
  .kwo-heading .heading__ja { white-space: normal; }
  .kwo-step { grid-template-columns: 1fr; gap: 14px; }
  .kwo-docs__item { grid-template-columns: 110px 1fr; gap: 18px; }
  .kwo-dept__body { grid-template-columns: 1fr; gap: 20px; }
  .kwo-entrylist .blog-list__link { grid-template-columns: 1fr; gap: 4px; }
  .kwo-hours__body { overflow-x: auto; }

  /* MV下の外来診療時間パネル：SPはPC実数値のままだと表が幅375pxに収まらず
     横スクロールが出て縦にも嵩張るため、文字と余白を一段落として1画面に収める。
     縦書きラベル（.kwo-hours__label）は意匠なので維持し、幅だけ詰めている。 */
  .kwo-hours--mv .kwo-hours__label { padding: 10px 8px; font-size: 14px; letter-spacing: .2em; }
  .kwo-hours--mv .kwo-hours__body { padding: 12px; }
  .kwo-hours--mv .kwo-hours__table { width: 100%; font-size: 13px; }
  .kwo-hours--mv .kwo-hours__table th { padding: 0 3px 6px; font-size: 13px; }
  .kwo-hours--mv .kwo-hours__th-time { padding: 0 0 6px; width: 96px; }
  .kwo-hours--mv .kwo-hours__time { padding: 5px 0; font-size: 15px; }
  .kwo-hours--mv .kwo-hours__mark { padding: 5px 2px; font-size: 15px; }
  .kwo-hours--mv .kwo-hours__note { margin: 8px 0 0; font-size: 12px; line-height: 1.7; }
  .kwo-hours--mv .kwo-hours__linkwrap { margin: 8px 0 0; }
}

/* ==========================================================================
   15. 2026-08 修正依頼分（お知らせブロック / 特徴のリンク化 / 土曜表記 / 連携医療機関）
   ==========================================================================
   ---- 追加クラス ----
   .kwo-newsblock / __inner / __head / __ttl / __en / __all / __list
        TOPのお知らせ。従来の1行帯（.kwo-newsbar）を最新3件のブロックに拡張したもの。
        CMS出力の .kwo-newsbar__date / __link は引き続き使うため元の宣言は残してある
        （.kwo-newsbar / __inner / __body / __badge / __all は参照元が無くなった）
   .kwo-feat__body / __more / __note / __img--logo
        「当院の特徴」カードを div → a にしたことによる追加
   .kwo-hours__th-sat / __thnote
   .kwo-schedtable__thsat / __thsun / __thnote
   .kwo-hourstable__thsat / __mark--time / __timesub
   .kwo-network / __lead / __ttl / __list / __note / __ref
   ========================================================================== */

/* ---- アンカーリンク（index.php「当院の特徴」→ service.php の各ブロック）----
   ヘッダーが position:sticky なので、着地位置をヘッダーの高さぶん下げる */
.kwo-dept[id],
.kwo-treatment[id],
#network,
#schedule { scroll-margin-top: 104px; }

/* ---- TOP：お知らせ（最新3件）---- */
.kwo-newsblock { background: #fff; }
/* padding ショートハンドだと .kwo-container の左右ガター（--kwo-gutter）を 0 で潰すので上下だけ指定する */
.kwo-newsblock__inner { padding-top: clamp(36px, 4vw, 56px); padding-bottom: clamp(36px, 4vw, 56px); }
.kwo-newsblock__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 0 0 20px;
}
.kwo-newsblock__ttl {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 16px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: clamp(27px, 2.6vw, 35px);
  line-height: normal;
  letter-spacing: .1em;
  color: var(--kwo-navy);
}
.kwo-newsblock__en {
  font-family: var(--kwo-cormorant);
  font-weight: 500;
  font-size: 21px;
  letter-spacing: .18em;
  color: var(--kwo-blue);
  text-transform: uppercase;
}
.kwo-newsblock__all {
  flex: none;
  font-size: 18px;
  letter-spacing: .08em;
  color: var(--kwo-navy);
  border-bottom: 1px solid var(--kwo-blue);
  padding-bottom: 3px;
  text-decoration: none;
}
.kwo-newsblock__all:hover { color: var(--kwo-red); border-color: var(--kwo-red); opacity: 1; }

/* CMS（tag未指定のTOP用テンプレート）は日付spanとタイトルaのペアをフラットに返す。
   受け皿spanを display:contents にして、2カラムgridの各行に日付／タイトルを直接載せる */
.kwo-newsblock__list {
  display: grid;
  grid-template-columns: auto 1fr;
  border-top: 1px solid var(--kwo-line2);
}
.kwo-newsblock__list > span[id^="cms-blog-entry-list"] { display: contents; }
.kwo-newsblock__list .kwo-newsbar__date {
  padding: 20px 32px 20px 0;
  border-bottom: 1px solid var(--kwo-line2);
  font-size: 21px;
  white-space: nowrap;
}
.kwo-newsblock__list .kwo-newsbar__link {
  padding: 20px 0;
  border-bottom: 1px solid var(--kwo-line2);
  font-size: 21px;
  line-height: 1.7;
}

/* ---- TOP：当院の特徴（カード全体を診療案内へのリンクに）---- */
.kwo-feat { text-decoration: none; color: inherit; }
.kwo-feat:hover { opacity: 1; }
.kwo-feat__img img { transition: transform .5s ease; }
.kwo-feat:hover .kwo-feat__img img { transform: scale(1.05); }
.kwo-feat:hover .kwo-feat__ttl { color: var(--kwo-red); }
.kwo-feat__body { display: flex; flex-direction: column; flex: 1; }
.kwo-feat__note { margin: 12px 0 0; font-size: 15px; line-height: 1.9; color: var(--kwo-gray2); }
.kwo-feat__more {
  margin-top: auto;
  padding-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 15px;
  letter-spacing: .08em;
  color: var(--kwo-navy);
}
.kwo-feat__more::after {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--kwo-blue);
  transition: width .3s ease, background .3s ease;
}
.kwo-feat:hover .kwo-feat__more { color: var(--kwo-red); }
.kwo-feat:hover .kwo-feat__more::after { width: 34px; background: var(--kwo-red); }

/* 写真未手配の項目は「写真手配中」の文言を出さず、代わりにロゴを置く。
   素材が届いたら index.php の 'pending' => ... を 'img' => 'ファイル名' に
   差し替えるだけで通常の写真カードに戻る */
.kwo-feat__img--logo {
  display: flex;
  align-items: center;
  justify-content: center;
}
.kwo-feat__img--logo img {
  /* .kwo-feat__img img の width/height:100% + object-fit:cover を打ち消す */
  width: 62%;
  max-width: 250px;
  height: auto;
  object-fit: contain;
  opacity: .8;
}
/* 写真カードのホバー拡大はロゴには効かせない */
.kwo-feat:hover .kwo-feat__img--logo img { transform: none; }

/* ---- 土曜（9:00-13:00 の通し診療）を表の中で明示 ---- */
/* MV下の診療時間パネル */
.kwo-hours__th-sat { color: var(--kwo-navy); }
.kwo-hours__thnote {
  display: block;
  margin-top: 3px;
  font-family: var(--kwo-garamond);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--kwo-blue);
}
.kwo-hours__note strong { font-weight: 700; color: var(--kwo-navy); }

/* TOP：外来担当表（thead は濃紺地・白文字） */
.kwo-schedtable__thsat { color: #fff; }
.kwo-schedtable__thnote {
  display: block;
  margin-top: 4px;
  font-family: var(--kwo-garamond);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .02em;
  color: #a9bde0;
}
.kwo-sched__note strong { font-weight: 700; color: var(--kwo-navy); }

/* ご来院の方へ：診療時間表。土曜は rowspan=2 で1セルに統合して通し診療を示す */
.kwo-hourstable__thsat { color: #fff; }
.kwo-hourstable__mark--time {
  white-space: nowrap;
  font-family: var(--kwo-garamond);
  font-size: 22px;
  color: var(--kwo-red);
  letter-spacing: .02em;
  line-height: 1.4;
  background: #fdf7f7;
  border-left: 1px solid var(--kwo-line2);
  border-right: 1px solid var(--kwo-line2);
}
.kwo-hourstable__timesub {
  display: block;
  margin-top: 7px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 14px;
  color: var(--kwo-gray);
  letter-spacing: .04em;
  line-height: 1.6;
}
.kwo-hourstable__note strong { font-weight: 700; color: var(--kwo-navy); }

/* ---- 診療案内：連携医療機関 ---- */
.kwo-network__lead {
  margin: 0 auto 42px;
  max-width: 1000px;
  font-size: 18.5px;
  line-height: 2.2;
  letter-spacing: .04em;
  color: var(--kwo-ink2);
  text-align: center;
}
.kwo-network {
  margin: 0 auto;
  max-width: 1000px;
  background: #fff;
  border: 1px solid var(--kwo-line);
  padding: clamp(28px, 3.4vw, 46px);
}
/* 縦キャップは .kwo-subttl__cap をそのまま流用（同ページの「交通事故によるお怪我」等と同じ意匠）。
   .kwo-subttl 本体は使っていない。下線付きになるが、下のリストが行ごとに罫線を持つため線が重くなるので */
.kwo-network__ttl {
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  gap: 13px;
  font-family: var(--kwo-mincho);
  font-weight: 700;
  font-size: 22px;
  line-height: normal;
  letter-spacing: .08em;
  color: var(--kwo-navy);
}
.kwo-network__ref { color: var(--kwo-red); }
/* 箇条書き本体は .kwo-list / __item / __dot（doctor.php の「資格」と同じ）を流用。
   .kwo-list は flex-column なので、2カラムに並べるためここで grid に上書きする。
   .kwo-list より後に書いてあるので同一詳細度でこちらが勝つ */
.kwo-network__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 36px; }
.kwo-network__note { margin: 26px 0 0; font-size: 16.5px; line-height: 2; color: var(--kwo-gray); }

/* ---- 文字サイズを一段上げたことによるレスポンシブ補正 ---- */
/* 診療時間パネルは .kwo-hours（flex）の子。flexアイテムの既定 min-width:auto だと
   表の min-content 幅がそのまま親を押し広げ、overflow-x:auto が効かずページごと横に伸びる。
   文字を一段大きくして表の最小幅が増えたため min-width:0 を明示する */
.kwo-hours__body { min-width: 0; }
/* PCナビの切替点は main.css で 1100px。文字サイズ拡大でヘッダーが横に伸びるため
   前倒ししている（ロゴ36→44→52px・TEL19→22→24px・ナビ13→15→16.5px に伴い
   1100px → 1240px → 1340px）。ロゴ右端とナビ左端の余裕がゼロになるのが約1320pxなので
   20pxほど手前で切り替える。ヘッダーの実数値を変えたらこの値も見直すこと */
@media (max-width: 1340px) {
  .header__nav { display: none; }
  .nav-toggle { display: block; }
}
/* MV右下の診療時間パネルは文字拡大で実寸が約515px→610pxに広がった。
   1200px以下だとMVコピー「最適な治療を。」の右端に食い込むため、
   この帯域だけ拡大前の実数値に戻す（900px以下は下の @media で通常フローに落ちる） */
@media (max-width: 1200px) {
  .kwo-hours--mv .kwo-hours__label { padding: 22px 12px; font-size: 19px; }
  .kwo-hours--mv .kwo-hours__body { padding: 20px 24px; }
  .kwo-hours--mv .kwo-hours__table { font-size: 16.5px; }
  .kwo-hours--mv .kwo-hours__table th { padding: 0 8px 9px; font-size: 16.5px; }
  .kwo-hours--mv .kwo-hours__th-time { padding: 0 0 12px; width: 150px; }
  .kwo-hours--mv .kwo-hours__time { font-size: 21px; }
  .kwo-hours--mv .kwo-hours__mark { padding: 7px 8px; font-size: 19px; }
  .kwo-hours--mv .kwo-hours__note { margin: 13px 0 0; font-size: 14px; }
  .kwo-hours--mv .kwo-hours__linkwrap { margin: 11px 0 0; }
}
@media (max-width: 899px) {
  .kwo-network__list { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  /* ロゴ：SPのヘッダーは高さ60px（main.css）なのでPCの52pxは入らない */
  .kwo-header__logo img { height: 38px; }
  /* お知らせ：日付とタイトルの2カラムは幅が足りないので縦積みにする */
  .kwo-newsblock__list { grid-template-columns: 1fr; }
  .kwo-newsblock__list .kwo-newsbar__date {
    padding: 16px 0 0;
    border-bottom: none;
    font-size: 17px;
  }
  .kwo-newsblock__list .kwo-newsbar__link { padding: 5px 0 16px; font-size: 18px; }
  .kwo-newsblock__head { margin-bottom: 8px; }
  .kwo-network__lead { text-align: left; line-height: 1.95; font-size: 17px; }
  .kwo-hourstable__mark--time { font-size: 19px; }
}
