@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/


/* ===== もり鍼灸整骨院 カラー・フォント（正本） ===== */
:root{
  --mori-blue:#232397;       /* メイン：ロゴのロイヤルブルー */
  --mori-blue-deep:#181870;
  --mori-blue-tint:#f1f2fb;  /* 交互セクションの淡い青地 */
  --mori-sumi:#283039;       /* 本文 */
  --mori-base:#ffffff;
  --mori-beige:#f4efe3;      /* サブ：要所のみ */
  --mori-sand:#b0894f;       /* 差し色：細い線のみ */
  --mori-muted:#6b727c;
  --mori-line:#e3e8ef;
}

/* 本文＝ゴシック */
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--mori-sumi);
  line-height:1.95;
  letter-spacing:.02em;
}

/* 見出し＝明朝 */
h1,h2,h3,h4,h5,h6,
.post_content h1,.post_content h2,.post_content h3,.post_content h4{
  font-family:"Noto Serif JP",serif;
}

/* ===== 共通部品（トップ・下層で使い回し） ===== */

/* セクション見出し（英字ラベル＋明朝＋青の下線） */
.post_content h2.mori-h2{
  background:none; padding:0; margin:0 0 24px;
  font-weight:500; font-size:27px; line-height:1.6; text-align:center;
  color:var(--mori-blue); letter-spacing:.04em;
}
.mori-h2 .en{
  display:block; font-family:"Noto Sans JP"; font-size:11px;
  letter-spacing:.28em; color:var(--mori-blue); opacity:.55;
  font-weight:500; margin-bottom:10px;
}
.mori-h2.is-line:after{
  content:""; display:block; width:34px; height:2px;
  background:var(--mori-blue); margin:16px auto 0;
}

/* 交互セクションの地色・余白 */
.mori-sec{ padding:74px 0; }
.mori-sec--tint{ background:var(--mori-blue-tint); }
.mori-sec--beige{ background:var(--mori-beige); }

/* 共通ボタン */
.mori-btn{
  display:inline-block; background:var(--mori-blue); color:#fff !important;
  text-decoration:none; padding:14px 30px; border-radius:3px;
  letter-spacing:.1em; font-size:14px;
}
.mori-btn--ghost{
  background:#fff; color:var(--mori-blue) !important;
  border:1px solid var(--mori-blue);
}

/* ===== FV（ヒーロー） ===== */
.mori-fv{ background:#fff; border-bottom:1px solid var(--mori-line); }
.mori-fv__inner{ max-width:1060px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; min-height:520px; }
.mori-fv__copy{ display:flex; flex-direction:column; justify-content:center; padding:40px 46px 40px 22px; }
.mori-fv__place{ font-size:12px; letter-spacing:.3em; color:var(--mori-blue); opacity:.7; margin-bottom:22px; }
.mori-fv .mori-fv__h1{ font-weight:500; font-size:40px; line-height:1.7; color:var(--mori-blue); letter-spacing:.06em; margin:0; background:none; padding:0; }
.mori-fv__h1 span{ font-size:23px; display:block; margin-top:6px; color:var(--mori-sumi); }
.mori-fv__lead{ margin-top:26px; font-size:14.5px; color:var(--mori-sumi); line-height:2.1; max-width:34ch; }
.mori-fv__links{ margin-top:30px; display:flex; gap:18px; align-items:center; font-size:13.5px; flex-wrap:wrap; }
.mori-fv__tel{ text-decoration:none; color:var(--mori-blue); border-bottom:1px solid var(--mori-sand); padding-bottom:2px; }
.mori-fv__photo{ background:#cfdcec; display:flex; align-items:flex-end; color:#7d90a8; font-size:12px; }
.mori-fv__photo span{ padding:14px; }
@media(max-width:860px){
  .mori-fv__inner{ grid-template-columns:1fr; }
  .mori-fv__photo{ min-height:240px; order:-1; }
  .mori-fv__copy{ padding:44px 22px; }
  .mori-fv .mori-fv__h1{ font-size:30px; }
}

/* ===== ABOUT / OUR CARE セクション ===== */
.mori-wrap{ max-width:1060px; margin:0 auto; padding:0 22px; }
.mori-about{ text-align:center; padding:74px 0; background:#fff; }
.mori-about .mori-lead{ max-width:660px; margin:26px auto 0; font-size:15.5px; line-height:2.25; color:var(--mori-sumi); }
.mori-about .mori-lead b{ color:var(--mori-blue); font-weight:500; }
.mori-zig{ background:var(--mori-blue-tint); padding:74px 0; }
.mori-row{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.mori-row + .mori-row{ margin-top:34px; }
.mori-row:nth-child(even) .mori-row__ph{ order:2; }
.mori-row__ph{ background:#cfdcec; min-height:230px; display:flex; align-items:center; justify-content:center; color:#7d90a8; font-size:12px; border-radius:3px; }
.mori-row__n{ font-family:"Noto Serif JP",serif; font-size:13px; color:var(--mori-sand); letter-spacing:.2em; }
.mori-row__tx h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:21px; color:var(--mori-blue); margin:6px 0 12px; background:none; padding:0; }
.mori-row__tx p{ font-size:14.5px; color:var(--mori-sumi); }
@media(max-width:860px){
  .mori-row{ grid-template-columns:1fr; gap:18px; }
  .mori-row:nth-child(even) .mori-row__ph{ order:0; }
}

/* ===== STEP3-fix ===== */
/* SWELLの見出し上下ボーダー（::before）を打ち消す */
.post_content h2.mori-h2:before{ content:none; }

/* フルワイド内側の幅制限を、もりセクションのときだけ解除して地色を全幅に */
.swell-block-fullWide__inner.l-article:has(> .mori-about),
.swell-block-fullWide__inner.l-article:has(> .mori-zig){
  max-width:none;
  padding-left:0;
  padding-right:0;
}

/* ===== 症状から探す / 施術メニュー ===== */
.mori-symsec{ padding:74px 0; background:#fff; }
.mori-sym{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:38px; background:var(--mori-line); border:1px solid var(--mori-line); }
.mori-sym a{ background:#fff; text-decoration:none; color:var(--mori-sumi); padding:20px 10px; text-align:center; font-size:14px; transition:.15s; }
.mori-sym a:hover{ background:var(--mori-blue-tint); color:var(--mori-blue); }
.mori-menusec{ padding:74px 0; background:var(--mori-beige); }
.mori-menu{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; }
.mori-m{ background:#fff; border:1px solid var(--mori-line); }
.mori-m__ph{ background:#cfdcec; height:150px; display:flex; align-items:center; justify-content:center; color:#7d90a8; font-size:12px; }
.mori-m__b{ padding:22px; }
.mori-m__tag{ font-size:11px; color:var(--mori-sand); letter-spacing:.14em; border-bottom:1px solid var(--mori-sand); padding-bottom:2px; }
.mori-m__b h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:18px; color:var(--mori-blue); margin:10px 0 8px; background:none; padding:0; }
.mori-m__b p{ font-size:13.5px; color:var(--mori-muted); }
@media(max-width:860px){
  .mori-sym{ grid-template-columns:repeat(2,1fr); }
  .mori-menu{ grid-template-columns:1fr; }
}

/* この2セクションも地色を全幅に */
.swell-block-fullWide__inner.l-article:has(> .mori-symsec),
.swell-block-fullWide__inner.l-article:has(> .mori-menusec){
  max-width:none; padding-left:0; padding-right:0;
}

/* ===== 院長のこと / 患者さんの声 ===== */
.mori-docsec{ padding:74px 0; background:#fff; }
.mori-doc{ display:grid; grid-template-columns:.85fr 1.15fr; gap:44px; align-items:center; margin-top:44px; }
.mori-doc__ph{ background:#cfdcec; min-height:360px; display:flex; align-items:center; justify-content:center; color:#7d90a8; font-size:12px; }
.mori-doc__role{ font-size:12px; letter-spacing:.2em; color:var(--mori-blue); opacity:.7; }
.mori-doc__name{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:26px; color:var(--mori-blue); margin:8px 0 2px; }
.mori-doc__name small{ font-size:13px; color:var(--mori-muted); font-weight:400; margin-left:10px; letter-spacing:.05em; }
.mori-doc__tx p{ font-size:14.5px; margin-top:16px; line-height:2.15; color:var(--mori-sumi); }
.mori-doc__cred{ margin-top:20px; font-size:13px; color:var(--mori-blue); border-top:1px solid var(--mori-line); padding-top:16px; }
.mori-voicesec{ padding:74px 0; background:var(--mori-blue-tint); }
.mori-voice{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:40px; }
.mori-card{ background:#fff; border:1px solid var(--mori-line); padding:24px; position:relative; }
.mori-card:before{ content:""; position:absolute; top:12px; left:12px; right:12px; bottom:12px; border:1px dashed var(--mori-line); pointer-events:none; }
.mori-card__q{ font-family:"Noto Serif JP",serif; font-size:16px; color:var(--mori-blue); position:relative; }
.mori-card p{ font-size:13.5px; color:var(--mori-muted); margin-top:10px; position:relative; }
.mori-card__who{ font-size:12px; margin-top:14px; color:var(--mori-sumi); position:relative; }
.mori-disc{ text-align:center; font-size:11.5px; color:var(--mori-muted); margin-top:22px; }
@media(max-width:860px){
  .mori-doc{ grid-template-columns:1fr; gap:22px; }
  .mori-doc__ph{ min-height:260px; }
  .mori-voice{ grid-template-columns:1fr; }
}

/* この2セクションも地色を全幅に */
.swell-block-fullWide__inner.l-article:has(> .mori-docsec),
.swell-block-fullWide__inner.l-article:has(> .mori-voicesec){
  max-width:none; padding-left:0; padding-right:0;
}

/* ===== 料金・受付 / アクセス / 予約CTA ===== */
.mori-infosec{ padding:74px 0; background:#fff; }
.mori-info{ display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:40px; }
.mori-pane{ background:#fff; border:1px solid var(--mori-line); padding:28px; }
.mori-pane h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:17px; color:var(--mori-blue); margin-bottom:16px; background:none; padding:0; }
.mori-tbl{ width:100%; border-collapse:collapse; font-size:14px; }
.mori-tbl th,.mori-tbl td{ padding:10px 4px; border-bottom:1px solid var(--mori-line); }
.mori-tbl th{ text-align:left; color:var(--mori-muted); font-weight:400; }
.mori-tbl td{ text-align:right; color:var(--mori-blue); font-weight:500; }
.mori-hours th,.mori-hours td{ text-align:center; font-weight:400; color:var(--mori-sumi); }
.mori-hint{ font-size:12px; color:var(--mori-muted); margin-top:14px; }
.mori-flag{ display:inline-block; background:#eef5fc; border:1px solid #c9ddf1; color:#2c5c94; font-size:11px; padding:3px 9px; border-radius:2px; margin-top:8px; }
.mori-accsec{ padding:74px 0; background:var(--mori-blue-tint); }
.mori-acc{ display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:40px; }
.mori-acc__map{ background:#cfdcec; min-height:280px; display:flex; align-items:center; justify-content:center; color:#7d90a8; font-size:12px; }
.mori-acc__big{ font-family:"Noto Serif JP",serif; font-size:19px; color:var(--mori-blue); }
.mori-acc p{ font-size:14px; margin-bottom:8px; color:var(--mori-sumi); }
.mori-ctasec{ padding:74px 0; background:#fff; }
.mori-cta{ border:1px solid var(--mori-blue); padding:44px 24px; background:#fff; text-align:center; }
.mori-cta p{ font-size:14px; color:var(--mori-sumi); margin-top:10px; }
.mori-cta__row{ margin-top:26px; display:flex; gap:18px; justify-content:center; align-items:center; flex-wrap:wrap; }
.mori-cta__tel{ font-family:"Noto Serif JP",serif; font-size:26px; color:var(--mori-blue); }
@media(max-width:860px){
  .mori-info{ grid-template-columns:1fr; }
  .mori-acc{ grid-template-columns:1fr; }
}

.swell-block-fullWide__inner.l-article:has(> .mori-infosec),
.swell-block-fullWide__inner.l-article:has(> .mori-accsec),
.swell-block-fullWide__inner.l-article:has(> .mori-ctasec){
  max-width:none; padding-left:0; padding-right:0;
}

.mori-acc p.mori-acc__big{ font-size:19px; color:var(--mori-blue); }

/* ===== ヘッダー：電話・予約CTA ＋ 京都ディテール ===== */
.mori-hdcta{ display:flex; gap:18px; align-items:center; justify-content:center; padding:2px 0 12px; }
.mori-hdcta .tel{ font-family:"Noto Serif JP",serif; color:var(--mori-blue); font-size:18px; text-decoration:none; letter-spacing:.04em; line-height:1.2; }
.mori-hdcta .tel small{ font-family:"Noto Sans JP"; font-size:10px; color:var(--mori-muted); letter-spacing:.08em; display:block; text-align:center; margin-top:2px; }
.mori-hdcta .resv{ background:var(--mori-blue); color:#fff !important; text-decoration:none; font-size:13px; padding:10px 22px; border-radius:3px; letter-spacing:.08em; }

/* ナビ上に 藍→銅の極細ヘアライン＋市松ごく薄く */
.l-header.-parallel-bottom .l-header__gnav{ position:relative; }
.l-header.-parallel-bottom .l-header__gnav::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1.5px;
  background:linear-gradient(90deg,var(--mori-blue),var(--mori-sand)); }
.l-header.-parallel-bottom .l-header__gnav::after{
  content:""; position:absolute; top:1.5px; left:0; right:0; height:5px;
  background:repeating-linear-gradient(90deg,var(--mori-blue) 0 10px,transparent 10px 20px);
  opacity:.04; pointer-events:none; }

/* ナビの字組み（字間広め・ホバーは青＋銅の細い下線） */
.c-gnav > .menu-item > a{ letter-spacing:.08em; }
.c-gnav > .menu-item > a:hover .ttl{ color:var(--mori-blue); }
.c-gnav > .menu-item > a{ position:relative; }
.c-gnav > .menu-item > a:hover::after{
  content:""; position:absolute; left:12px; right:12px; bottom:6px; height:1px; background:var(--mori-sand); }

/* ===== ヘッダー STEP1-fix ===== */
/* ロゴを小さく（現在120pxは大きすぎ→高さで抑える） */
.c-headLogo__img{ max-height:64px; width:auto; }
.-parallel-bottom .l-header__logo{ padding:12px 0 6px; }

/* ナビ：字間を戻し、左右paddingを詰めて1280px内に収める */
.c-gnav > .menu-item > a{ letter-spacing:.02em; }
.c-gnav > .menu-item > a{ padding-left:12px; padding-right:12px; }
.c-gnav > .menu-item > a .ttl{ font-size:13.5px; }

/* 上帯：RSS/検索アイコンは消してすっきり */
.l-header__bar .c-iconList{ display:none; }

/* ナビ左右padding（SWELLの -parallel ルールに勝つ詳細度） */
.l-header.-parallel .l-header__gnav .c-gnav > .menu-item > a{ padding-left:10px; padding-right:10px; }

/* ===== ヘッダー STEP3：縦余白の圧縮 ===== */
.-parallel-bottom .l-header__logo{ padding:10px 0 4px; }
.l-header__cta, .-parallel .l-header__inner .head_box{ margin-top:4px; margin-bottom:4px; }
.-parallel .l-header__gnav{ margin-top:2px; }
/* ↑ 実DOM上のCTAラッパーは .w-header なので同値を適用（SWELL既定 margin:8px に勝つ詳細度） */
.-parallel .l-header__inner .w-header{ margin-top:4px; margin-bottom:4px; }

/* ロゴ枠の余白解消（--logo_size_pc 由来の固定高を解除） */
.c-headLogo{ height:auto; }

/* SPはロゴ枠の固定高を維持（--logo_size_sp） */
@media (max-width:959px){ .c-headLogo{ height:var(--logo_size_sp); } }

/* ===== 上帯：SEOキャッチはDOMに温存したまま、表示だけ来訪者向けに差し替え ===== */
.l-header__bar .c-catchphrase{ font-size:0; letter-spacing:0; }
.l-header__bar .c-catchphrase::before{
  content:"完全予約制 ／ 京都・北野白梅町";
  font-family:"Noto Sans JP",sans-serif;
  font-size:12px; letter-spacing:.12em; color:#fff; white-space:nowrap;
}

/* ===== SP下部：固定予約バー（電話 / LINE / ご予約） ===== */
.mori-fixbar{ display:none; }

@media (max-width:959px){
  .mori-fixbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:99;
    height:58px; background:#fff;
    border-top:1.5px solid var(--mori-sand);
    box-shadow:0 -2px 10px rgba(0,0,0,.08);
    transform:translateY(100%); opacity:0; pointer-events:none;
    transition:transform .25s ease, opacity .25s ease;
  }
  .mori-fixbar.is-visible{ transform:translateY(0); opacity:1; pointer-events:auto; }

  .mori-fixbar__btn{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
    text-decoration:none; font-size:11px; letter-spacing:.06em; line-height:1;
    min-height:48px;
  }
  .mori-fixbar__btn.-tel{ flex:3; background:#fff; color:var(--mori-blue); border-right:1px solid var(--mori-line); }
  .mori-fixbar__btn.-line{ flex:3; background:#fff; color:var(--mori-blue); border-right:1px solid var(--mori-line); }
  .mori-fixbar__btn.-resv{ flex:4; background:var(--mori-blue); color:#fff; }

  /* フッター最下部がバーに隠れないよう、バー高さ分の余白を確保 */
  body{ padding-bottom:58px; }
}

/* ===== YouTube実績バッジ（FV直下） ===== */
.mori-yt{ background:#fff; border-top:1px solid var(--mori-line); border-bottom:1px solid var(--mori-line); padding:15px 22px; text-align:center; }
.mori-yt__in{ max-width:1060px; margin:0 auto; display:flex; gap:14px; align-items:center; justify-content:center; flex-wrap:wrap; font-size:13.5px; color:var(--mori-sumi); letter-spacing:.04em; }
.mori-yt__lead{ font-family:"Noto Serif JP",serif; font-size:11px; letter-spacing:.24em; color:var(--mori-sand); }
.mori-yt__num{ font-family:"Noto Serif JP",serif; font-size:17px; color:var(--mori-blue); letter-spacing:.02em; }
.mori-yt__link{ font-size:12px; color:var(--mori-blue); text-decoration:none; border-bottom:1px solid var(--mori-sand); padding-bottom:2px; white-space:nowrap; }
@media(max-width:860px){
  .mori-yt{ padding:14px 18px; }
  .mori-yt__in{ gap:6px 12px; font-size:13px; line-height:1.9; }
  .mori-yt__num{ font-size:16px; }
}

/* DOCTOR内のYouTube段落・導線 */
.mori-doc__yt{ margin-top:18px; }
.mori-doc__yt .mori-btn{ font-size:13px; padding:11px 24px; }

/* 実績バッジも地色・罫線を全幅に（他セクションと同様） */
.swell-block-fullWide__inner.l-article:has(> .mori-yt){ max-width:none; padding-left:0; padding-right:0; }

/* ===== YouTubeラベルを固有名詞として表示（アイコン＋キャメルケース） ===== */
.mori-yt__lead{
  display:inline-flex; align-items:center; gap:5px;
  font-size:13px; letter-spacing:.02em; color:var(--mori-blue);
}
.mori-yt__icon{ flex:none; width:14px; height:14px; }


/* =========================================================
   下層ページ共通テンプレート v6「問いの文法」  prefix: mori-p-
   ・見出しは「問いの一文」のみ。英字ラベル・下線・罫線は使わない
   ・カードグリッド／連番／枠ボックスは使わない
   ・症状固有の値はCSSに書かない（全下層ページで使い回す）
   ========================================================= */

/* --- 問いの見出し（v6の核） --- */
.post_content h2.mori-p-q{
  background:none; border:none; padding:0; margin:56px 0 0;
  font-family:"Noto Serif JP",serif; font-weight:500;
  font-size:26px; line-height:1.7; letter-spacing:.04em; color:var(--mori-blue);
}
.post_content h2.mori-p-q:before,
.post_content h2.mori-p-q:after{ content:none; }

/* --- 本文 --- */
.mori-p-lead{ font-size:15.5px; line-height:2.15; color:var(--mori-sumi); margin:0; }
.mori-p-a{ font-size:14.5px; line-height:2.05; color:var(--mori-sumi); margin:16px 0 0; }
.mori-p-a b{ font-weight:700; }
.mori-p-a a{ color:var(--mori-blue); }
.mori-p-inlink{ display:inline-block; margin-top:14px; font-size:14px; color:var(--mori-blue);
  text-decoration:none; border-bottom:1px solid var(--mori-sand); padding-bottom:2px; }
.mori-p-soft{ font-size:14px; color:var(--mori-muted); line-height:1.95; margin-top:22px; }

/* --- 要点：上下の細い横罫で区切った定義リスト --- */
.mori-p-facts{ margin:30px 0 0; border-top:1px solid var(--mori-line); }
.mori-p-facts > div{
  display:grid; grid-template-columns:170px 1fr; gap:22px;
  padding:15px 2px; border-bottom:1px solid var(--mori-line);
  font-size:13.5px; line-height:1.9;
}
.mori-p-facts dt{ margin:0; color:var(--mori-blue); font-weight:700; }
.mori-p-facts dd{ margin:0; color:var(--mori-sumi); }

/* --- 動画 --- */
.mori-p-video{ margin-top:38px; }
.mori-p-video__grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.mori-p-video__frame{ position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:2px; overflow:hidden; }
.mori-p-video__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.mori-p-video__cap{ font-size:12.5px; color:var(--mori-muted); margin-top:10px; line-height:1.7; }
.mori-p-video__after{ margin-top:18px; font-size:13px; color:var(--mori-muted); line-height:1.9; }
.mori-p-video__after a{ color:var(--mori-blue); text-decoration:none; border-bottom:1px solid var(--mori-sand); padding-bottom:2px; }

/* --- 手順：連番を使わず順序語で見せる（所要時間は書かない） --- */
.mori-p-clock{ margin-top:38px; }
.mori-p-tick{ display:grid; grid-template-columns:96px 1fr; gap:28px; padding:22px 0; border-top:1px solid var(--mori-line); }
.mori-p-tick:last-child{ border-bottom:1px solid var(--mori-line); }
.mori-p-tick__t{ font-family:"Noto Serif JP",serif; font-size:14.5px; color:var(--mori-sand); letter-spacing:.14em; padding-top:3px; }
.mori-p-tick h4{ font-family:"Noto Serif JP",serif; font-size:18.5px; color:var(--mori-blue); margin:0 0 7px; font-weight:500; letter-spacing:.03em; }
.mori-p-tick p{ margin:0; font-size:14px; line-height:1.95; color:var(--mori-sumi); }

/* --- FAQ：記号も囲みも使わない。答えの下に細い横罫のみ。常時全文表示 --- */
.mori-p-faqline{ margin-top:16px; padding-bottom:22px; border-bottom:1px solid var(--mori-line); }

/* --- 関連ページ：1行1ページの行リスト --- */
.mori-p-rows{ margin-top:30px; border-top:1px solid var(--mori-line); }
.mori-p-row{
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center;
  padding:18px 4px; border-bottom:1px solid var(--mori-line);
  text-decoration:none; color:var(--mori-sumi); font-size:14.5px; transition:background .2s;
}
.mori-p-row:hover{ background:var(--mori-blue-tint); color:var(--mori-blue); }
.mori-p-row__go{ color:var(--mori-sand); font-size:18px; line-height:1; }

/* --- CTA：枠を使わず余白と文字の大小だけ --- */
.mori-p-book{ text-align:center; margin-top:16px; padding-top:8px; }
.mori-p-book p{ font-size:14.5px; line-height:2.05; color:var(--mori-muted); margin:20px 0 30px; }
.mori-p-book__hours{ margin-top:28px; font-size:13px; color:var(--mori-muted); line-height:2; }
.mori-p-book__hours b{ color:var(--mori-sumi); font-weight:500; }
.mori-p-book__tel{ display:inline-block; margin-top:10px; color:var(--mori-blue); text-decoration:none; font-size:15px; }

@media(max-width:860px){
  .post_content h2.mori-p-q{ font-size:22px; margin-top:44px; }
  .mori-p-facts > div{ grid-template-columns:1fr; gap:6px; }
  .mori-p-tick{ grid-template-columns:1fr; gap:8px; }
  .mori-p-video__grid{ grid-template-columns:1fr; }
}

/* SWELL既定の h4 装飾（左バー等）を打ち消す */
.post_content h4.mori-p-tick__h{ background:none; border:none; padding:0; }
.post_content h4.mori-p-tick__h:before,
.post_content h4.mori-p-tick__h:after{ content:none; }

/* =========================================================
   トップページ v6「問いの文法」
   ・見出しは問いの一文のみ（英字ラベル・3段見出し・罫線は使わない）
   ・濃い面はFVのみ。以降は白地
   ========================================================= */

/* --- 問いの見出し（トップ用） --- */
.post_content h2.mori-q{
  background:none; border:none; padding:0; margin:0;
  font-family:"Noto Serif JP",serif; font-weight:500;
  font-size:31px; line-height:1.75; letter-spacing:.045em; color:var(--mori-blue);
}
.post_content h2.mori-q:before,
.post_content h2.mori-q:after{ content:none; }
.post_content h2.mori-q.-sm{ font-size:26px; }
.mori-sec{ padding:82px 0; background:#fff; }
.mori-sec.-tight{ padding-top:0; }
.mori-a{ font-size:15.5px; line-height:2.15; margin:22px 0 0; max-width:40em; color:var(--mori-sumi); }
.mori-a b{ color:var(--mori-blue); font-weight:700; }

/* --- FV：唯一の濃い面 --- */
.mori-fv{ background:var(--mori-blue-deep); color:#fff; border-bottom:none; }
.mori-fv__inner{ max-width:1060px; margin:0 auto; display:grid; grid-template-columns:1fr 1.05fr;
  gap:44px; align-items:center; padding:58px 22px; min-height:0; }
.mori-fv .mori-fv__h1{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:38px;
  line-height:1.7; letter-spacing:.05em; margin:0; color:#fff; background:none; padding:0; }
.mori-fv .mori-fv__h1 span{ display:block; font-size:20px; color:#c2c6ee; margin-top:14px; }
.mori-fv__lead{ font-size:14px; line-height:2.05; color:#d6d9f2; max-width:32ch; margin:22px 0 0; }
.mori-fv__links{ margin-top:26px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.mori-fv__links .mori-btn{ background:#fff; color:var(--mori-blue-deep) !important; }
.mori-fv__tel{ color:#fff; text-decoration:none; font-size:13.5px;
  border-bottom:1px solid rgba(255,255,255,.4); padding-bottom:2px; }
.mori-fv__player{ position:relative; aspect-ratio:16/9; background:#000; border-radius:3px;
  overflow:hidden; box-shadow:0 20px 44px rgba(0,0,0,.4); }
.mori-fv__player iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.mori-fv__cap{ margin-top:11px; font-size:12px; color:#a9aee6; }

/* --- 実績：帯をやめ、ただの一文 --- */
.mori-oneline{ padding:26px 22px; text-align:center; font-size:14px; color:var(--mori-muted);
  background:#fff; border-top:1px solid var(--mori-line); border-bottom:1px solid var(--mori-line); }
.mori-oneline b{ font-family:"Noto Serif JP",serif; font-size:19px; color:var(--mori-blue);
  font-weight:500; margin:0 4px; }
.mori-oneline a{ color:var(--mori-blue); text-decoration:none; border-bottom:1px solid var(--mori-sand);
  padding-bottom:2px; margin-left:10px; font-size:13px; white-space:nowrap; }

/* --- 症状：カードをやめ、動画サムネの行リスト --- */
.mori-rows{ margin-top:40px; border-top:1px solid var(--mori-line); }
.mori-rowitem{ display:grid; grid-template-columns:190px 1fr auto; gap:26px; align-items:center;
  padding:20px 4px; border-bottom:1px solid var(--mori-line); text-decoration:none;
  color:inherit; transition:background .2s; }
.mori-rowitem:hover{ background:var(--mori-blue-tint); }
.mori-rowitem__th{ position:relative; aspect-ratio:16/9; border-radius:2px; overflow:hidden; background:#000; }
.mori-rowitem__th img{ width:100%; height:100%; object-fit:cover; opacity:.95; display:block; }
.mori-rowitem__th span{ position:absolute; left:7px; bottom:6px; background:rgba(15,15,61,.85);
  color:#fff; font-size:9.5px; letter-spacing:.08em; padding:3px 7px; border-radius:2px; }
.mori-rowitem h3{ font-family:"Noto Serif JP",serif; font-size:18px; color:var(--mori-blue);
  margin:0 0 5px; font-weight:500; letter-spacing:.04em; background:none; padding:0; }
.mori-rowitem p{ margin:0; font-size:13px; color:var(--mori-muted); line-height:1.8; }
.mori-rowitem__go{ color:var(--mori-sand); font-size:20px; line-height:1; }
.mori-more{ margin-top:22px; font-size:13.5px; line-height:2.1; color:var(--mori-muted); }
.mori-more a{ color:var(--mori-blue); text-decoration:none; border-bottom:1px solid var(--mori-line); }
.mori-more a:hover{ border-bottom-color:var(--mori-sand); }

/* --- 手順：連番をやめ順序語のみ（時間は書かない） --- */
.mori-clock{ margin-top:38px; }
.mori-tick{ display:grid; grid-template-columns:96px 1fr; gap:28px; padding:22px 0;
  border-top:1px solid var(--mori-line); }
.mori-tick:last-child{ border-bottom:1px solid var(--mori-line); }
.mori-tick__t{ font-family:"Noto Serif JP",serif; font-size:14.5px; color:var(--mori-sand);
  letter-spacing:.14em; padding-top:3px; }
.post_content h4.mori-tick__h{ font-family:"Noto Serif JP",serif; font-size:18.5px;
  color:var(--mori-blue); margin:0 0 7px; font-weight:500; letter-spacing:.03em;
  background:none; border:none; padding:0; }
.post_content h4.mori-tick__h:before,
.post_content h4.mori-tick__h:after{ content:none; }
.mori-tick p{ margin:0; font-size:14px; line-height:1.95; color:var(--mori-sumi); }

/* --- 院長：ジグザグをやめ、大きな引用ひとつ --- */
.mori-doctor{ background:var(--mori-blue-tint); padding:82px 0; }
.post_content h2.mori-quote{ font-family:"Noto Serif JP",serif; font-size:25px; line-height:2;
  color:var(--mori-blue); letter-spacing:.05em; margin:0; font-weight:500;
  background:none; border:none; padding:0; }
.post_content h2.mori-quote:before,
.post_content h2.mori-quote:after{ content:none; }
.mori-dbody{ display:grid; grid-template-columns:1fr 260px; gap:44px; align-items:start; margin-top:34px; }
.mori-dbody p{ font-size:14.5px; line-height:2.1; margin:0 0 16px; color:var(--mori-sumi); }
.mori-shield{ background:#dfe3ea; aspect-ratio:3/4; border-radius:2px; display:flex;
  align-items:flex-end; justify-content:center; color:#8b93a1; font-size:11.5px;
  padding:12px; text-align:center; line-height:1.7; }
.mori-dname{ margin-top:14px; font-size:13px; color:var(--mori-muted); text-align:center; line-height:1.9; }

/* --- 予約：枠をやめ、余白と文字だけ --- */
.mori-book{ text-align:center; background:#fff; padding:82px 22px; }
.mori-book p{ font-size:14.5px; line-height:2.05; color:var(--mori-muted); margin:20px 0 30px; }
.mori-book__hours{ margin-top:28px; font-size:13px; color:var(--mori-muted); line-height:2; }
.mori-book__hours b{ color:var(--mori-sumi); font-weight:500; }

/* --- フルワイド解除（v6セクション） --- */
.swell-block-fullWide__inner.l-article:has(> .mori-fv),
.swell-block-fullWide__inner.l-article:has(> .mori-oneline),
.swell-block-fullWide__inner.l-article:has(> .mori-sec),
.swell-block-fullWide__inner.l-article:has(> .mori-doctor),
.swell-block-fullWide__inner.l-article:has(> .mori-book){
  max-width:none; padding-left:0; padding-right:0;
}

@media(max-width:860px){
  .mori-fv__inner{ grid-template-columns:1fr; gap:28px; padding:40px 22px; }
  .mori-fv .mori-fv__h1{ font-size:29px; }
  .post_content h2.mori-q{ font-size:25px; }
  .post_content h2.mori-q.-sm{ font-size:22px; }
  .post_content h2.mori-quote{ font-size:21px; }
  .mori-sec, .mori-doctor, .mori-book{ padding:56px 0; }
  .mori-book{ padding:56px 22px; }
  .mori-rowitem{ grid-template-columns:130px 1fr; gap:16px; }
  .mori-rowitem__go{ display:none; }
  .mori-tick{ grid-template-columns:1fr; gap:8px; }
  .mori-dbody{ grid-template-columns:1fr; gap:28px; }
  .mori-shield{ max-width:240px; margin:0 auto; }
}

/* 院長セクションはモック準拠の極淡い紙色（隣の患者の声と面が連結しないように） */
.mori-doctor{ background:#fbfbfd; }

/* SWELL既定の h3 装飾（下線等）を打ち消す */
.post_content h3.mori-rowitem__h,
.post_content .mori-pane h3{ background:none; border:none; box-shadow:none; }
.post_content h3.mori-rowitem__h:before,
.post_content h3.mori-rowitem__h:after{ content:none; }

/* --- 症状の行リスト：遷移先を明示（サイト内ページへ飛ぶことを伝える） --- */
.mori-rowitem__th span{ letter-spacing:.04em; }
.mori-rowitem__go{
  color:var(--mori-blue); font-size:13px; line-height:1.7;
  white-space:nowrap; text-align:right;
}
.mori-rowitem__go i{ font-style:normal; color:var(--mori-sand); margin-left:4px; }
.mori-rowitem:hover .mori-rowitem__go{ text-decoration:underline; text-underline-offset:3px; }

@media(max-width:860px){
  /* SPでは省略せず、説明文の下に回り込ませる */
  .mori-rowitem{ grid-template-columns:130px 1fr; row-gap:8px; }
  .mori-rowitem__go{ display:block; grid-column:2; text-align:left; white-space:normal; }
}

/* --- 症状名の右に置く小ラベル（サムネイル上には何も重ねない） --- */
.mori-rowitem__th span{ display:none; }
.post_content h3.mori-rowitem__h{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:0 10px;
}
.mori-rowitem__tag{
  font-family:"Noto Sans JP",sans-serif; font-style:normal; font-weight:400;
  font-size:11px; color:var(--mori-sand); letter-spacing:.08em;
  background:none; border:none; padding:0;
}

/* =========================================================
   トップ：フルワイドブロックの包みを廃止したため、
   各セクションを post_content の幅制限から自力で解放する。
   （.post_content は900px。50%=450px、50vw=640px → 左右 -190px で画面幅に一致）
   ========================================================= */
.post_content > .mori-fv,
.post_content > .mori-oneline,
.post_content > .mori-sec,
.post_content > .mori-doctor,
.post_content > .mori-voicesec,
.post_content > .mori-book{
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  width:100vw;
}

/* --- 受診勧奨ブロック（医療機関の受診が必要な症状を伝える） ---
   銅は装飾線のみに使う原則を維持。本文級テキストは墨色、見出しのみ藍。 */
.mori-p-alert{
  margin:30px 0 0; padding:22px 24px;
  background:var(--mori-blue-tint);
  border-left:3px solid var(--mori-blue);
}
.mori-p-alert__t{
  font-family:"Noto Serif JP",serif; font-weight:500; font-size:16px;
  color:var(--mori-blue); letter-spacing:.03em; margin:0 0 10px;
}
.mori-p-alert p{ margin:0; font-size:14.5px; line-height:2.0; color:var(--mori-sumi); }
.mori-p-alert p + p{ margin-top:10px; }
.mori-p-alert b{ font-weight:700; }
@media(max-width:860px){
  .mori-p-alert{ padding:18px 18px; }
}

/* alert見出しは .mori-p-alert p (0,1,1) に負けるため詳細度を上げる */
.mori-p-alert p.mori-p-alert__t{ font-size:16px; color:var(--mori-blue); font-weight:500; margin:0 0 10px; }

/* 写真（症状ページ） */
.mori-p-photo{ margin:36px 0; }
.mori-p-photo img{ width:100%;height:auto;display:block;border-radius:2px; }

/* 動画1本のページ */
.mori-p-video__grid--single{ grid-template-columns:1fr; }
/* ==========================================================================
   もり鍼灸整骨院　下層ページ：読みやすさの調整　v1.3
   2026-09-15（v1.2から2箇所だけ変更）
   
   ★ v1.2で追記した部分を【全部削除】してから、このファイルを追記してください。
   ★ v1より前の既存610行（33,550バイト）は、1バイトも触りません。
   ========================================================================== */


/* --------------------------------------------------------------------------
   0. 幅を2つに整理する
   
   ★ v1.1では 本文595px / 見出し700px / メディア823px の【3段階】になり、
     右端が3本の線に見えていました。ご指摘のとおりです。
   
   見出しを本文にそろえて、【読む列】と【メディア】の2つにします。
   変数にまとめたので、今後はここだけ触れば全部が動きます。
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q){
  --mori-measure: 595px;   /* 本文・見出し・枠もの。約41字 */
  --mori-media:   823px;   /* 写真・動画。写真の実寸に合わせています */
}


/* --------------------------------------------------------------------------
   1. 読む列
   
   ★ v1.1では em 指定だったため、note(15.04px基準) と alert(16px基準) で
     44em の実寸が42pxずれていました。px（変数）に統一します。
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) :is(
  .mori-p-lead,
  .mori-p-a,
  .mori-p-faqline,
  .mori-p-soft,
  .mori-p-inlink,
  .mori-p-alert,
  .mori-p-note,
  h2.mori-p-q
){
  max-width: var(--mori-measure);
}


/* --------------------------------------------------------------------------
   2. メディア
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) :is(.mori-p-photo, .mori-p-video__grid){
  max-width: var(--mori-media);
}


/* --------------------------------------------------------------------------
   3. 動画の列数（v1.1から変更なし。下限付きで860px以下には効かせない）
   -------------------------------------------------------------------------- */

@media (min-width: 1101px){
  .mori-p-video__grid:has(> *:nth-child(3)){
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
  }
}

@media (min-width: 861px) and (max-width: 1100px){
  .mori-p-video__grid:has(> *:nth-child(3)){
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}


/* --------------------------------------------------------------------------
   4. セクションの切れ目（v1.1から変更なし）
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) h2.mori-p-q{
  margin-top: 4.5em;
  margin-bottom: 1.1em;
}

.post_content:has(.mori-p-q) :is(
  .mori-p-photo, .mori-p-video, .mori-p-alert, .mori-p-note, .mori-p-facts
) + h2.mori-p-q{
  margin-top: 3em;
}


/* --------------------------------------------------------------------------
   5. .mori-p-note
   
   ★ v1.1は 0.94em が .post_content(16px) 基準になり、15.04px ＝
     本文14.5pxより【大きく】なっていました。ご指摘のとおりです。
     .mori-p-a と同じ 14.5px になる値に直します。
   
   ★ v1.3で変更：0.906em → 14.5px の直指定。
     em は親（.post_content）のサイズ基準なので、SPでは14.13pxになり
     本文14.5pxより小さくなっていました。
     「em で本文に揃えようとすると、親のサイズが変わる場所で必ずずれる」
     というのはそのとおりです。note と alert の44em問題と同じ構図でした。
   
   ★ .mori-p-note b は21ページとも0件だったため、削除しました。
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) .mori-p-note{
  margin: 28px 0;
  padding: 2px 0 2px 18px;
  border-left: 3px solid #d8dae4;
  font-size: 14.5px;
  line-height: 1.9;
  color: #4a4e5c;
}


/* --------------------------------------------------------------------------
   6. ★新設：項目名を、説明から切り離す
   
   いまはこう見えています。
     「長時間、同じ姿勢でいる：長く座っていると骨盤まわりの筋肉が…」
   
   項目名を【ブロックにして改行】し、一覧として読めるようにします。
   
   HTML側で <b class="mori-p-item__t"> を付ける作業（127箇所）が
   先に必要です。CSSだけでは直せません。
   
   ※ 既存の .mori-p-a b（詳細度 0,1,1）に勝つため、
     .mori-p-a b.mori-p-item__t（0,2,1）で書いています。
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) .mori-p-a b.mori-p-item__t{
  display: block;
  margin-bottom: 0.3em;
  color: #232397;
  font-size: 1.02em;
  letter-spacing: 0.02em;
}

/* 項目の前に間隔を取る
   ★ v1.3で変更：.mori-p-item + .mori-p-item（隣り合うときだけ）では、
     項目の間に別の要素が挟まるページで効きませんでした。
     .mori-p-item 自身に持たせます。
     見出しの直後は、h2のmargin-bottom(1.1em)と相殺されて1.5emになります。 */
.post_content:has(.mori-p-q) .mori-p-item{
  margin-top: 1.5em;
}


/* --------------------------------------------------------------------------
   7. スマホ
   -------------------------------------------------------------------------- */

@media (max-width: 767px){
  .post_content:has(.mori-p-q){
    --mori-measure: none;
    --mori-media: none;
  }

  .post_content:has(.mori-p-q) h2.mori-p-q{
    margin-top: 3em;
    margin-bottom: 0.9em;
  }

  .post_content:has(.mori-p-q) .mori-p-note{
    padding-left: 14px;
  }

  .post_content:has(.mori-p-q) .mori-p-item{
    margin-top: 1.3em;
  }
}
/* ==========================================================================
   v1.4 の差し替え　v1.5
   2026-09-15
   
   ★ v1.4で追記した1ブロック（.mori-p-item__t + b）を【削除】してから、
      このブロックを足してください。
   ★ v1.3 までは1バイトも触りません。
   ========================================================================== */


/* --------------------------------------------------------------------------
   項目名の役目を引き継いだ <b> だけ、太さを落とす
   
   ★ v1.4 は `.mori-p-item__t + b` と書きましたが、
     CSSの `+` は【間のテキストを飛ばして】隣の要素を拾います。
     そのため「項目名の直後」と「文中の最初の強調」を区別できず、
     22件のつもりが65件に当たっていました。
   
     とくに「院長は【はり師・きゅう師・柔道整復師の3つの国家資格】を…」が
     細くなり、いちばん強調したい箇所が弱くなっていました。
   
   HTML側で目印（.mori-p-item__sub）を付けた22件だけを対象にします。
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) .mori-p-item__sub{
  font-weight: 500;
  color: #2b2f3c;
}
/* =========================================================
   もり鍼灸整骨院　子テーマCSS 追記 v1.6（差分）
   2026-09-16 ／ 情報ページ6本の実装にあたって追加
   ★ style.css の末尾に、この内容をそのまま追記してください
   ★ 既存の行は1バイトも変更しません
   ========================================================= */

/* --- 写真を横に並べる（2枚・3枚） -----------------------
   これまで写真は1枚ずつ縦に積むだけだった。
   プロフィールで「高校時代2枚」「免許証3枚」「活動3枚」を
   横に並べる必要が出たため新設する。
   列数はCSSが決める。HTML側では指定しない。
     PC（1101px以上）  3枚なら3列／2枚なら2列
     タブレット        2列
     スマホ（860px以下）1列
   ⚠️ 3列の指定は必ず min-width:1101px で囲むこと。
      :has() は最も詳細な引数の詳細度を取るため、囲まないと
      スマホの1列指定に勝ってしまう（v1で1度やらかしている）
   ------------------------------------------------------- */
.post_content:has(.mori-p-q) .mori-p-photos{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:36px 0;
  max-width:var(--mori-media);
}
@media (min-width:1101px){
  .post_content:has(.mori-p-q) .mori-p-photos:has(> *:nth-child(3)){
    grid-template-columns:1fr 1fr 1fr;
    gap:16px;
  }
}
@media (max-width:860px){
  .post_content:has(.mori-p-q) .mori-p-photos{
    grid-template-columns:1fr;
    gap:14px;
  }
}
/* 中の figure は自前の余白を持たない */
.post_content:has(.mori-p-q) .mori-p-photos .mori-p-photo{ margin:0; }
/* =========================================================
   もり鍼灸整骨院　子テーマCSS 追記 v1.7（差分）
   2026-09-18
   ★ style.css の末尾に、この内容をそのまま追記してください
   ★ 既存の行は1バイトも変更しません
   ========================================================= */

/* --- 1. FAQが続くところだけ、見出しの上の余白を詰める -------
   h2の上の余白 4.5em は「話題が変わる区切り」として入れたもの。
   FAQは問いが連続するので、同じ余白だと間延びする。
   よくあるご質問(865)は21問あり、余白だけで約2,900pxあった。

   ⚠️ 詳細度：既存は .post_content:has(.mori-p-q) h2.mori-p-q = (0,3,1)
              この規則は .mori-p-faqline を足して (0,4,1) なので勝つ。
   ⚠️ スマホの既存規則 .post_content h2.mori-p-q = (0,1,1) にも勝ってしまうため、
      スマホ用の値をここで別に指定する（既存の44px相当＝2em）。
   ------------------------------------------------------- */
.post_content:has(.mori-p-q) .mori-p-faqline + h2.mori-p-q{
  margin-top:2.6em;
}
@media (max-width:860px){
  .post_content:has(.mori-p-q) .mori-p-faqline + h2.mori-p-q{
    margin-top:2em;
  }
}

/* --- 2. 箇条書き -------------------------------------------
   これまで下層ページに箇条書きは無く、すべて段落に平坦化してきた。
   鍼の禁忌（19項目）のように「読み飛ばすと困るものを並べる」用途では、
   段落にすると読み落とす。ここだけ箇条書きを使えるようにする。

   ・記号は「・」ではなく短い横線。v6の文法（罫線と余白だけ）に合わせる
   ・SWELL既定の ul のマーカーと余白を打ち消す
   ------------------------------------------------------- */
.post_content:has(.mori-p-q) ul.mori-p-list{
  list-style:none;
  margin:14px 0 0;
  padding:0;
  max-width:var(--mori-measure);
}
.post_content:has(.mori-p-q) ul.mori-p-list > li{
  position:relative;
  margin:0 0 9px;
  padding:0 0 0 1.1em;
  font-size:14.5px;
  line-height:1.95;
  color:var(--mori-sumi);
  background:none;
  border:none;
}
.post_content:has(.mori-p-q) ul.mori-p-list > li:before{
  content:"";
  position:absolute;
  left:0;
  top:.9em;
  width:6px;
  height:1px;
  background:var(--mori-sand);
}
.post_content:has(.mori-p-q) ul.mori-p-list > li:after{ content:none; }
.post_content:has(.mori-p-q) ul.mori-p-list > li:last-child{ margin-bottom:0; }
/* =========================================================
   もり鍼灸整骨院　子テーマCSS 追記 v1.8（差分）
   2026-09-18
   ★ style.css の末尾に、この内容をそのまま追記してください
   ★ 既存の行は1バイトも変更しません
   ========================================================= */

/* --- 「あわせて、ご覧ください。」の余白を元に戻す -----------
   v1.7 で FAQ が続くところの見出し余白を詰めたが、
   関連ページの見出しは「最後のFAQの答えのすぐ後ろ」にあるため
   一緒に詰まってしまった。ここはFAQが終わって話題が変わる境目なので、
   広いままのほうがよい。

   「すぐ後ろに関連ページの一覧（.mori-p-rows）が続く見出し」だけを戻す。

   ⚠️ 詳細度：v1.7 の規則が (0,4,1)。
      この規則は :has(+ .mori-p-rows) を足して (0,5,1) なので勝つ。
   ------------------------------------------------------- */
.post_content:has(.mori-p-q) .mori-p-faqline + h2.mori-p-q:has(+ .mori-p-rows){
  margin-top:4.5em;
}
@media (max-width:860px){
  .post_content:has(.mori-p-q) .mori-p-faqline + h2.mori-p-q:has(+ .mori-p-rows){
    margin-top:3em;
  }
}
/* =========================================================
   もり鍼灸整骨院　子テーマCSS 追記 v1.9（差分）
   2026-09-18
   ★ style.css の末尾に、この内容をそのまま追記してください
   ★ 既存の行は1バイトも変更しません
   ========================================================= */

/* --- .mori-p-soft の中のリンクの色をそろえる ----------------
   本文のリンク（.mori-p-a a）は藍。
   .mori-p-soft の中にリンクを置いたのは投球数ページ（2132）の出典が初めてで、
   SWELL既定の明るい青のままになっていた。

   ⚠️ 詳細度：SWELL既定は .post_content a = (0,1,1)。
      この規則は (0,3,1) なので勝つ。
   ------------------------------------------------------- */
.post_content:has(.mori-p-q) .mori-p-soft a{
  color:var(--mori-blue);
}
/* =========================================================
   もり鍼灸整骨院　子テーマCSS 追記 v1.10（差分）修正版 v2
   2026-09-21
   ★ style.css の末尾に、この内容をそのまま追記してください
   ★ 既存の行は1バイトも変更しません
   ★ v1（mori_子テーマCSS_追記_v1_10_差分.css）は使いません
   ========================================================= */

/* --- トップ：銀の盾 -----------------------------------------
   .mori-shield は、写真が入る前の「灰色の仮置きの枠」として作られていた。
   写真が入ったので、背景と余白を外して写真をそのまま見せる。

   ★ aspect-ratio:3/4 は残す（v1では外していた）。
     SWELLの遅延読み込みは、読み込みが終わるまで1×1の仮画像を出すため、
     比率を外すと読み込み前は正方形になり、読み込み後に約87px下へずれる。

   写真が入っているときだけ効かせる（:has(> img)）。

   ⚠️ 詳細度：既存 .mori-shield = (0,1,0)
              この規則 .mori-shield:has(> img) = (0,1,1) なので勝つ。
   ------------------------------------------------------- */
.mori-shield:has(> img){
  background:none;
  padding:0;
  display:block;
}
.mori-shield > img{
  border-radius:2px;
}

/* --- 銀の盾の併記 -------------------------------------------
   本文と同じ 14.5px・濃い色・左寄せで出ていて、
   すぐ下の「院長　森 洋人」（13px・薄い色・中央）から浮いていた。

   ★ v1の誤り：.mori-shield__cap だけ (0,1,0) で書いたため、
     既存の .mori-dbody p (0,1,1) に負けて、ほぼ何も効かなかった。
   → .mori-dbody p.mori-shield__cap (0,2,1) にする。

   2つの文を span で分け、それぞれを1行にする。
   ------------------------------------------------------- */
.mori-dbody p.mori-shield__cap{
  margin:12px 0 0;
  font-size:12.5px;
  line-height:1.8;
  color:var(--mori-muted);
  text-align:center;
}
.mori-dbody p.mori-shield__cap > span{
  display:block;
}
@media (max-width:860px){
  .mori-dbody p.mori-shield__cap{
    max-width:240px;
    margin-left:auto;
    margin-right:auto;
  }
}

/* =========================================================
   もり鍼灸整骨院　子テーマCSS 追記 v1.11（差分）
   2026-09-22
   上帯のキャッチフレーズの「差し替え表示」をやめる。
   266〜272行目は、キャッチフレーズがキーワードの羅列だった頃に
   文字を大きさ0で隠し、::before で別の文を見せていた。
   キャッチフレーズを「京都・北野白梅町の鍼灸整骨院」に直したので、
   本物の文をそのまま見せる。

   見た目は ::before と同じ値にそろえる（変わるのは文言だけ）：
   font-family "Noto Sans JP" ／ 12px ／ 字間 .12em ／ #fff ／ nowrap
   （太さ 500・行の高さ 14px は、もともと親から受け継いだ同じ値）

   上帯の高さ：これまでの 27px は、大きさ0の親と 12px の ::before の
   基準線（ベースライン）のずれで、行が 19px に膨らんでいた結果だった。
   本物の文を出すと行は 14px になり、上帯が 22px に縮む（ロゴも5px上がる）。
   文字の位置はそのまま、下の余白だけ 4px → 9px にして 27px を保つ。

   ⚠️ 詳細度：既存と同じセレクタ（.l-header__bar .c-catchphrase = 0,2,0 ／
              ::before = 0,2,1）なので、後から書いたこちらが勝つ。
   ========================================================= */
.l-header__bar .c-catchphrase{
  font-family:"Noto Sans JP",sans-serif;
  font-size:12px;
  letter-spacing:.12em;
  color:#fff;
  white-space:nowrap;
  padding-bottom:9px;
}
.l-header__bar .c-catchphrase::before{
  content:none;
}

/* ==========================================================================
   v1.12　下層ページの幅を 720px の1列にそろえる（2026-09-22）
   ・本文・見出し・表・写真・動画・FAQ・関連ページ・ご予約を同じ幅 720px に。列はページ中央、ページタイトルも同じ列に
   ・.post_content は左右16pxの余白込みで幅を数えるため content-box にして、720px を文字の列そのものの幅にする
   ・1枚置きの写真は PC（768px以上）だけ 16:9。欠ける4枚は除外、頭・主役が切れる8枚は位置を個別に調整
   ========================================================================== */

.post_content:has(.mori-p-q){
  --mori-measure: 720px;
  --mori-media:   720px;
  box-sizing: content-box;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
body:has(.post_content .mori-p-q) .c-pageTitle{
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px){
  /* 1枚置きの写真：16:9
     ★ v1.21（2026-09-30）でメディアIDの名指しをやめました。移行でIDが変わると壊れたためです。
     除外は本文側の .mori-p-photo--full で指定します（地図6269／解説図60の2枚／2063） */
  .post_content:has(.mori-p-q) .mori-p-photo:not([style*="max-width"]):not(.mori-p-photos .mori-p-photo):not(.mori-p-photo--full) img{
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
  }

  /* 位置の調整（上を残して下を切る）。上の規則と同じセレクタ＋1クラスで勝たせる */
  .post_content:has(.mori-p-q) .mori-p-photo:not([style*="max-width"]):not(.mori-p-photos .mori-p-photo):not(.mori-p-photo--full).mori-p-photo--top img{
    object-position: center 0%;
  }
  .post_content:has(.mori-p-q) .mori-p-photo:not([style*="max-width"]):not(.mori-p-photos .mori-p-photo):not(.mori-p-photo--full).mori-p-photo--lower img{
    object-position: center 15%;
  }
}
@media (max-width: 767px){
  .post_content:has(.mori-p-q){ max-width: none; }
  body:has(.post_content .mori-p-q) .c-pageTitle{ max-width: none; }
}

/* ==========================================================================
   v1.13　表・FAQ・ご予約に「面」をつけ、節の区切りを入れる（2026-09-22）
   ・表（.mori-p-facts）に外枠と項目名の淡い青。FAQは問いと答えの2要素を1枚の白いカードに見せる（HTMLは変えない）
   ・ご予約（.mori-p-book。見出しは元から中にある）を淡い青の帯に。上に3pxの青い線
   ・節の見出しの上に細い罫線。文字は26px→24px（スマホは22pxのまま）
   数値はモック（mori_デザイン改修モック_幅と面_v1.html の body.plan）のまま。色はサイトの変数
   ⚠️ 詳細度：既存の h2 の規則は最大 (0,5,1)。ここは直下（>）と :has()/:not() を重ねて上回らせている
   ========================================================================== */

/* --- 1. 見出しの文字の大きさ（FAQの問い・ご予約の見出しは下で個別に指定） --- */
.post_content:has(.mori-p-q) > h2.mori-p-q{
  font-size: 24px;
}

/* --- 2. 節の区切り：見出しの上に細い罫線
   入れないもの：ページで最初の見出し／FAQの問い／ご予約の見出し（.mori-p-book の中なので直下に当たらない）／
               すぐ上に線のある .mori-p-rows・.mori-p-facts の直後 --- */
.post_content:has(.mori-p-q) > h2.mori-p-q ~ h2.mori-p-q:not(:has(+ .mori-p-faqline)):not(:is(.mori-p-rows, .mori-p-facts) + h2){
  margin-top: 72px;
  padding-top: 40px;
  border-top: 1px solid var(--mori-line);
}

/* --- 3. 表：外枠＋項目名の列に淡い青 --- */
.post_content:has(.mori-p-q) > .mori-p-facts{
  border: 1px solid var(--mori-line);
  border-radius: 4px;
  overflow: hidden;
}
.post_content:has(.mori-p-q) > .mori-p-facts > div{
  gap: 0;
  padding: 0;
}
.post_content:has(.mori-p-q) > .mori-p-facts > div:last-child{
  border-bottom: 0;
}
.post_content:has(.mori-p-q) > .mori-p-facts dt{
  background: var(--mori-blue-tint);
  padding: 15px 18px;
}
.post_content:has(.mori-p-q) > .mori-p-facts dd{
  background: #fff;
  padding: 15px 20px;
}
@media (min-width: 861px){
  .post_content:has(.mori-p-q) > .mori-p-facts > div{
    grid-template-columns: 180px 1fr;
  }
}

/* --- 4. FAQ：問い（h2）と答え（p）をつなげて1枚の白いカードに --- */
.post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline){
  position: relative;
  margin-top: 16px;
  margin-bottom: 0;
  padding: 22px 24px 0 62px;
  background: #fff;
  border: 1px solid var(--mori-line);
  border-bottom: 0;
  border-radius: 4px 4px 0 0;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: normal;
}
.post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline):not(.mori-p-faqline + h2){
  margin-top: 32px;
}
.post_content:has(.mori-p-q) > h2.mori-p-q + p.mori-p-faqline{
  position: relative;
  margin-top: 0;
  padding: 12px 24px 22px 62px;
  background: #fff;
  border: 1px solid var(--mori-line);
  border-top: 0;
  border-radius: 0 0 4px 4px;
  line-height: 2;
}
.post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline)::before,
.post_content:has(.mori-p-q) > h2.mori-p-q + p.mori-p-faqline::before{
  position: absolute;
  left: 24px;
  width: 26px;
  height: 26px;
  box-sizing: border-box;
  border: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  pointer-events: none;
}
.post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline)::before{
  content: "Q";
  top: 24px;
  background: var(--mori-blue);
  color: #fff;
}
.post_content:has(.mori-p-q) > h2.mori-p-q + p.mori-p-faqline::before{
  content: "A";
  top: 14px;
  background: var(--mori-beige);
  color: var(--mori-sand);
}

/* --- 5. ご予約：淡い青の帯。見出しも帯の中で中央に --- */
.post_content:has(.mori-p-q) > .mori-p-book{
  margin-top: 64px;
  padding: 48px 24px 44px;
  background: var(--mori-blue-tint);
  border-top: 3px solid var(--mori-blue);
}
.post_content:has(.mori-p-q) > .mori-p-book > h2.mori-p-q{
  margin-top: 0;
  max-width: none;
  text-align: center;
  font-size: 24px;
}
.post_content:has(.mori-p-q) > .mori-p-book > .mori-btn{
  padding: 16px 44px;
}

/* --- スマホ --- */
@media (max-width: 860px){
  .post_content:has(.mori-p-q) > h2.mori-p-q{
    font-size: 22px;
  }
  .post_content:has(.mori-p-q) > .mori-p-facts > div{
    grid-template-columns: 1fr;
  }
  .post_content:has(.mori-p-q) > .mori-p-facts dt{
    padding: 10px 14px;
  }
  .post_content:has(.mori-p-q) > .mori-p-facts dd{
    padding: 12px 14px;
  }
}
@media (max-width: 767px){
  .post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline){
    padding: 18px 16px 0 54px;
    font-size: 18px;
  }
  .post_content:has(.mori-p-q) > h2.mori-p-q + p.mori-p-faqline{
    padding: 12px 16px 18px 54px;
  }
  .post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline)::before,
  .post_content:has(.mori-p-q) > h2.mori-p-q + p.mori-p-faqline::before{
    left: 16px;
  }
  .post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline)::before{
    top: 20px;
  }
  .post_content:has(.mori-p-q) > .mori-p-book{
    padding: 36px 16px;
  }
  .post_content:has(.mori-p-q) > .mori-p-book > h2.mori-p-q{
    font-size: 20px;
  }
}

/* ==========================================================================
   v1.14　スマホの節の間隔を詰める（2026-09-22）
   ・罫線のある節の見出し（v1.13 の「2. 節の区切り」）を、767px以下だけ 線の上48px・線から文字まで28px に
   ・PC（72px／40px）と罫線そのものは変えない
   ⚠️ 詳細度：v1.13 と同じセレクタ（0,6,3）。後ろに書いたこちらが勝つ
   ========================================================================== */
@media (max-width: 767px){
  .post_content:has(.mori-p-q) > h2.mori-p-q ~ h2.mori-p-q:not(:has(+ .mori-p-faqline)):not(:is(.mori-p-rows, .mori-p-facts) + h2){
    margin-top: 48px;
    padding-top: 28px;
  }
}

/* ==========================================================================
   v1.15　「よくあるご質問」の見出しから最初のQ&Aカードまでの余白を詰める（2026-09-23）
   ・最初のカードの上の余白を 32px → 26px（767px以下は 20px）
   ・ほかの見出しの下の余白（26.4px／19.8px）にそろえる
   ⚠️ 詳細度：v1.13 と同じセレクタ（0,7,3）。後ろに書いたこちらが勝つ
   ========================================================================== */
.post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline):not(.mori-p-faqline + h2){
  margin-top: 26px;
}
@media (max-width: 767px){
  .post_content:has(.mori-p-q) > h2.mori-p-q:has(+ .mori-p-faqline):not(.mori-p-faqline + h2){
    margin-top: 20px;
  }
}

/* ==========================================================================
   v1.16　FAQの始まりの見出しだけ、一覧・表の直後でも罫線を入れる（2026-09-23）
   ・v1.13 の「.mori-p-rows / .mori-p-facts の直後は罫線なし」の例外
   ・対象は「次が問い、その次が答え」＝FAQが始まる位置にある見出しだけ（文字列では判定しない）
   ・値は v1.13／v1.14 と同じ（PC 72px／40px、767px以下 48px／28px）
   ⚠️ 詳細度：(0,6,2)。v1.13 の規則は :not() で当たらないため競合しない
   ========================================================================== */
.post_content:has(.mori-p-q) > :is(.mori-p-rows, .mori-p-facts) + h2.mori-p-q:has(+ h2.mori-p-q + .mori-p-faqline){
  margin-top: 72px;
  padding-top: 40px;
  border-top: 1px solid var(--mori-line);
}
@media (max-width: 767px){
  .post_content:has(.mori-p-q) > :is(.mori-p-rows, .mori-p-facts) + h2.mori-p-q:has(+ h2.mori-p-q + .mori-p-faqline){
    margin-top: 48px;
    padding-top: 28px;
  }
}

/* ==========================================================================
   v1.17　スマホのヘッダー直下に診療時間の帯（2026-09-23）
   ・SWELLの「お知らせバー」（設定＝ヘッダー下部に表示）の見た目を、サイトの色に合わせる
   ・PC（960px以上）には出さない。PCはヘッダーCTAに同じ内容が出ている
   ・区切りの「／」はCSSで入れる（設定の文言には書かない）。かたまりの途中では折り返さない
   ・打ち消し：SWELLの重ね色（.c-infoBar::before）、既定の文字色・行間・左右そろえ
   ========================================================================== */
@media (min-width: 960px){
  .c-infoBar{ display: none; }
}
@media (max-width: 959px){
  .c-infoBar{
    background: var(--mori-blue-tint);
    border-bottom: 1px solid var(--mori-line);
    padding: 7px 10px;
    box-shadow: none;
  }
  .c-infoBar::before{ content: none; }
  .c-infoBar__text{
    display: block;
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: .02em;
    color: var(--mori-sumi);
    text-align: center;
  }
  .c-infoBar__text b{
    color: var(--mori-blue);
    font-weight: 700;
  }
  .c-infoBar__text > span{
    white-space: nowrap;   /* かたまりの途中で折り返さない */
  }
  .c-infoBar__text > span:not(:last-child)::after{
    content: "／";
    color: var(--mori-muted);
    margin: 0 .15em;
  }
}


/* ==========================================================================
   v1.18　フッターの組み直し（2026-09-25）
   ・3列を「院の情報 ／ 受付時間・案内 ／ サイト内のご案内」に組み直す
   ・下段に「発信・お問い合わせ」の1行（全幅・中央ぞろえ）を出す
   ・861px以上＝3列（1.1 : 1 : 1）／860px以下＝1列に積む

   ■ 下段を全幅にする仕組み
   SWELLのフッターは footer_box1〜3 の下に枠が無い。そこで「発信」の1行は
   footer_box3 の末尾（メニューの下）に置き、3列目の箱だけ display:contents で
   「箱を無いことにして」中の2つ（メニュー／発信）を直接の升目にする。
   升目は 1:box1 2:box2 3:メニュー 4:発信 となり、4つ目を grid-column:1/-1 で
   2段目いっぱいに広げる。HTMLの並びは変えない。

   ■ 打ち消すSWELLの既定（実測値）
   .w-footer          display:flex / justify-content:space-between / padding:0 48px
   .w-footer__box     padding:16px / flex:1 1 0
   .c-widget__title   font-size:16px / padding:8px / ::before,::after の下線
   .c-listMenu a      padding:12px 16px 12px 24px / ::before の icomoon 矢印
   フッター内のリンク色 #333
   ========================================================================== */

/* ---- 枠と余白 ---- */
.l-footer__widgetArea{ padding: 34px 0 26px; }

.w-footer.-col3{
  display: grid;
  grid-template-columns: 1fr;
  gap: 26px;
  align-items: start;
  font-size: 13px;
  line-height: 1.9;
}
.w-footer.-col3 > .w-footer__box{ padding: 0; margin: 0; width: auto; }
.w-footer.-col3 > .w-footer__box:nth-child(3){ display: contents; }
.w-footer.-col3 .c-widget:has(.mori-f-social){ grid-column: 1 / -1; }

@media (min-width: 861px){
  .w-footer.-col3{
    grid-template-columns: 1.1fr 1fr 1fr;
    gap: 30px;
  }
}

/* ---- 列の見出し（SWELLの既定を打ち消して作り直す） ---- */
.w-footer.-col3 .c-widget__title.-footer{
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--mori-blue);
  margin: 0 0 10px;
  padding: 0 0 7px;
  border-bottom: 1px solid var(--mori-line);
  overflow: visible;
}
.w-footer.-col3 .c-widget__title.-footer::before,
.w-footer.-col3 .c-widget__title.-footer::after{ content: none; }

/* ---- 1列目：院の情報 ---- */
.w-footer .mori-f-name{
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--mori-blue);
  margin: 0 0 10px;
}
.w-footer .mori-f-addr{ margin: 0 0 14px; line-height: 1.9; }
.w-footer .mori-f-btns{ margin: 0; line-height: 1.6; }
.w-footer .mori-f-btn{
  display: inline-block;
  border: 1px solid var(--mori-blue);
  border-radius: 3px;
  color: var(--mori-blue);
  text-decoration: none;
  font-size: 12.5px;
  padding: 7px 14px;
  margin: 0 8px 8px 0;
}
.w-footer .mori-f-btn:hover{ background: var(--mori-blue); color: #fff; }

/* ---- 2列目：受付時間・案内 ---- */
.w-footer .mori-f-hours{ margin: 0 0 12px; line-height: 2; }
.w-footer .mori-f-links{ margin: 0; line-height: 2; }
.w-footer .mori-f-links a{ color: var(--mori-blue); text-decoration: none; }
.w-footer .mori-f-links a:hover{ text-decoration: underline; }

/* ---- 3列目：サイト内のご案内（メニュー） ---- */
.w-footer.-col3 .c-listMenu ul{ margin: 0; padding: 0; list-style: none; }
.w-footer.-col3 .c-listMenu li{ border-bottom: 1px solid var(--mori-line); }
.w-footer.-col3 .c-listMenu a{
  display: block;
  padding: 9px 2px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--mori-sumi);
  text-decoration: none;
}
.w-footer.-col3 .c-listMenu a:hover{ color: var(--mori-blue); }
.w-footer.-col3 .c-listMenu a::before{
  content: "›";
  font-family: "Noto Sans JP", sans-serif;
  color: var(--mori-sand);
  margin-right: 8px;
  position: static;
  font-size: 13px;
}

/* ---- 下段：発信・お問い合わせ ---- */
.w-footer .mori-f-social{
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid var(--mori-line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 22px;
  line-height: 1.6;
}
.w-footer .mori-f-social > span{
  font-size: 11.5px;
  letter-spacing: .06em;
  color: var(--mori-muted);
}
.w-footer .mori-f-social a{
  font-size: 12.5px;
  color: var(--mori-blue);
  text-decoration: none;
}
.w-footer .mori-f-social a:hover{ text-decoration: underline; }
@media (max-width: 860px){
  .w-footer .mori-f-social{ flex-direction: column; gap: 9px; }
}


/* ==========================================================================
   v1.19　フッターの仕上げ（2026-09-26）
   モック：Claude/mori_フッター仕上げ_モック_v2.html（「案」）
   ・院名の下の一言（.mori-f-tag）と、受付時間の下の一言（.mori-f-note）
   ・インターネット予約のボタンを青い塗りに（電話は枠線のまま）
   ・861px以上は列のあいだに細い縦線、860px以下は列の上に横線
   ・発信の行とコピーライトに淡い青（--mori-blue-tint）の面を敷く

   ■ v1.18 の仕組みは壊さない
   .w-footer.-col3 は grid のまま。3列目の箱の display:contents も、
   発信の行の grid-column:1/-1（全幅）もそのまま使う。
   ここでは gap を 0 にして、そのぶんを列の padding と罫線に置き換える。

   ■ 列の対応（3列目の箱は display:contents なので、中の2つが升目）
   1列目 = .w-footer__box:nth-child(1)   2列目 = :nth-child(2)
   3列目 = .widget_nav_menu              下段  = .c-widget:has(.mori-f-social)

   ■ 打ち消すSWELLの既定（実測）
   .l-footer__foot   padding:16px 0
   .copyright        文字色 #333・左右そろえは継承
   ========================================================================== */

/* ---- 1列目に足した一言 ---- */
.w-footer .mori-f-name{ margin-bottom: 4px; }
.w-footer .mori-f-tag{
  margin: 0 0 12px;
  font-size: 11.5px;
  line-height: 1.7;
  letter-spacing: .04em;
  color: var(--mori-muted);
}

/* ---- 2列目に足した一言 ---- */
.w-footer .mori-f-note{
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.9;
  color: var(--mori-muted);
}
.w-footer .mori-f-links{ margin-top: 12px; }

/* ---- インターネット予約のボタンだけ青い塗りに ---- */
.w-footer .mori-f-btn--fill{
  background: var(--mori-blue);
  border-color: var(--mori-blue);
  color: #fff;
}
.w-footer .mori-f-btn--fill:hover{
  background: var(--mori-blue-deep);
  border-color: var(--mori-blue-deep);
  color: #fff;
}

/* ---- 列の区切り（gap をやめて padding と罫線に置き換える） ---- */
@media (min-width: 861px){
  .w-footer.-col3{ gap: 0; }
  .w-footer.-col3 > .w-footer__box:nth-child(1){ padding: 0 26px 0 0; }
  .w-footer.-col3 > .w-footer__box:nth-child(2){
    padding: 0 26px;
    border-left: 1px solid var(--mori-line);
  }
  .w-footer.-col3 .c-widget.widget_nav_menu{
    padding: 0 0 0 26px;
    border-left: 1px solid var(--mori-line);
  }
}
@media (max-width: 860px){
  .w-footer.-col3{ gap: 0; }
  .w-footer.-col3 > .w-footer__box{ padding: 0 0 24px; }
  .w-footer.-col3 > .w-footer__box:nth-child(2){
    padding-top: 22px;
    border-top: 1px solid var(--mori-line);
  }
  .w-footer.-col3 .c-widget.widget_nav_menu{
    padding: 22px 0 24px;
    border-top: 1px solid var(--mori-line);
  }
}

/* ---- 下段：発信の行とコピーライトに淡い青の面 ---- */
.w-footer.-col3 .c-widget:has(.mori-f-social){
  margin-top: 24px;
  padding: 14px 24px;
  background: var(--mori-blue-tint);
}
.w-footer .mori-f-social{
  margin: 0;
  padding-top: 0;
  border-top: 0;
}
@media (max-width: 767px){
  .w-footer.-col3 .c-widget:has(.mori-f-social){ padding: 14px 16px; }
}

/* 発信の行とコピーライトを続けて1枚の面に見せる */
.l-footer__widgetArea{ padding: 34px 0 0; }
.l-footer__foot{ padding-top: 0; }
.l-footer__foot .copyright{
  margin: 0;
  padding: 12px 24px 16px;
  background: var(--mori-blue-tint);
  text-align: center;
  font-size: 11.5px;
  line-height: 1.8;
  color: var(--mori-muted);
}


/* ==========================================================================
   v1.20　項目名の文字を少し大きく（2026-09-30）

   本番切替後の見直し。項目名（<b class="mori-p-item__t">）が、
   すぐ下の説明文と同じ大きさに見えて、一覧としての段差が弱いため。

   ■ 変更前（v1.2 のブロック・style.css 742行目付近）
     .post_content:has(.mori-p-q) .mori-p-a b.mori-p-item__t{
       display: block;
       margin-bottom: 0.3em;
       color: #232397;
       font-size: 1.02em;        ← これを上書きする
       letter-spacing: 0.02em;
     }

   ■ 上の行は1バイトも触らず、末尾で font-size だけ上書きする。
     詳細度は同じ（0,2,1）なので、あとに書いたこちらが勝つ。

   ■ 実測（1440px）
     変更前 14.79px（1.02em）→ 変更後 15.95px（1.1em）
     行の高さ 30.32px は line-height 継承のため変わらない。

   ■ 当たる範囲：公開中の固定ページ28本・181件
     （28本すべてに .mori-p-q があるので :has() の条件は満たす）
   ========================================================================== */

.post_content:has(.mori-p-q) .mori-p-a b.mori-p-item__t{font-size:1.1em}


/* ==========================================================================
   v1.21　写真の幅・目次・フッターの面（2026-09-30）
   モック：Claude/mori_デザイン修正モック_写真・目次・フッター_v2.html

   ■ あわせて v1.12（1067〜1084行）を直接書き換えています
     画像のメディアIDによるクラスの名指しをやめ、本文のクラスで指定する形にしました。
     STEP102のID付け替えで6件が効かなくなったためです。
       .mori-p-photo--full   16:9の切り抜きをかけない（地図6269／解説図60×2／2063）
       .mori-p-photo--top    object-position: center 0%
       .mori-p-photo--lower  object-position: center 15%
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. 変数を足す
   -------------------------------------------------------------------------- */

:root{
  /* 1枚置きの写真の幅。横並び（.mori-p-photos）は --mori-media（720px）のまま */
  --mori-media-solo: 600px;

  /* フッター専用。--mori-blue-tint(#f1f2fb) は本文側15か所で使っているので触らない */
  --mori-footer-bg:     #eef1f8;
  --mori-footer-accent: #e4e9f4;
}


/* --------------------------------------------------------------------------
   2. 単独の写真だけ 600px（横並びは 720px のまま）

   ★ figure と img の両方に掛けています。
     figure だけだと、本文に style="max-width:800px" が書いてある写真が
     インラインに勝たれて 720px のままになるためです。
     img 側の max-width なら「インラインの値と600pxの小さいほう」になります。
   -------------------------------------------------------------------------- */

.post_content:has(.mori-p-q) .mori-p-photo:not(.mori-p-photos .mori-p-photo){
  max-width: var(--mori-media-solo);
}
.post_content:has(.mori-p-q) .mori-p-photo:not(.mori-p-photos .mori-p-photo) img{
  max-width: var(--mori-media-solo);
}

/* スマホは従来どおり画面幅いっぱい */
@media (max-width: 767px){
  .post_content:has(.mori-p-q){
    --mori-media-solo: none;
  }
}


/* --------------------------------------------------------------------------
   3. 目次（easy-table-of-contents 2.0.88）

   ★ プラグインは #ez-toc-container（ID・詳細度 1,0,0）と、
     <style id="eztoc-inline-css"> の div#ez-toc-container …（1,1,1 / 1,0,4）で
     指定しています。こちらも ID を含め、詳細度で上回る形で書いています。
   ★ 開閉の仕組み（input[type=checkbox]:checked + nav{display:none}）は触りません。
   -------------------------------------------------------------------------- */

/* 箱。[class] を付けて .ez-toc-light-blue（1,1,0）より強くする */
div#ez-toc-container[class]{
  display: block;
  width: auto;
  max-width: var(--mori-media-solo);
  background: var(--mori-blue-tint);
  border: 1px solid #dfe3ea;
  border-left: 3px solid #232397;
  border-radius: 4px;
  box-shadow: none;
  padding: 16px 20px;
}

/* 見出し「このページの内容」 */
div#ez-toc-container p.ez-toc-title{
  display: inline-block;
  font-size: 15px;
  font-weight: 700;
  color: #232397;
  letter-spacing: .04em;
  line-height: 1.5;
}

/* 見出しと中身のあいだ */
div#ez-toc-container nav{
  margin-top: 8px;
}

/* 項目 */
div#ez-toc-container nav ul li{
  font-size: 13.8px;
  line-height: 1.85;
  color: #444;
}
div#ez-toc-container nav ul li a.ez-toc-link{
  font-size: 13.8px;
  font-weight: 400;
  color: #2b4a8a;
  text-decoration: none;
}
div#ez-toc-container nav ul li a.ez-toc-link:hover{
  text-decoration: underline;
}


/* --------------------------------------------------------------------------
   4. フッターの面

   ⛔ --mori-blue-tint は本文側（トップの交互セクション・表・FAQ・ご予約）でも
     使っているので、値は変えない。フッター専用の変数で上書きする。
   -------------------------------------------------------------------------- */

/* SWELL の .l-footer{background:var(--color_footer_bg)}（#fdfdfd・本文と同色）を上書き */
.l-footer{
  background: var(--mori-footer-bg);
}

/* v1.19 で --mori-blue-tint を敷いた2か所を、フッター用の色に差し替える
   （v1.19 の行はそのまま。あとに書いたこちらが勝つ） */
.w-footer.-col3 .c-widget:has(.mori-f-social){
  background: var(--mori-footer-accent);
}
.l-footer__foot .copyright{
  background: var(--mori-footer-accent);
}


/* ==========================================================================
   v1.22　/access の地図（Googleマップの埋め込み）を 720px にする（2026-09-30）

   ■ 実測でわかったこと（指示の前提と2点ちがいました）

     ① --full が付いているのは地図ではなく「手描きの道順の画像」のほう
          <div class="mori-p-photo"><iframe …google.com/maps/embed…></div>      ← 地図
          <figure class="mori-p-photo mori-p-photo--full"><img …map.jpg></figure> ← 道順の画像
        --full を条件にすると、地図ではなく画像のほうが720pxになってしまう。
        そこで「iframe を持つ .mori-p-photo」だけを対象にする。

     ② iframe は本文に width="600" height="450" が直接書いてあり、
        v1.21 より前からずっと 600×450 だった（720pxだったことはない）。
        箱（.mori-p-photo）を720pxにするだけでは iframe は600pxのまま。
        iframe 自身に width:100% を掛けて、箱いっぱいに広げる。
        高さは属性の450pxのまま（地図は画面なので、縦横比は問いません）。

   ■ 当たる箇所：サイト全体で1件だけ（6269のGoogleマップ）
     .mori-p-photo の内訳（実測）
       figure.mori-p-photo               71件  すべて img
       figure.mori-p-photo--top           6件  すべて img
       figure.mori-p-photo--lower         4件  すべて img
       figure.mori-p-photo--full          4件  すべて img（iframeは0件）
       div.mori-p-photo                   1件  iframe（＝これだけが対象）

   ■ 写真（img）は600pxのまま。スマホ（767px以下）も変えない。

   ■ 詳細度について
     v1.21 の単独写真の規則は
       .post_content:has(.mori-p-q) .mori-p-photo:not(.mori-p-photos .mori-p-photo)
     で (0,5,0)。:has(> iframe) は引数が要素セレクタなので (0,0,1) しか足せない。
     同じ :not() を付けて (0,5,1) にし、確実に勝たせる。
   ========================================================================== */

@media (min-width: 768px){

  /* 箱を720pxに戻す */
  .post_content:has(.mori-p-q) .mori-p-photo:not(.mori-p-photos .mori-p-photo):has(> iframe){
    max-width: var(--mori-media);   /* 720px */
  }

  /* iframe を箱いっぱいに（本文の width="600" を上書き） */
  .post_content:has(.mori-p-q) .mori-p-photo:not(.mori-p-photos .mori-p-photo):has(> iframe) > iframe{
    width: 100%;
  }
}


/* ==========================================================================
   v1.23　目次の上下に余白を入れる（2026-09-30）

   ■ 直す理由
     v1.21 で目次の体裁を作ったとき、margin を指定しなかった。
     そのため直前の表にぴったりくっついている（実測 上の空き 0px）。

   ■ いま効いている margin（実測・/cure/fee）
       SWELL  main.css   *              → margin:0
       SWELL  main.css   .post_content > *  → margin-bottom: var(--swl-block-margin,2em)
       プラグイン screen.min.css #ez-toc-container → margin-bottom:1em  （詳細度 1,0,0）
     計算後：margin-top 0px ／ margin-bottom 16px（PC）・15.6px（スマホ）

   ■ このサイトの余白のリズム（実測）
       ブロックとブロックのあいだ        PC 30〜36px ／ スマホ 30〜36px
       節と節のあいだ（ブロックの直後）  PC 72px    ／ スマホ 48px
       節と節のあいだ（段落の直後）      PC 108px   ／ スマホ 66px

   ■ 採用した値と理由
     指示の目安は PC 上48px・スマホ上32px だったが、この2つは
     サイトのどのリズムにも当てはまらない（3つ目の数字が増える）。
     目次は「表のあと・節の見出しの前」に置かれる独立した箱なので、
     節と節のあいだ（ブロックの直後）と同じ
       PC 72px ／ スマホ 48px
     にそろえた。指示の「そろうほうを優先」に従っている。

     下は目安どおり PC 40px ／ スマホ 28px。
     ただし直後は必ず h2.mori-p-q（margin-top PC 108px・スマホ 66px）なので、
     隣接マージンの相殺で【実際の下の空きは 108px / 66px のまま】変わらない。
     目次のあとに見出し以外が来るページのための保険として入れておく。

   ■ 目次が本文の1つ目にくる場合
     SWELL の .post_content > :first-child{ margin-top:0 !important } が効くので、
     上の余白は自動的に 0 になる（ページの先頭が空きすぎない）。そのままでよい。

   ■ 詳細度
     プラグインは #ez-toc-container（1,0,0）で margin-bottom を指定している。
     div#ez-toc-container[class] = (1,1,2) で確実に上回る。
   ========================================================================== */

div#ez-toc-container[class]{
  margin-top: 72px;
  margin-bottom: 40px;
}

@media (max-width: 767px){
  div#ez-toc-container[class]{
    margin-top: 48px;
    margin-bottom: 28px;
  }
}
