/* =========================================================
   調布くびと腰の整形外科クリニック ─ リデザイン ドラフト
   方針：気軽に受診できる「親しみ」テイスト（院長の笑顔・やわらかい配色）。
   トップでは手術感を出さず、権威・実績は各下層ページで伝える。
   ブランド色は CHOFU spine clinic のディープブルー#0D47A1 ／
   ライトブルー#8CC9F2 を主体に、白＋淡ブルーで清潔・信頼感を演出。
   プレーンHTML/CSS/JS（Cloudflare Pages 配信・ビルド不要）。
   ========================================================= */

:root{
  /* ブランド配色：CHOFU spine clinic（ディープブルー#0D47A1／ライトブルー#8CC9F2） */
  --navy:#0d47a1;          /* ブランドディープブルー（主役・見出し・濃UI） */
  --navy-deep:#0a3576;     /* さらに濃い紺（フッター等） */
  --cyan:#1c74d6;          /* アクセントブルー（ボタン・リンク・装飾。旧シアンの置換） */
  --cyan-dark:#0d47a1;     /* ホバー・濃色＝ブランドディープ */
  --cyan-soft:#8cc9f2;     /* ブランドライトブルー（アイコン台座・チップ・縁取り） */
  --sky:#e9f3fd;           /* 淡いブルーのティント（ヒーロー背景など） */
  --accent:#f6a623;        /* やわらかい差し色（あたたかみ・最小限） */
  --ink:#2f3a49;
  --ink-soft:#5b6675;
  --line:#e4edf6;
  --bg:#ffffff;
  --bg-soft:#eff6fd;
  --bg-warm:#fbf8f4;
  --radius:8px;
  --radius-lg:12px;
  --radius-pill:999px;
  --radius-btn:6px;
  --shadow:0 22px 55px -28px rgba(13,71,161,.32);
  --shadow-sm:0 10px 28px -18px rgba(13,71,161,.4);
  --maxw:1140px;
  --ease:cubic-bezier(.22,1,.36,1);
  --font-round:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{
  margin:0;
  font-family:"Zen Kaku Gothic New","Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN",sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.9;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.02em;
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
iframe,video{max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;line-height:1.55;font-weight:700;font-family:var(--font-round)}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- ボタン ---------- */
.btn{
  --c:var(--cyan);--ch:var(--cyan-dark);
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  padding:.9em 1.9em;border-radius:var(--radius-btn);font-weight:700;font-size:.96rem;
  font-family:var(--font-round);
  background:var(--c);color:#fff;transition:transform .25s var(--ease),box-shadow .25s,background .25s;
  box-shadow:0 3px 9px -5px rgba(28,116,214,.42);
}
.btn svg{width:1.1em;height:1.1em}
.btn:hover{background:var(--ch);transform:translateY(-2px);box-shadow:0 4px 10px -6px rgba(13,71,161,.26)}
.btn--navy{--c:var(--navy);--ch:var(--navy-deep);box-shadow:0 3px 9px -5px rgba(13,71,161,.4)}
.btn--accent{--c:var(--accent);--ch:#e3930f;color:#5a3c00;box-shadow:0 3px 9px -5px rgba(246,166,35,.45)}
.btn--outline{background:#fff;color:var(--navy);border:1.5px solid #cfe1f4;box-shadow:var(--shadow-sm)}
.btn--outline:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn--soft:hover{background:var(--sky);color:var(--cyan-dark)}
.btn--soft{background:#fff;color:var(--cyan-dark);box-shadow:var(--shadow-sm)}
.btn--lg{padding:1.1em 2.4em;font-size:1.05rem}
.btn--wide{min-width:280px}

/* ---------- 見出し ---------- */
.heading{text-align:center;margin-bottom:2.6em}
.heading .en{
  display:inline-block;color:var(--cyan);font-weight:700;letter-spacing:.16em;
  font-size:.82rem;margin-bottom:.5em;text-transform:uppercase;
}
.heading h2{font-size:clamp(1.55rem,3.4vw,2.25rem);color:var(--navy);letter-spacing:.04em}
.heading .lead{margin-top:1em;color:var(--ink-soft);font-size:.98rem}
.heading h2 .bar{display:block;width:50px;height:4px;background:var(--cyan);margin:.6em auto 0;border-radius:3px}

/* ---------- セクション ---------- */
.section{padding:84px 0}
.section--soft{background:var(--bg-soft)}
.section--warm{background:var(--bg-warm)}

/* =========================================================
   ヘッダー
   ========================================================= */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header .container{max-width:1320px}
.header__inner{display:flex;align-items:center;gap:20px;height:78px}
.brand img{height:42px;width:auto}
.brand{display:flex;flex-direction:column;justify-content:center;gap:1px;line-height:1.12;text-decoration:none}
.brand__corp{font-size:clamp(.56rem,1.7vw,.64rem);color:var(--ink-soft);letter-spacing:.04em}
.brand__name{font-size:clamp(.92rem,3vw,1.06rem);font-weight:700;color:var(--navy);letter-spacing:.01em;white-space:nowrap}
.header__nav{margin-left:auto}
.header__nav>ul{display:flex;align-items:center;gap:16px}
.header__nav>ul>li{position:relative}
.header__nav a{font-size:.88rem;font-weight:500;color:var(--navy);position:relative;padding:.3em 0;transition:color .2s;white-space:nowrap}
.header__nav>ul>li>a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--cyan);transition:width .25s var(--ease)}
/* 疾患ドロップダウン */
.header__nav .has-sub>a .caret{display:inline-block;width:.4em;height:.4em;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);transform:rotate(45deg);margin:-.2em 0 0 .45em;vertical-align:middle;transition:transform .2s}
.header__nav .has-sub:hover>a .caret,.header__nav .has-sub:focus-within>a .caret{transform:rotate(-135deg);margin-top:0}
.header__nav .subnav{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%) translateY(8px);min-width:210px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;z-index:70}
.header__nav .has-sub:hover .subnav,.header__nav .has-sub:focus-within .subnav{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.header__nav .subnav a{display:block;padding:.62em .9em;font-size:.86rem;border-radius:6px;white-space:nowrap}
.header__nav .subnav a:hover{background:var(--sky);color:var(--cyan-dark)}
.header__nav a:hover{color:var(--cyan)}
.header__nav a:hover::after{width:100%}
.header__cta{display:flex;align-items:center;gap:14px}
.header__tel{text-align:right;line-height:1.25}
.header__tel .num{display:flex;align-items:center;gap:.35em;font-weight:700;color:var(--navy);font-size:1.18rem;letter-spacing:.02em;font-family:var(--font-round)}
.header__tel .num svg{width:1em;height:1em;color:var(--cyan)}
.header__tel .sub{font-size:.7rem;color:var(--ink-soft)}
.nav-toggle{display:none}
.drawer{display:none}

/* =========================================================
   ヒーロー（親しみ・院長の笑顔／手術感なし）
   ========================================================= */
.hero{position:relative;overflow:hidden;background:linear-gradient(175deg,#ffffff 0%,#eef5fd 58%,var(--sky) 100%)}
.hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:60px 0 64px}
.hero__eyebrow{display:inline-flex;align-items:center;gap:.5em;color:var(--cyan-dark);
  font-size:.86rem;font-weight:700;margin-bottom:1.1em}
.hero__eyebrow svg{width:1.15em;height:1.15em;color:var(--cyan)}
.hero h1{font-size:clamp(1.55rem,4.6vw,2.7rem);line-height:1.5;color:var(--navy);letter-spacing:.02em}
.hero h1 .em{color:var(--cyan-dark)}
.hero__lead{margin-top:1.3em;font-size:1.02rem;color:var(--ink-soft);max-width:31em;line-height:2}
.hero__points{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:1.7em}
.hero__points span{display:inline-flex;align-items:center;gap:.45em;color:var(--navy);font-weight:700;font-size:.94rem}
.hero__points svg{width:1.2em;height:1.2em;color:var(--cyan);flex:none}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2em}
.hero__photo{position:relative}
.hero__photo>img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;object-fit:cover}
.hero__photo-cap{position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.94);backdrop-filter:blur(4px);
  border-radius:6px;padding:.5em 1.2em;font-weight:700;color:var(--navy);font-size:.9rem;box-shadow:var(--shadow-sm)}
.hero__photo-cap small{display:block;font-size:.66rem;color:var(--cyan-dark);font-weight:500;letter-spacing:.06em}

/* =========================================================
   クイックメニュー
   ========================================================= */
.quick{margin-top:-34px;position:relative;z-index:5}
.quick__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;background:#fff;padding:10px;border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.quick__item{display:flex;flex-direction:column;align-items:center;gap:.5em;padding:22px 10px;border-radius:8px;text-align:center;transition:background .2s,transform .2s}
.quick__item:hover{background:var(--bg-soft);transform:translateY(-1px)}
.quick__item .ico{width:48px;height:48px;display:grid;place-items:center;border-radius:9px;background:var(--cyan-soft);color:var(--cyan-dark)}
.quick__item .ico svg{width:25px;height:25px}
.quick__item .lbl{font-weight:700;color:var(--navy);font-size:.96rem;font-family:var(--font-round)}
.quick__item .en{font-size:.66rem;color:var(--cyan);letter-spacing:.12em}

/* =========================================================
   お悩み共感（WORRY）─ 症状チェックリスト（中央寄せ）
   ========================================================= */
.worry__inner{max-width:880px;margin:0 auto;text-align:center}
.worry__lead{font-size:clamp(1.35rem,2.8vw,1.85rem);color:var(--navy);line-height:1.7;margin-bottom:.7em}
.worry__lead .em{color:var(--cyan-dark)}
.worry__text{color:var(--ink-soft);margin-bottom:2em;font-size:.98rem}
.checklist{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;text-align:left;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:34px 40px;box-shadow:var(--shadow-sm)}
.checklist li{display:flex;align-items:flex-start;gap:.7em;font-weight:500;color:var(--ink);font-size:1rem;line-height:1.7}
.checklist li svg{width:1.45em;height:1.45em;color:var(--cyan);flex:none;margin-top:.16em}
.worry__cta{margin-top:1.8em;font-size:.98rem;color:var(--ink-soft)}
.worry__cta b{color:var(--cyan-dark)}

/* =========================================================
   特徴（FEATURE）
   ========================================================= */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.fcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;text-align:center;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.fcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--cyan-soft)}
.fcard__ico{width:108px;height:108px;margin:0 auto 16px;border-radius:12px;background:var(--bg-soft);display:grid;place-items:center;overflow:hidden}
.fcard__ico img{width:82px;height:82px;object-fit:contain}
.fcard h3{font-size:1.12rem;color:var(--navy);margin-bottom:.5em}
.fcard p{font-size:.9rem;color:var(--ink-soft);line-height:1.85}

/* =========================================================
   院長あいさつ（GREETING）
   ========================================================= */
.greeting{background:var(--bg-warm);position:relative;overflow:hidden}
.greeting__grid{position:relative;z-index:1;display:grid;grid-template-columns:.82fr 1.18fr;gap:54px;align-items:center}
.greeting__photo{position:relative}
.greeting__photo img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;aspect-ratio:4/3;object-fit:cover}
.greeting__photo::before{content:"";position:absolute;right:-16px;bottom:-16px;width:130px;height:130px;border:3px solid var(--cyan-soft);border-radius:var(--radius-lg);z-index:0}
.greeting .en{display:block;color:var(--cyan);letter-spacing:.16em;font-size:.8rem;font-weight:700;margin-bottom:.6em}
.greeting h2{font-size:clamp(1.5rem,3vw,2rem);color:var(--navy);margin-bottom:1em;line-height:1.6}
.greeting p{color:var(--ink-soft);margin-bottom:1.2em;font-size:.96rem}
.greeting__sign{display:flex;align-items:baseline;gap:.8em;margin-top:1.4em;flex-wrap:wrap}
.greeting__sign .role{font-size:.84rem;color:var(--ink-soft)}
.greeting__sign .name{font-size:1.5rem;font-weight:700;color:var(--navy);letter-spacing:.08em;font-family:var(--font-round)}

/* =========================================================
   安心の診療体制（ASSURANCE）─ 権威はやさしく・詳細は下層へ
   ========================================================= */
.assurance{background:linear-gradient(135deg,var(--sky),#dcecfb)}
.assurance__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:.4em}
.acard{background:#fff;border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s}
.acard:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.acard .ico{width:54px;height:54px;border-radius:9px;background:var(--cyan-soft);color:var(--cyan-dark);display:grid;place-items:center;margin-bottom:14px}
.acard .ico svg{width:28px;height:28px}
.acard h3{font-size:1.08rem;color:var(--navy);margin-bottom:.5em}
.acard p{font-size:.88rem;color:var(--ink-soft);line-height:1.8}
.acard a{display:inline-flex;align-items:center;gap:.3em;margin-top:.9em;color:var(--cyan-dark);font-weight:700;font-size:.84rem}
.acard a svg{width:1em;height:1em;transition:transform .25s}
.acard:hover a svg{transform:translateX(2px)}
.assurance__note{text-align:center;margin-top:2.2em;font-size:.8rem;color:var(--ink-soft);line-height:1.7}

/* =========================================================
   よくあるご質問（FAQ / AEO）
   ========================================================= */
.faq{max-width:840px;margin:0 auto}
.faq__item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}
.faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.8em;padding:20px 22px;font-weight:700;color:var(--navy);font-size:.98rem;position:relative}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::before{content:"Q";flex:none;width:28px;height:28px;border-radius:6px;background:var(--cyan-soft);color:var(--cyan-dark);display:grid;place-items:center;font-size:.9rem;font-weight:700}
.faq__mark{margin-left:auto;flex:none;width:14px;height:14px;position:relative}
.faq__mark::before,.faq__mark::after{content:"";position:absolute;background:var(--cyan);border-radius:2px;transition:transform .25s var(--ease)}
.faq__mark::before{left:0;top:6px;width:14px;height:2px}
.faq__mark::after{left:6px;top:0;width:2px;height:14px}
.faq__item[open] .faq__mark::after{transform:scaleY(0)}
.faq__a{padding:0 22px 20px 60px;color:var(--ink-soft);font-size:.92rem;line-height:1.9}
.faq__a a{color:var(--cyan-dark);font-weight:700}

/* =========================================================
   サブページ共通（パンくず付きページヘッダー）
   ========================================================= */
.page-head{background:linear-gradient(175deg,#ffffff 0%,#eef5fd 60%,var(--sky) 100%);padding:30px 0 32px;border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.5em;font-size:.8rem;color:var(--ink-soft)}
.breadcrumb li{display:flex;align-items:center;gap:.5em;list-style:none}
.breadcrumb li+li::before{content:"›";color:#b9c6d4}
.breadcrumb a{color:var(--cyan-dark);font-weight:600}
.page-head h1{margin-top:.45em;font-size:clamp(1.5rem,3.4vw,2.15rem);color:var(--navy);letter-spacing:.03em}
.page-head .en{display:block;color:var(--cyan);letter-spacing:.16em;font-size:.74rem;font-weight:700;margin-top:.5em}
.page-lead{max-width:760px;color:var(--ink-soft);margin:0 auto 2.4em;text-align:center;font-size:.98rem}

/* 駅からの経路ステップ */
.route{display:grid;gap:14px;max-width:760px;margin:0 auto}
.route__item{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
.route__no{flex:none;width:34px;height:34px;border-radius:8px;background:var(--cyan-soft);color:var(--cyan-dark);font-weight:700;display:grid;place-items:center;font-size:.95rem}
.route__item p{color:var(--ink);font-size:.94rem;line-height:1.85}

/* 駐車場カード */
.park{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:860px;margin:0 auto}
.park__card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.park__card h3{color:var(--navy);font-size:1.05rem;margin-bottom:.3em}
.park__card .cap{color:var(--cyan-dark);font-weight:700;font-size:.9rem}
.park__card p{color:var(--ink-soft);font-size:.85rem;line-height:1.8;margin-top:.7em}
@media (max-width:768px){.park{grid-template-columns:1fr}}
.park__card .media-img{margin-bottom:14px;aspect-ratio:16/10;object-fit:cover}
.park__price{width:100%;border-radius:8px;border:1px solid var(--line);margin-top:.8em;display:block}

/* メディア（写真・イラスト） */
.media-img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-sm);display:block}
.park-loc{max-width:860px;margin:0 auto 24px}
.park-loc figcaption,.media-cap{margin-top:.6em;font-size:.82rem;color:var(--ink-soft);text-align:center}

/* 経路の写真ギャラリー（A〜D） */
.route-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:860px;margin:24px auto 0}
.route-photos img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-sm);display:block;aspect-ratio:3/2;object-fit:cover}
@media (max-width:768px){.route-photos{grid-template-columns:1fr}}

/* 動画（16:9 レスポンシブ） */
.video-wrap{position:relative;width:100%;max-width:760px;margin:26px auto 0;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* 院長から一言（写真＋コメント） */
.drcomment{display:grid;grid-template-columns:.42fr 1fr;gap:36px;align-items:center;max-width:960px;margin:0 auto}
.drcomment__photo img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff}
.drcomment__body p{color:var(--ink-soft);line-height:1.95;font-size:.96rem}
.drcomment__sign{margin-top:1.2em;font-weight:700;color:var(--navy)}
.drcomment__sign small{display:block;font-size:.78rem;color:var(--ink-soft);font-weight:500;margin-top:.2em}
@media (max-width:768px){.drcomment{grid-template-columns:1fr;gap:22px}.drcomment__photo{max-width:260px;margin:0 auto}}

/* 症状・代表的な疾患カード */
.sympt{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.sympt__card{display:flex;gap:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;align-items:flex-start;transition:transform .3s var(--ease),box-shadow .3s}
.sympt__card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.sympt__ico{flex:none;width:88px;height:88px;border-radius:10px;overflow:hidden;background:var(--bg-soft)}
.sympt__ico img{width:100%;height:100%;object-fit:cover}
.sympt__body h3{font-size:1rem;color:var(--navy);margin-bottom:.5em;line-height:1.5}
.sympt__body .dis-label{font-size:.72rem;color:var(--cyan-dark);font-weight:700;display:block;margin-bottom:.25em}
.sympt__body p{font-size:.84rem;color:var(--ink-soft);line-height:1.8}
@media (max-width:768px){.sympt{grid-template-columns:1fr}}

/* 症状グループ（脊椎：腰椎/胸椎/頚椎） */
.sym-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sym-col{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 24px 26px}
.sym-col h3{color:var(--navy);font-size:1.02rem;margin-bottom:.8em;padding-bottom:.5em;border-bottom:2px solid var(--cyan-soft)}
.sym-col ul{display:grid;gap:.55em}
.sym-col li{font-size:.9rem;color:var(--ink);padding-left:1.2em;position:relative;line-height:1.6}
.sym-col li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--cyan)}
@media (max-width:880px){.sym-cols{grid-template-columns:1fr}}

/* 対応可能疾患などのタグ */
.tags{display:flex;flex-wrap:wrap;gap:10px;max-width:880px;margin:0 auto;justify-content:center}
.tags span{background:#fff;border:1px solid var(--line);border-radius:6px;padding:.55em 1.05em;font-size:.88rem;color:var(--navy);font-weight:500}

/* 手術の目的（3定義） */
.purpose{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:900px;margin:0 auto}
.purpose__card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-align:center}
.purpose__card h3{color:var(--navy);font-size:1.05rem;margin-bottom:.5em}
.purpose__card p{color:var(--ink-soft);font-size:.88rem;line-height:1.8}
@media (max-width:768px){.purpose{grid-template-columns:1fr}}

/* アコーディオン（術式一覧など） */
.acc{max-width:880px;margin:0 auto}
.acc__item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}
.acc__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.8em;padding:18px 22px;font-weight:700;color:var(--navy);font-size:1rem}
.acc__item summary::-webkit-details-marker{display:none}
.acc__body{padding:0 22px 20px;color:var(--ink-soft);font-size:.92rem;line-height:1.9}
.acc__body .target{display:block;margin-top:.9em;padding-top:.7em;border-top:1px dashed var(--line);font-size:.86rem;color:var(--ink)}
.acc__body .target b{color:var(--cyan-dark)}

/* =========================================================
   診療案内（メニュー）
   ========================================================= */
.menu{display:grid;grid-template-columns:repeat(3,minmax(0,260px));justify-content:center;gap:18px 30px}
.mcard{position:relative;display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;overflow:hidden}
.mcard::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,var(--cyan),var(--navy));transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.mcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--cyan-soft)}
.mcard:hover::before{transform:scaleX(1)}
.mcard__ico{width:54px;height:54px;border-radius:9px;background:var(--cyan-soft);color:var(--cyan-dark);display:grid;place-items:center;margin-bottom:16px}
.mcard__ico svg{width:28px;height:28px}
.mcard h3{font-size:1.08rem;color:var(--navy);display:flex;align-items:baseline;gap:.5em;margin-bottom:.5em}
.mcard h3 .en{font-size:.66rem;color:var(--cyan);letter-spacing:.1em;font-weight:700;font-family:"Zen Kaku Gothic New"}
.mcard p{font-size:.86rem;color:var(--ink-soft);line-height:1.8}
.mcard__more{display:inline-flex;align-items:center;gap:.3em;margin-top:14px;color:var(--cyan-dark);font-weight:700;font-size:.84rem}
.mcard__more svg{width:1em;height:1em;transition:transform .25s}
.mcard:hover .mcard__more svg{transform:translateX(2px)}

/* =========================================================
   お知らせ（NEWS）
   ========================================================= */
.news__list{max-width:840px;margin:0 auto;border-top:1px solid var(--line)}
.news__item{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:20px 6px;border-bottom:1px solid var(--line);transition:background .2s,padding .2s}
.news__item:hover{background:var(--bg-soft)}
.news__date{font-size:.84rem;color:var(--ink-soft);font-weight:600;flex:none;width:88px;letter-spacing:.04em}
.news__cat{flex:none;font-size:.72rem;font-weight:700;color:var(--cyan-dark);background:var(--cyan-soft);padding:.3em 1em;border-radius:3px}
.news__title{flex:1;min-width:240px;font-size:.94rem;color:var(--navy);font-weight:500;line-height:1.55}
.news__more{text-align:center;margin-top:2.4em}

/* =========================================================
   アクセス・診療時間
   ========================================================= */
.access__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:start}
.access__map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);background:#fff}
.access__map iframe{width:100%;height:360px;border:0;display:block}
.hours{width:100%;table-layout:fixed;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);font-size:.92rem;margin-bottom:1.6em}
.hours th,.hours td{border:1px solid var(--line);text-align:center;padding:.7em .3em;word-break:keep-all}
.hours th:first-child{width:74px}
.hours thead th{background:var(--navy);color:#fff;font-weight:600}
.hours thead th.sun{background:#c95a7e}
.hours tbody th{background:var(--bg-soft);color:var(--navy);font-weight:600;font-size:.82rem;line-height:1.4}
.hours .o{color:var(--cyan-dark);font-weight:700}
.hours .x{color:#c0c7d0}
.info-list{border-top:2px solid var(--navy)}
.info-list li{display:flex;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line);font-size:.92rem}
.info-list .k{flex:none;width:84px;font-weight:700;color:var(--navy)}
.info-list .v{color:var(--ink-soft)}
.info-list .v a{color:var(--cyan-dark);font-weight:700}
.notes{margin-top:1.3em;display:grid;gap:.5em}
.notes p{font-size:.8rem;color:var(--ink-soft);padding-left:1.2em;position:relative;line-height:1.7}
.notes p::before{content:"※";position:absolute;left:0;color:var(--cyan-dark)}

/* =========================================================
   予約バンド（CTA）─ やわらかいシアン
   ========================================================= */
.cta-band{position:relative;background:linear-gradient(120deg,var(--navy) 0%,var(--cyan) 55%,#5fa8e6 100%);color:#fff;text-align:center;overflow:hidden}
.cta-band__inner{position:relative;z-index:1;padding:74px 0}
.cta-band .en{display:block;color:rgba(255,255,255,.9);letter-spacing:.18em;font-size:.82rem;font-weight:700;margin-bottom:.7em}
.cta-band h2{font-size:clamp(1.6rem,3.4vw,2.2rem);margin-bottom:.6em;color:#fff}
.cta-band p{color:rgba(255,255,255,.94);font-size:.98rem;margin-bottom:2em}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:stretch}
.cta-band__actions .tel-lg{display:inline-flex;flex-direction:column;align-items:center;background:#fff;color:var(--navy);border-radius:var(--radius-btn);padding:.7em 2.2em;font-weight:700;box-shadow:0 14px 30px -14px rgba(0,0,0,.4)}
.cta-band__actions .tel-lg .num{font-size:1.45rem;display:flex;align-items:center;gap:.3em;font-family:var(--font-round)}
.cta-band__actions .tel-lg .num svg{width:1em;height:1em;color:var(--cyan)}
.cta-band__actions .tel-lg small{font-size:.72rem;color:var(--ink-soft);font-weight:500}

/* =========================================================
   フッター
   ========================================================= */
.footer{background:var(--navy-deep);color:rgba(255,255,255,.78);padding:60px 0 0}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__brand img{height:auto;width:230px;margin-bottom:16px;filter:brightness(0) invert(1)}
.footer__brand-corp{display:block;font-size:.72rem;color:rgba(255,255,255,.72);letter-spacing:.04em;margin-bottom:3px}
.footer__brand-name{display:block;font-size:1.16rem;font-weight:700;color:#fff;letter-spacing:.01em;margin-bottom:16px}
.footer__brand p{font-size:.86rem;line-height:1.9}
.footer__brand .tel{color:#fff;font-weight:700}
.footer__col h4{color:#fff;font-size:.96rem;margin-bottom:1em;letter-spacing:.05em}
.footer__col li{margin-bottom:.6em}
.footer__col a{font-size:.86rem;transition:color .2s}
.footer__col a:hover{color:var(--cyan-soft)}
.footer__bottom{text-align:center;padding:22px 0;font-size:.76rem;color:rgba(255,255,255,.55)}

/* =========================================================
   固定UI
   ========================================================= */
.side-rsv{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:40;
  writing-mode:vertical-rl;background:var(--cyan);color:#fff;font-weight:700;
  padding:1.1em .7em;border-radius:4px 0 0 4px;letter-spacing:.12em;font-size:.86rem;
  box-shadow:-6px 8px 20px -10px rgba(28,116,214,.7);transition:background .2s;font-family:var(--font-round)}
.side-rsv:hover{background:var(--cyan-dark)}
.fab-top{position:fixed;right:18px;bottom:24px;z-index:40;width:46px;height:46px;border-radius:8px;
  background:var(--navy);color:#fff;display:grid;place-items:center;opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s;box-shadow:var(--shadow-sm)}
.fab-top.show{opacity:1;pointer-events:auto}
.fab-top:hover{transform:translateY(-2px)}
.mbar{display:none}

/* =========================================================
   スクロール出現
   ========================================================= */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.1s}
.reveal[data-delay="2"]{transition-delay:.2s}
.reveal[data-delay="3"]{transition-delay:.3s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* =========================================================
   レスポンシブ
   ブレークポイント：
   ・1180px以下 … 横ナビを詰め、電話ブロックを隠して1行を維持
   ・1024px以下 … モバイルUIへ統一（ハンバーガー＋下部固定バー、側面タブ非表示）
   ・980px以下  … 2カラム化（ヒーロー/特徴/メニュー等）
   ・768px以下  … 1カラム化（スマホ）
   ========================================================= */

/* 中間幅：横ナビを1行に保つための引き締め（1025〜1240px・電話ブロックは隠す） */
@media (max-width:1480px){
  .header__tel{display:none}
  .header__inner{gap:16px}
  .header__nav>ul{gap:14px}
  .header__nav a{font-size:.85rem}
}

/* モバイルUIへ切替（ハンバーガー＋下部バー）。横ナビが収まらない幅以下は全てこれに統一 */
@media (max-width:1024px){
  .header__inner{gap:10px;height:66px}
  .brand img{height:34px}
  .header__nav{display:none}
  .header__cta{margin-left:auto;gap:0;flex:none}
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
    background:var(--navy);border:0;border-radius:6px;cursor:pointer}
  .nav-toggle span,.nav-toggle::before,.nav-toggle::after{content:"";display:block;width:20px;height:2px;background:#fff;margin:0 auto;border-radius:2px;transition:.3s}
  .header__cta .btn{display:none}
  .drawer{position:fixed;inset:0;z-index:80;background:rgba(9,46,104,.97);display:flex;flex-direction:column;
    padding:90px 30px 30px;transform:translateX(100%);transition:transform .35s var(--ease);overflow:auto}
  .drawer.open{transform:none}
  .drawer a{color:#fff;font-size:1.05rem;padding:1em 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .drawer .btn{margin-top:24px}
  .drawer-close{position:absolute;right:24px;top:24px;width:42px;height:42px;background:none;border:0;cursor:pointer}
  .drawer-close::before,.drawer-close::after{content:"";position:absolute;left:11px;top:20px;width:20px;height:2px;background:#fff}
  .drawer-close::before{transform:rotate(45deg)}
  .drawer-close::after{transform:rotate(-45deg)}
  .side-rsv{display:none}
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:50}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:.5em;padding:15px 0;font-weight:700;color:#fff;font-size:.95rem;font-family:var(--font-round)}
  .mbar svg{width:1.2em;height:1.2em}
  .mbar__tel{background:var(--navy)}
  .mbar__rsv{background:var(--cyan)}
  .fab-top{bottom:78px}
  body{padding-bottom:54px}
}
/* タッチ端末（PCサイト表示モード含む）では側面タブを確実に消す */
@media (pointer:coarse){ .side-rsv{display:none !important} }

@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr;gap:30px;text-align:center;padding-top:44px}
  .hero__points,.hero__actions{justify-content:center}
  .hero__lead{margin-left:auto;margin-right:auto}
  .hero__photo{max-width:440px;margin:0 auto}
  .greeting__grid,.access__grid{grid-template-columns:1fr;gap:34px}
  .greeting__photo{max-width:460px;margin:0 auto}
  .features,.menu,.assurance__grid{grid-template-columns:repeat(2,1fr)}
  .footer__top{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .section{padding:58px 0}
  .quick{margin-top:-24px}
  .quick__grid{grid-template-columns:repeat(2,1fr)}
  .checklist{grid-template-columns:1fr;padding:26px 24px}
  .hours{font-size:.8rem}
  .hours th,.hours td{padding:.55em .15em}
  .hours th:first-child{width:58px}
  .features,.menu,.assurance__grid{grid-template-columns:1fr}
  .footer__top{grid-template-columns:1fr}
}
@media (max-width:420px){
  .quick__grid{grid-template-columns:1fr 1fr}
  .hero__actions .btn{width:calc(100% - 48px);margin:0 auto}
}

/* =========================================================
   医師紹介（staff）
   ========================================================= */
.staff-intro{max-width:760px;margin:0 auto 6px;text-align:center;color:var(--ink-soft);line-height:1.95;font-size:.96rem}
.doc{display:grid;grid-template-columns:230px 1fr;gap:36px;max-width:1000px;margin:0 auto 30px;align-items:start;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:34px 38px}
.doc--lead{border-top:4px solid var(--navy)}
.doc__photo{margin:0}
.doc__photo img{width:100%;border-radius:var(--radius);background:#f3f7fc;aspect-ratio:3/4;object-fit:cover;display:block}
.doc__photo figcaption{margin-top:.7em;font-size:.78rem;color:var(--ink-soft);text-align:center;line-height:1.6}
.doc__role{display:inline-block;font-size:.78rem;font-weight:700;color:var(--cyan-dark);background:var(--sky);border-radius:var(--radius-pill);padding:.28em 1em;letter-spacing:.04em}
.doc__name{font-size:1.5rem;color:var(--navy);font-weight:700;margin:.4em 0 .15em;line-height:1.3}
.doc__name .en{display:block;font-size:.72rem;color:var(--ink-soft);font-weight:500;letter-spacing:.08em;margin-top:.3em}
.doc__spec{font-size:.86rem;color:var(--ink-soft);margin:.2em 0 0;line-height:1.7}
.doc h3.doc__sub{font-size:.96rem;color:var(--navy);font-weight:700;margin:1.5em 0 .6em;padding-bottom:.4em;border-bottom:2px solid var(--cyan-soft)}
.doc__lead-msg{font-size:.95rem;color:var(--ink);line-height:1.95;margin:1.1em 0 0}
.doc__lead-msg p{margin:0 0 1em}
.doc__list{list-style:none;margin:.5em 0 0;padding:0;display:grid;gap:.5em}
.doc__list li{font-size:.88rem;color:var(--ink-soft);line-height:1.7;padding-left:1.1em;position:relative}
.doc__list li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--cyan-soft)}
.doc__hist{list-style:none;margin:.5em 0 0;padding:0;display:grid;gap:.4em}
.doc__hist li{font-size:.86rem;color:var(--ink-soft);line-height:1.65;display:flex;gap:.9em}
.doc__hist li .yr{flex:none;color:var(--navy);font-weight:600;min-width:4.2em}
.pub{margin-top:1.4em}
.pub>summary{cursor:pointer;font-weight:700;color:var(--cyan-dark);font-size:.9rem;list-style:none;display:inline-flex;align-items:center;gap:.5em;background:var(--sky);border-radius:var(--radius-pill);padding:.5em 1.3em;transition:background .2s var(--ease)}
.pub>summary::-webkit-details-marker{display:none}
.pub>summary::after{content:"＋";font-weight:700}
.pub[open]>summary::after{content:"−"}
.pub>summary:hover{background:#dcebfa;background:#daeafb}
.pub__body{margin-top:1.1em}
.pub__body h4{font-size:.88rem;color:var(--navy);margin:1.3em 0 .5em;font-weight:700}
.pub__body h4:first-child{margin-top:.2em}
.pub__body ol,.pub__body ul{margin:0;padding-left:1.4em;display:grid;gap:.45em}
.pub__body li{font-size:.8rem;color:var(--ink-soft);line-height:1.7}
@media (max-width:768px){
  .doc{grid-template-columns:1fr;gap:20px;padding:26px 22px}
  .doc__photo{max-width:230px;margin:0 auto}
  .doc__name{font-size:1.3rem}
}

/* =========================================================
   初めての方へ（first_visit）
   ========================================================= */
.fv-empathy{max-width:840px;margin:0 auto;display:grid;gap:40px}
.fv-worry{text-align:center}
.fv-worry img{max-width:560px;width:100%;margin:0 auto 16px;display:block}
.fv-worry p{font-size:1rem;color:var(--ink);line-height:1.95;max-width:700px;margin:0 auto}
.fv-worry .lead-strong{color:var(--navy);font-weight:700;font-size:1.06rem}

.fv-flow{display:grid;gap:22px;max-width:920px;margin:0 auto}
.fv-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:grid;grid-template-columns:1fr 300px}
.fv-step--noimg{grid-template-columns:1fr}
.fv-step__body{padding:26px 30px}
.fv-step__head{display:flex;align-items:center;gap:14px;margin-bottom:.7em}
.fv-step__no{flex:none;width:42px;height:42px;border-radius:11px;background:var(--navy);color:#fff;font-weight:700;display:grid;place-items:center;font-size:1.05rem}
.fv-step__head h3{color:var(--navy);font-size:1.12rem;margin:0}
.fv-step__body p{color:var(--ink);font-size:.92rem;line-height:1.88;margin:0}
.fv-step__resv{margin-top:1em;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.fv-step__resv .hint{font-size:.85rem;color:var(--ink-soft)}
.fv-step__photo{background:#f3f7fc}
.fv-step__photo img{width:100%;height:100%;object-fit:cover;display:block;min-height:190px}
@media (max-width:768px){
  .fv-step,.fv-step--noimg{grid-template-columns:1fr}
  .fv-step__photo img{aspect-ratio:16/10;min-height:0}
}

.fv-bring{display:grid;grid-template-columns:1fr 320px;gap:38px;max-width:900px;margin:0 auto;align-items:center}
.fv-bring ul{list-style:none;padding:0;margin:0;display:grid;gap:.75em}
.fv-bring li{font-size:.94rem;color:var(--ink);line-height:1.7;padding-left:1.5em;position:relative}
.fv-bring li::before{content:"✓";position:absolute;left:0;color:var(--cyan);font-weight:700}
.fv-bring__img img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:block}
@media (max-width:768px){.fv-bring{grid-template-columns:1fr;gap:24px}.fv-bring__img{max-width:300px;margin:0 auto}}

.fv-note{max-width:840px;margin:0 auto;background:var(--sky);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 30px}
.fv-note h3{color:var(--navy);font-size:1.08rem;margin:0 0 .5em}
.fv-note p{color:var(--ink-soft);font-size:.9rem;line-height:1.88;margin:0}
.fv-note a{color:var(--cyan-dark);font-weight:700}

.fv-overview{max-width:760px;margin:0 auto}
.fv-overview dl{display:grid;grid-template-columns:150px 1fr;margin:0;border-top:1px solid var(--line)}
.fv-overview dt{padding:16px 12px;border-bottom:1px solid var(--line);color:var(--navy);font-weight:700;font-size:.9rem}
.fv-overview dd{padding:16px 12px;border-bottom:1px solid var(--line);margin:0;color:var(--ink);font-size:.92rem;line-height:1.7}
.fv-overview .hours{margin-top:0}
.fv-notes{max-width:760px;margin:18px auto 0;display:grid;gap:.5em}
.fv-notes li{list-style:none;font-size:.84rem;color:var(--ink-soft);line-height:1.75;padding-left:1.4em;position:relative}
.fv-notes li::before{content:"※";position:absolute;left:0;color:var(--cyan-dark)}
@media (max-width:560px){.fv-overview dl{grid-template-columns:104px 1fr}}

/* =========================================================
   当院で算定される加算について（additional-fees）
   ========================================================= */
.fee-block{max-width:820px;margin:0 auto 26px}
.fee-block p{color:var(--ink);font-size:.94rem;line-height:1.9;margin:0 0 1em}
.fee-block p:last-child{margin-bottom:0}
.fee-block ul.bullet{list-style:none;padding:0;margin:.6em 0 0;display:grid;gap:.5em}
.fee-block ul.bullet li{padding-left:1.3em;position:relative;font-size:.92rem;color:var(--ink);line-height:1.7}
.fee-block ul.bullet li::before{content:"・";position:absolute;left:0;color:var(--cyan-dark)}
.kcode-list{list-style:none;padding:0;margin:1em 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5em}
.kcode-list li{font-size:.87rem;color:var(--ink);background:var(--bg-soft);border-radius:var(--radius-btn);padding:.6em .9em;line-height:1.5}
.kcode-list li .code{color:var(--cyan-dark);font-weight:700;margin-right:.45em}
@media (max-width:560px){.kcode-list{grid-template-columns:1fr}}

/* =========================================================
   ピラティス×リハビリ（pilates）
   ========================================================= */
.pil-lead{max-width:840px;margin:0 auto;text-align:center;color:var(--ink-soft);line-height:1.95;font-size:.98rem}
.pil-about-img{max-width:760px;margin:26px auto 0}
.equip{display:grid;gap:26px;max-width:980px;margin:0 auto}
.equip__card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:grid;grid-template-columns:320px 1fr}
.equip__photo{background:#f3f7fc}
.equip__photo img{width:100%;height:100%;object-fit:cover;display:block;min-height:210px}
.equip__body{padding:28px 34px}
.equip__body h3{color:var(--navy);font-size:1.2rem;margin:0 0 .35em}
.equip__lead{color:var(--cyan-dark);font-weight:700;font-size:.92rem;margin:0 0 .8em}
.equip__body p:not(.equip__lead){color:var(--ink-soft);font-size:.9rem;line-height:1.88;margin:0 0 .8em}
.equip__body p:last-child{margin-bottom:0}
@media (min-width:769px){
  .equip__card:nth-child(even){grid-template-columns:1fr 320px}
  .equip__card:nth-child(even) .equip__photo{order:2}
}
@media (max-width:768px){
  .equip__card{grid-template-columns:1fr}
  .equip__photo img{aspect-ratio:16/10;min-height:0}
}

.pil-eff{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:980px;margin:0 auto}
.pil-eff__card{background:var(--sky);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px 26px}
.pil-eff__card h3{color:var(--navy);font-size:1.05rem;margin:0 0 .8em;padding-bottom:.5em;border-bottom:2px solid var(--cyan-soft)}
.pil-eff__card ul{list-style:none;margin:0;padding:0;display:grid;gap:.5em}
.pil-eff__card li{font-size:.88rem;color:var(--ink);line-height:1.6;padding-left:1.2em;position:relative}
.pil-eff__card li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.pil-eff__note{max-width:980px;margin:0 auto 1.4em;text-align:center;color:var(--ink-soft);font-size:.95rem}
@media (max-width:880px){.pil-eff{grid-template-columns:1fr}}

.pil-media{max-width:820px;margin:0 auto;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:30px 36px}
.pil-media p{color:var(--ink);line-height:1.92;font-size:.94rem;margin:0}

/* =========================================================
   診療実績（results）
   ========================================================= */
.res-period{display:block;text-align:center;margin:0 auto 2.4em}
.res-period span{display:inline-block;background:var(--sky);color:var(--cyan-dark);font-weight:700;border-radius:var(--radius-pill);padding:.45em 1.5em;font-size:.92rem}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:780px;margin:0 auto}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:26px 18px;text-align:center}
.stat .k{font-size:.85rem;color:var(--ink-soft)}
.stat .v{font-size:1.95rem;color:var(--navy);font-weight:700;line-height:1.2;margin-top:.25em}
.stat .v small{font-size:.95rem;font-weight:500;margin-left:.08em}
@media (max-width:560px){.stat-row{grid-template-columns:1fr;gap:12px}}
.br-table{width:100%;max-width:780px;margin:22px auto 0;border-collapse:collapse;font-size:.9rem;background:#fff}
.br-table td{border:1px solid var(--line);padding:.7em 1em;color:var(--ink)}
.br-table td:nth-child(even){text-align:right;color:var(--navy);font-weight:700;width:17%;white-space:nowrap}
.res-footnote{max-width:780px;margin:14px auto 0;padding:0;display:grid;gap:.3em}
.res-footnote li{list-style:none;font-size:.78rem;color:var(--ink-soft);line-height:1.65}
.trend{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:560px;margin:0 auto}
.trend__c{background:var(--sky);border-radius:var(--radius);padding:18px;text-align:center}
.trend__c .y{font-size:.85rem;color:var(--cyan-dark);font-weight:700}
.trend__c .d{font-size:1.55rem;color:var(--navy);font-weight:700;margin-top:.2em}
.formula{text-align:center;color:var(--ink-soft);font-size:.85rem;margin-top:1.6em;line-height:1.7}
.yr-list{max-width:820px;margin:0 auto;display:grid;gap:12px}
details.yr{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
details.yr>summary{cursor:pointer;padding:17px 24px;font-weight:700;color:var(--navy);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.yr>summary::-webkit-details-marker{display:none}
details.yr>summary::after{content:"＋";color:var(--cyan);font-weight:700}
details.yr[open]>summary::after{content:"−"}
details.yr[open]>summary{border-bottom:1px solid var(--line)}
.yr__body{padding:24px}
.yr__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;margin-bottom:6px}
.yr__stats .k{font-size:.78rem;color:var(--ink-soft)}
.yr__stats .v{font-size:1.3rem;color:var(--navy);font-weight:700;margin-top:.15em}
.yr__stats .v small{font-size:.8rem;font-weight:500}
.yr__avg{text-align:center;margin-top:1.1em;color:var(--ink);font-size:.92rem}
.yr__avg b{color:var(--cyan-dark);font-size:1.05em}
@media (max-width:560px){.yr__stats{grid-template-columns:1fr}}
.link-table{width:100%;max-width:820px;margin:0 auto;border-collapse:collapse;font-size:.88rem;background:#fff}
.link-table th,.link-table td{border:1px solid var(--line);padding:.8em 1em;text-align:left;color:var(--ink)}
.link-table thead th{background:var(--navy);color:#fff;font-weight:700}
.link-table .lead-txt{max-width:820px;margin:0 auto 1.6em;text-align:center;color:var(--ink-soft);line-height:1.9;font-size:.95rem}
@media (max-width:640px){.link-table{font-size:.8rem}.link-table th,.link-table td{padding:.6em .5em}}

/* =========================================================
   お知らせ（news）
   ========================================================= */
.news-list{max-width:820px;margin:0 auto;display:grid;gap:2px}
.news-item{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:baseline;padding:22px 6px;border-bottom:1px solid var(--line)}
.news-item:first-child{border-top:1px solid var(--line)}
.news-item__date{font-size:.85rem;color:var(--cyan-dark);font-weight:700;letter-spacing:.02em}
.news-item__body a{color:var(--ink);font-weight:700;font-size:1rem;line-height:1.6;text-decoration:none;transition:color .2s var(--ease)}
.news-item__body a:hover{color:var(--cyan)}
.news-item__excerpt{color:var(--ink-soft);font-size:.86rem;line-height:1.7;margin-top:.45em}
@media (max-width:560px){.news-item{grid-template-columns:1fr;gap:6px}}

/* お知らせ記事 */
.article{max-width:760px;margin:0 auto}
.article__date{color:var(--cyan-dark);font-weight:700;font-size:.9rem}
.article__title{font-size:clamp(1.3rem,3vw,1.7rem);color:var(--navy);font-weight:700;line-height:1.5;margin:.4em 0 1.2em;padding-bottom:.6em;border-bottom:2px solid var(--cyan-soft)}
.article__body p{color:var(--ink);line-height:1.95;font-size:.96rem;margin:0 0 1.2em}
.article__body ul{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:.55em}
.article__body ul li{font-size:.92rem;color:var(--ink);line-height:1.7;padding-left:1.2em;position:relative}
.article__body ul li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--cyan-soft)}
.article__body .btn-row{display:flex;flex-wrap:wrap;gap:12px;margin:.4em 0 1.4em}
.article__body img{max-width:100%;height:auto;border-radius:var(--radius);margin:.4em 0 1.2em}
.article__back{margin-top:2.4em;text-align:center}
.article__body h2{font-size:1.32rem;color:var(--navy);font-weight:700;margin:1.9em 0 .7em;padding-bottom:.4em;border-bottom:2px solid var(--cyan-soft)}
.article__body h2:first-child{margin-top:0}
.article__body h3{font-size:1.08rem;color:var(--navy);font-weight:700;margin:1.5em 0 .6em;padding-left:.65em;border-left:4px solid var(--cyan)}
.article__body strong,.article__body b{color:var(--navy);font-weight:700}
.article__body ol{margin:0 0 1.2em;padding-left:1.4em;display:grid;gap:.5em}
.article__body ol li{font-size:.95rem;color:var(--ink);line-height:1.85}
.article__body table{width:100%;border-collapse:collapse;margin:1em 0 1.4em;font-size:.9rem;background:#fff}
.article__body th,.article__body td{border:1px solid var(--line);padding:.7em 1em;text-align:left;vertical-align:top;line-height:1.7}
.article__body thead th{background:var(--bg-soft);color:var(--navy);font-weight:700}
.article__body figure{margin:1em 0 1.4em}
.article__meta{display:flex;flex-wrap:wrap;gap:.8em;align-items:center;margin-bottom:1.4em}
.article__cat{display:inline-block;background:var(--sky);color:var(--cyan-dark);font-weight:700;font-size:.78rem;border-radius:var(--radius-pill);padding:.3em 1em}
/* 監修医師 */
.supervisor{display:flex;gap:20px;align-items:center;background:var(--sky);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:var(--radius-lg);padding:20px 24px;margin:0 0 30px;max-width:760px}
.supervisor__photo{flex:none}
.supervisor__photo img{width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:50% 18%;background:#fff;border:3px solid #fff;box-shadow:var(--shadow-sm);display:block}
.supervisor__label{display:inline-block;font-size:.73rem;font-weight:700;color:#fff;background:var(--navy);border-radius:var(--radius-pill);padding:.26em .95em;margin-bottom:.55em}
.supervisor__name{font-size:1.08rem;color:var(--navy);font-weight:700;margin:0 0 .35em}
.supervisor__name span{font-size:.68rem;color:var(--ink-soft);font-weight:500;letter-spacing:.06em;margin-left:.5em}
.supervisor__cred{font-size:.8rem;color:var(--ink-soft);line-height:1.65;margin:0 0 .5em}
.supervisor__link{font-size:.83rem;font-weight:700;color:var(--cyan-dark);text-decoration:none}
.supervisor__link:hover{text-decoration:underline}
@media (max-width:560px){.supervisor{flex-direction:column;text-align:center;align-items:center}}

/* =========================================================
   採用情報（recruit）
   ========================================================= */
.rec-intro{max-width:820px;margin:0 auto;color:var(--ink-soft);line-height:1.95;font-size:.96rem}
.rec-intro p{margin:0 0 1em}
.rec-intro p:last-child{margin-bottom:0}
.jobnav{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:980px;margin:0 auto}
.jobnav__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:26px 16px;text-align:center;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.jobnav__card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--cyan-soft)}
.jobnav__card .ja{color:var(--navy);font-weight:700;font-size:1rem;line-height:1.4}
.jobnav__card .arrow{color:var(--cyan);font-size:.8rem;font-weight:700}
@media (max-width:880px){.jobnav{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.jobnav{grid-template-columns:1fr}}

.job{max-width:820px;margin:0 auto 34px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.job__title{background:var(--navy);color:#fff;font-size:1.1rem;font-weight:700;padding:16px 26px;margin:0}
.job__table{width:100%;border-collapse:collapse}
.job__table th,.job__table td{border-bottom:1px solid var(--line);padding:14px 22px;text-align:left;vertical-align:top;font-size:.9rem;line-height:1.75}
.job__table th{width:150px;color:var(--navy);font-weight:700;background:var(--bg-soft);white-space:nowrap}
.job__table td{color:var(--ink)}
.job__table a{color:var(--cyan-dark);font-weight:600;word-break:break-all}
.job__apply{padding:20px 26px;text-align:center}
@media (max-width:600px){
  .job__table,.job__table tbody,.job__table tr,.job__table th,.job__table td{display:block;width:auto}
  .job__table th{border-bottom:0;padding-bottom:0;background:none}
  .job__table td{padding-top:.3em}
}
.rec-note{max-width:820px;margin:0 auto;color:var(--ink-soft);font-size:.86rem;line-height:1.8;text-align:center}
.rec-sched{max-width:820px;margin:0 auto}
.rec-sched h3{color:var(--navy);font-size:1.1rem;margin:0 0 .8em}
.rec-sched p{color:var(--ink);line-height:1.9;font-size:.92rem;margin:0 0 .5em}
.rec-sched ul{list-style:none;margin:0 0 1em;padding:0;display:grid;gap:.4em}
.rec-sched li{font-size:.9rem;color:var(--ink-soft);line-height:1.7;padding-left:1.1em;position:relative}
.rec-sched li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--cyan-soft)}

/* disease-boxes */
.article__body .lead-box{background:var(--sky);border:1px solid var(--cyan-soft);border-radius:var(--radius-lg);padding:15px 20px;margin:0 0 1.6em}
.article__body .lead-box p{margin:0;font-size:.97rem;color:var(--ink)}
.article__body .qa-list{display:grid;gap:.55em;margin:.5em 0 1.4em}
.article__body .qa-list h3{background:var(--bg-soft);border-left:4px solid var(--cyan);border-radius:0 var(--radius) var(--radius) 0;padding:.65em .9em;margin:0;font-size:.96rem;color:var(--navy)}
.article__body .qa-list h3+p{margin:.25em 0 .2em;padding:0 .3em;font-size:.93rem}
.article__body .qa-list h3+p strong{color:var(--cyan)}

/* news-acc */
.news-acc{border-bottom:1px solid var(--line)}
.news-acc>summary{display:flex;align-items:center;gap:12px;padding:18px 6px;cursor:pointer;list-style:none;flex-wrap:wrap}
.news-acc>summary::-webkit-details-marker{display:none}
.news-acc__title{font-weight:700;color:var(--ink);flex:1 1 240px;min-width:240px;line-height:1.55}
.news-acc[open]>summary .news-acc__title{color:var(--navy)}
.news-acc__body{padding:2px 6px 20px;color:var(--ink);line-height:1.9;font-size:.95rem}
.news-acc__body p{margin:0 0 1em}
.news-empty{color:var(--ink-soft);padding:20px 6px}

/* apply-form */
.reserve__form{max-width:720px;margin-inline:auto}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.field{margin-bottom:2em}
.field__label{font-weight:700;font-size:1.02rem;margin-bottom:.7em;display:flex;align-items:center;gap:.5em}
.field__label .opt,.field__label .req{font-size:.68rem;border:1px solid var(--line);border-radius:4px;padding:.15em .55em;font-weight:500}
.field__label .opt{color:var(--ink-soft)}
.field__label .req{color:#fff;background:var(--cyan);border-color:var(--cyan)}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:.6em}
.opt-card{position:relative}
.opt-card input{position:absolute;opacity:0;width:0;height:0}
.opt-card label{display:flex;align-items:center;gap:.65em;padding:.85em 1em;border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;font-weight:700;font-size:.94rem;transition:border-color .2s,background .2s,color .2s;background:#fff}
.opt-card label::before{content:"";width:18px;height:18px;border:2px solid var(--line);border-radius:50%;flex:none;transition:.2s}
.opt-card input:checked+label{border-color:var(--cyan);background:var(--sky);color:var(--cyan-dark)}
.opt-card input:checked+label::before{border-color:var(--cyan);background:radial-gradient(var(--cyan) 42%,transparent 46%)}
.opt-card input:focus-visible+label{outline:2px solid var(--cyan);outline-offset:2px}
.field__input{width:100%;padding:.9em 1em;border:1.5px solid var(--line);border-radius:var(--radius);font:inherit;background:#fff}
.field__input:focus{border-color:var(--cyan);outline:none}
.field__hint{font-size:.82rem;color:var(--ink-soft);margin-top:.5em}
.reserve__submit{text-align:center;margin-top:2.2em}
.reserve__after{text-align:center;font-size:.9rem;margin-top:1.2em}
@media(max-width:600px){.opts{grid-template-columns:1fr}}

/* ===== 採用：院長/看護師コメント（写真＋文章） ===== */
.rec-comment{display:flex;gap:26px;align-items:flex-start;margin-top:20px}
.rec-comment--rev{flex-direction:row-reverse}
.rec-comment__img{width:300px;max-width:36%;height:auto;border-radius:16px;flex-shrink:0;box-shadow:0 10px 28px rgba(13,71,161,.12)}
.rec-comment__body{flex:1}
.rec-comment__body p{margin:0 0 14px;line-height:1.95}
.rec-comment__body p:last-child{margin-bottom:0}
@media(max-width:680px){.rec-comment,.rec-comment--rev{flex-direction:column}.rec-comment__img{width:100%;max-width:100%}}
/* ===== 採用：看護師の一日（写真タイムライン） ===== */
.rec-day{display:flex;flex-direction:column;gap:18px;margin-top:22px}
.rec-day__item{display:grid;grid-template-columns:118px 210px 1fr;gap:22px;align-items:center;background:#fff;border:1px solid #e6eef9;border-radius:18px;padding:18px 22px;box-shadow:0 8px 22px rgba(13,71,161,.06)}
.rec-day__time{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:700;font-size:1.22rem;color:var(--cyan);text-align:center;line-height:1.25;border-right:2px solid #e6eef9;padding-right:14px}
.rec-day__time small{font-size:.78em;font-weight:700;display:block;margin:-2px 0}
.rec-day__photo{width:210px;height:148px;object-fit:cover;border-radius:14px}
.rec-day__body h4{margin:0 0 9px;font-size:1.1rem;color:var(--ink)}
.rec-day__body ul{margin:0;padding-left:1.15em}
.rec-day__body li{margin:4px 0;font-size:.95rem;line-height:1.75}
.rec-day__note{font-size:.85rem;color:var(--ink-soft);margin:8px 0 0}
@media(max-width:680px){.rec-day__item{grid-template-columns:1fr;gap:12px}.rec-day__time{border-right:0;border-bottom:2px solid #e6eef9;padding:0 0 10px;text-align:left}.rec-day__time small{display:inline}.rec-day__photo{width:100%;height:190px}}

/* ===== WEB初診予約 reserve.html ===== */
.reserve__lead{text-align:center;font-weight:700;color:var(--navy);font-size:1.05rem;margin:0 0 18px}
.reserve__note{background:#f3f7fd;border:1px solid #e6eef9;border-radius:12px;padding:12px 16px;font-size:.86rem;color:var(--ink-soft);line-height:1.7;margin:0 0 22px}
.reserve__submit{margin-top:26px;text-align:center}
.reserve__skip{display:inline-block;margin-top:14px;color:var(--ink-soft);font-size:.9rem;text-decoration:underline}
.reserve__after{margin-top:10px;font-size:.8rem;color:var(--ink-soft)}

/* ===== 切らない関節治療(PRP) prp.html ===== */
.article__body .prp-caution{background:#fff7ed;border:1px solid #fde2c2;border-radius:var(--radius);padding:13px 18px;font-size:.86rem;color:#92591f;line-height:1.75;margin:0 0 1.6em}
.article__body .prp-figure{margin:0 0 1em}
.article__body .prp-figure img{width:100%;border-radius:var(--radius-lg)}
.article__body .prp-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:.5em 0 1.6em}
.article__body .prp-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.article__body .prp-card img{width:100%;height:170px;object-fit:cover;display:block}
.article__body .prp-card h3{margin:0;padding:.75em .95em .15em;font-size:.98rem;color:var(--navy)}
.article__body .prp-card p{margin:0;padding:.2em .95em 1em;font-size:.9rem;line-height:1.7}
.article__body .prp-list{margin:.3em 0 1em;padding-left:1.2em}
.article__body .prp-list li{margin:.35em 0;font-size:.95rem}
@media(max-width:600px){.article__body .prp-cards{grid-template-columns:1fr}}
