/* 武川病院HP 静的サイトの様式（自作）
   段階1の複製を画面で実測した値（寸法・色・文字・余白）から書いた。テーマの CSS は写していない。
   幅の境目: 750px（スマホ）。基準幅 1000px（本文）・1200px（見出し帯）。 */

:root {
  --blue: #1e73be;        /* リンク・メニュー */
  --cyan: #00a8c8;        /* 著作権帯・診療時間表の文字 */
  --cyan-line: #05aac9;   /* 診療時間表の罫線 */
  --cyan-text: #00a7ce;   /* パンくず・見出し飾り */
  --cyan-head: #00a6cc;   /* 英字の小見出し */
  --teal: #529eaa;        /* 電話ボタン */
  --teal-dark: #007a94;   /* 先頭へ */
  --grey: #999;
  --line: #ddd;
  --bg: #f5f5f5;
  --yellow: #ffff66;      /* お知らせ帯 */
  --font: Arial, "Hiragino Sans", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
  --header-h: 90px;
  --content-w: 1000px;
  --wide-w: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); font-size: 14px; line-height: 1; color: #000; background: #fff; }
img { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: var(--blue); text-decoration: none; }
a:hover { opacity: .8; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, figure { margin: 0; }
svg { width: 1em; height: 1em; fill: currentColor; }
table { border-collapse: collapse; border-spacing: 0; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

.site { padding-top: calc(var(--header-h) + 59px); }
.is-home .site { position: relative; padding-top: 0; }
.inner { width: var(--content-w); max-width: 100%; margin: 0 auto; }

/* ---------- ヘッダー ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 200; height: var(--header-h); background: #fff; transition: background .3s; }
.site-header__inner { position: relative; height: 100%; }
.site-header__logo { position: absolute; left: 37px; top: 15px; margin: 0; font-size: 14px; font-weight: 500; }
.site-header__logo a { display: block; }
.logo { display: none; }
.logo--pc.logo--dark { display: block; }
.site-header--home:not(.is-fixed) { position: absolute; background: transparent; }
.site-header--home:not(.is-fixed) .logo--pc.logo--dark { display: none; }
.site-header--home:not(.is-fixed) .logo--pc.logo--light { display: block; }
.menu-toggle { display: none; }
.global-nav { position: absolute; right: 37px; top: 0; height: 100%; }
.global-nav > ul { display: flex; height: 100%; }
.global-nav > ul > li { position: relative; }
.global-nav > ul > li > a { display: block; height: var(--header-h); line-height: var(--header-h); padding-left: 37px; font-size: 18px; color: var(--blue); }
.site-header--home:not(.is-fixed) .global-nav > ul > li > a { color: #fff; }
.global-nav > ul > li.is-current > a, .global-nav > ul > li.is-ancestor > a { color: var(--cyan); }
.global-nav .sub { position: absolute; top: 100%; left: 37px; min-width: 200px; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.15); opacity: 0; visibility: hidden; transition: opacity .25s; }
.global-nav > ul > li:hover > .sub, .global-nav > ul > li:focus-within > .sub { opacity: 1; visibility: visible; }
.global-nav .sub li a { display: block; padding: 14px 20px; font-size: 14px; line-height: 1.5; color: var(--blue); border-bottom: 1px solid var(--line); white-space: nowrap; }
.global-nav .sub li a:hover { background: var(--bg); opacity: 1; }

/* ---------- お知らせ帯（トップ上部の黄色） ---------- */
.header-message { position: relative; z-index: 210; padding: 10px 0; font-size: 16px; line-height: 1; background: var(--yellow); }
.header-message__body { width: var(--content-w); max-width: 100%; margin: 0 auto; }
.header-message__body a { text-decoration: underline; }
.header-message__close { position: absolute; right: 0; top: 0; width: 25px; height: 25px; line-height: 25px; text-align: center; background: rgba(0,0,0,.1); }
.header-message__close svg { width: 14px; height: 14px; vertical-align: middle; }
.header-message[hidden] { display: none; }

/* ---------- ドロワー（スマホ） ---------- */
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 80%; max-width: 312px; background: #fff; z-index: 300; overflow-y: auto; transform: translateX(100%); transition: transform .3s; }
.drawer-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 290; opacity: 0; visibility: hidden; transition: opacity .3s; }
body.drawer-open .drawer { transform: none; }
body.drawer-open .drawer-overlay { opacity: 1; visibility: visible; }
body.drawer-open { overflow: hidden; }
.drawer-menu > li { position: relative; border-bottom: 1px solid var(--line); }
.drawer-menu a { display: block; padding: 18px 20px; font-size: 13px; line-height: 1.6; color: var(--blue); background: #fff; }
.drawer-menu > li.is-current > a { color: #fff; background: #6fc2d3; }
.drawer-menu__toggle { position: absolute; top: 1px; right: 0; width: 55px; height: 55px; text-align: center; }
.drawer-menu__toggle svg { width: 12px; height: 12px; }
.drawer-menu > li.is-open > .drawer-menu__toggle svg { transform: rotate(180deg); }
.drawer-menu .sub { display: none; }
.drawer-menu > li.is-open > .sub { display: block; }
.drawer-menu .sub li a { padding: 14px 25px 12px; font-size: 14px; background: #e3e3e3; border-top: 1px solid #fff; }
.drawer__banner { padding: 20px 0; text-align: center; }

/* ---------- 見出し帯・パンくず ---------- */
.page-header { position: relative; width: var(--wide-w); max-width: calc(100% - 80px); height: 400px; margin: 0 auto; background: center top / cover no-repeat; display: flex; align-items: center; justify-content: center; }
.page-header--narrow { width: var(--content-w); }
.page-header { flex-direction: column; }
.page-header--overlay::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.2); }
.page-header__title { position: relative; z-index: 1; font-size: 28px; font-weight: 500; line-height: 1.5; color: #000; text-align: center; }
.page-header--overlay .page-header__title { font-size: 32px; color: #fff; }
.page-header__sub { position: absolute; left: 0; top: 0; z-index: 1; width: 100px; height: 100px; line-height: 100px; font-size: 14px; font-weight: 500; color: #fff; background: var(--cyan-text); text-align: center; }
.breadcrumb { width: var(--wide-w); max-width: calc(100% - 80px); margin: 0 auto; height: 69px; line-height: 69px; font-size: 12px; color: var(--cyan-text); }
.breadcrumb--narrow { width: var(--content-w); }
.breadcrumb li { display: inline; position: relative; }
.breadcrumb li + li::before { content: ""; display: inline-block; width: 10px; height: 10px; margin: 0 8px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7-1.4-1.4L13.2 12 7.6 6.4z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7-1.4-1.4L13.2 12 7.6 6.4z'/%3E%3C/svg%3E") center / contain no-repeat; color: #000; vertical-align: middle; }
.breadcrumb a { color: #000; }
.breadcrumb .breadcrumb__home svg { width: 12px; height: 12px; vertical-align: -1px; }
.breadcrumb .breadcrumb__home span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- 電話ボタン・先頭へ ---------- */
.tel-button { position: fixed; right: 0; top: 149px; z-index: 150; transform: translateX(calc(100% - 60px)); transition: transform .3s; }
.tel-button:hover { transform: none; }
.tel-button a { display: block; height: 60px; line-height: 60px; padding: 0 40px 0 62px; color: #fff; background: var(--teal); white-space: nowrap; }
.tel-button svg { position: absolute; left: 21px; top: 21px; width: 18px; height: 18px; color: #fff; }
.to-top { position: fixed; right: 0; bottom: 0; width: 60px; height: 60px; line-height: 60px; text-align: center; color: #fff; background: var(--teal-dark); z-index: 150; opacity: 0; visibility: hidden; transition: opacity .3s; }
.to-top.is-visible { opacity: 1; visibility: visible; }
.to-top svg { width: 12px; height: 12px; vertical-align: middle; }

/* ---------- 本文（WordPress ブロックの記法を含む） ---------- */
.content { font-size: 16px; line-height: 2.2; }
.content p { margin-bottom: 32px; }
.content p:last-child { margin-bottom: 0; }
.content h2 { margin: 40px 0 15px; font-size: 24px; font-weight: 600; line-height: 1.4; }
.content h2:first-child { margin-top: 0; }
.content h3 { margin: 30px 0 15px; font-size: 20px; font-weight: 600; line-height: 1.5; }
.content h4 { margin: 20px 0 10px; font-size: 18px; font-weight: 600; line-height: 1.5; }
.content ul, .content ol { margin: 0 0 32px 1.5em; }
.content ul { list-style: disc; }
.content ol { list-style: decimal; }
.content a { text-decoration: none; }
.content img { height: auto; }
.content figure { margin: 0 0 32px; }
.content figure.aligncenter, .content .aligncenter { text-align: center; }
.content table { width: 100%; font-size: 15px; line-height: 1.6; }
.content table td, .content table th { padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.content table.has-fixed-layout { table-layout: fixed; }
.content .wp-block-table.is-style-regular td, .content .wp-block-table.is-style-regular th { padding: 8px 10px 8px 0; border: 0; }
.content .wp-block-table figcaption { font-size: 13px; color: var(--grey); }
.content .wp-block-table.is-style-stripes tr:nth-child(odd) td { background: var(--bg); }
.content pre.wp-block-preformatted { margin: 0 0 27px; padding: 20px; font-family: inherit; white-space: pre-wrap; background: var(--bg); }
.content .has-medium-font-size { font-size: 20px; }
.content .has-large-font-size { font-size: 28px; }
.content .has-small-font-size { font-size: 13px; }
.content .has-text-align-center { text-align: center; }
.content .has-text-align-right { text-align: right; }
.content .wp-block-columns { display: flex; flex-wrap: nowrap; align-items: normal; gap: 2em; margin-bottom: 32px; box-sizing: border-box; }
.content .wp-block-columns.are-vertically-aligned-center { align-items: center; }
.content .wp-block-column { flex-grow: 1; flex-basis: 0; min-width: 0; overflow-wrap: break-word; word-break: break-word; }
.content .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
.content .wp-block-column.is-vertically-aligned-center { align-self: center; }
.content table p { margin: 0; }
.content table .wp-block-image, .content table figure { margin: 0; }
.content .wp-block-button__link { display: inline-block; padding: 12px 24px; color: #fff; background: #32373c; border-radius: 9999px; text-decoration: none; line-height: 1.5; }
.content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.content .wp-block-buttons.is-content-justification-center { justify-content: center; }
.content .wp-block-image { margin-bottom: 32px; }
.content .wp-block-image img { height: auto; }
.content .wp-block-separator { border: 0; border-top: 2px solid currentColor; margin: 16px 0; }
.content .wp-block-separator:not(.has-text-color) { color: var(--line); }
.content .has-cyan-bluish-gray-color { color: #abb8c3; }
/* WordPress の「流し込み」配置（is-layout-flow）: 中の部品は余白を持たず、区切り線だけが間隔を作る */
.content .is-layout-flow > * { margin-top: 0; margin-bottom: 0; }
.content .is-layout-flow > .wp-block-columns, .content .wp-block-columns .wp-block-columns { margin-bottom: 0; }
.content .is-layout-flow > .wp-block-separator { margin: 16px 0; }
.content h5, .content h6 { margin: 0; font-size: 16px; font-weight: 600; line-height: 2.2; }
.content .wp-block-group { margin-bottom: 32px; }
.content .wp-block-pdfemb-pdf-embedder-viewer { max-width: none; }
.content blockquote { margin: 0 0 32px; padding: 0 0 0 20px; border-left: 4px solid var(--line); }
/* 病院が本文に書いた案内カード（当院について・トップの TOPICS）。病院側の追加CSSの見た目を引き継いだもの。
   画像の割り当ては、本文の <a> の並び順（a・br・br の繰り返しなので 3 つおき）で決まる */
.link-blocks-container { display: flex; flex-wrap: wrap; justify-content: space-between; }
.link-blocks-container .block { position: relative; display: flex; align-items: flex-end; justify-content: center; width: calc(49% - 16px); height: 250px; margin: 8px; color: #000 !important; background: #f9f9f9 center / cover no-repeat; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 2px 5px rgba(0,0,0,.1); text-align: center; text-decoration: none; overflow: hidden; }
.link-blocks-container .block::before { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 20%; background: rgba(255,255,255,.6); }
.link-blocks-container .block .content { position: relative; z-index: 1; padding: 8px; }
.link-blocks-container .block h3 { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.4; }
.link-blocks-container .block p { margin: 0; }
.link-blocks-container > a:nth-child(1) { background-image: url('/wp-content/uploads/2024/09/boshu_bokashi.png'); }
.link-blocks-container > a:nth-child(4) { background-image: url('/wp-content/uploads/2024/03/フッター_PC.jpeg'); }
.link-blocks-container > a:nth-child(7) { background-image: url('/wp-content/uploads/2023/04/お電話で診療予約をおこない受診してください.jpeg'); }
.link-blocks-container > a:nth-child(10) { background-image: url('/wp-content/uploads/2023/04/medicine.png'); border: 3px solid #930; }
.link-blocks-container > a:nth-child(10) h3 { color: #930; }
.link-blocks-container > a:nth-child(13) { background-image: url('/wp-content/uploads/2024/03/IMG_1330-1-scaled.jpeg'); }
.link-blocks-container > a:nth-child(16) { background-image: url('/wp-content/uploads/2023/04/当院では、幅広い診療に対応しています.jpeg'); }
.link-blocks-container > a:nth-child(19) { background-image: url('/wp-content/uploads/2023/04/お知らせ_モバイル.jpeg'); }
.link-blocks-container > a:nth-child(22) { background-image: url('/wp-content/uploads/2023/04/消化器科_トップ.jpeg'); }
.link-blocks-container > a:nth-child(25) { background-image: url('/wp-content/uploads/2024/08/プラセンタ４.jpeg'); }
.content .cb_headline { margin-bottom: 25px; font-size: 14px; font-weight: 600; line-height: 1; color: var(--cyan-head); text-align: center; }
.content .cb_catch { margin-bottom: 40px; font-size: 38px; font-weight: 500; line-height: 1; text-align: center; }

/* 病院が本文に書いた下層ページの案内（当院について: 診療科一覧と同じ並びの札） */
.content #service_list { display: flex; flex-wrap: wrap; gap: 15px 16px; margin: 40px 0 0; }
.content #service_list .item { width: calc(50% - 8px); }
.content #service_list .item > a { display: block; color: #000; text-decoration: none; }
.content #service_list .item p:empty { display: none; }
.content #service_list .image_wrap { display: none; }
.content #service_list .title_area { padding: 45px 50px; border: 1px solid var(--line); }
.content #service_list .title { margin: 0; font-size: 22px; font-weight: 700; line-height: 1.8; color: #00a8cc; }
.content #service_list .desc { margin: 5px 0 0; font-size: 16px; line-height: 2.2; }
.content #service_list .desc + p, .content #service_list > p { display: none; }

/* ---------- 固定ページ ---------- */
.page-body { width: var(--content-w); max-width: 100%; margin: 0 auto; padding: 40px 0 110px; }

/* ---------- 診療科（個別） ---------- */
.dept { width: var(--content-w); max-width: 100%; margin: 0 auto; padding-bottom: 60px; }
.dept #service_top_desc, .dept__lead { padding: 38px 0 107px; font-size: 16px; line-height: 2.6; }
.dept .service_content { margin: 50px 0; }
.dept .service_content2 { margin-bottom: 120px; }
.dept .top_headline { display: table; margin: 0 auto 60px; padding-top: 25px; font-size: 24px; font-weight: 500; line-height: 1; border-top: 3px solid var(--cyan-text); }
.dept .service_content1 .top_headline { margin-bottom: 40px; }
.dept .item_list { display: flex; flex-wrap: wrap; gap: 20px; }
.dept .item_list .item { flex: 1 1 300px; min-width: 0; }
.dept .item_list .image { height: 200px; background: center / cover no-repeat; }
.dept .item_list .desc { padding: 15px 0; font-size: 16px; line-height: 1.8; }
.dept .post_content { font-size: 16px; line-height: 2.2; }
.dept .post_content p { margin-bottom: 32px; }
.dept .post_content p:last-child { margin-bottom: 0; }

/* ---------- 一覧（お知らせ） ---------- */
.list-body { width: var(--content-w); max-width: 100%; margin: 0 auto; padding-bottom: 150px; }
.news-list { }
.news-card { position: relative; border-top: 3px solid var(--line); margin-top: -3px; }
.news-card:last-child { border-bottom: 3px solid var(--line); }
.news-card a { display: flex; align-items: center; min-height: 210px; background: #fff; }
.news-card__image { display: none; }
.news-card__body { flex: 1 1 auto; min-width: 0; padding: 0 60px; }
.news-card__date { margin-bottom: 10px; font-size: 12px; color: var(--grey); }
.news-card__title { font-size: 18px; font-weight: 500; line-height: 1.8; color: #000; }
.pager { margin-top: 60px; text-align: center; font-size: 0; }
.pager li { display: inline-block; margin-right: -1px; }
.pager a, .pager span { display: inline-block; width: 45px; height: 45px; line-height: 43px; font-size: 14px; color: #000; background: #fff; border: 1px solid var(--line); text-align: center; }
.pager .is-current { color: #fff; background: var(--cyan-text); border-color: var(--cyan-text); }
.pager svg { width: 10px; height: 10px; vertical-align: middle; }

/* ---------- 一覧（コラム・月別） ---------- */
.blog-grid { display: flex; flex-wrap: wrap; width: var(--content-w); max-width: 100%; margin: 0 auto; padding: 120px 0; }
.blog-card { position: relative; width: 33.3333%; }
.blog-card__category { position: absolute; left: 30px; top: 175px; z-index: 1; height: 35px; line-height: 35px; padding: 0 20px; font-size: 12px; color: #fff; background: #02a8c6; }
.blog-card > a { display: block; }
.blog-card__image { height: 210px; background: center / cover no-repeat; }
.blog-card__body { position: relative; height: 159px; padding: 25px 30px 25px; background: #fff; border: 1px solid var(--line); margin: 0 0 -1px -1px; }
.blog-card__title { font-size: 14px; font-weight: 500; line-height: 1.6; color: #000; }
.blog-card__date { position: absolute; left: 30px; bottom: 25px; font-size: 12px; color: var(--grey); }

/* ---------- 一覧（診療科） ---------- */
.dept-grid { display: flex; flex-wrap: wrap; gap: 15px 16px; width: var(--content-w); max-width: 100%; margin: 0 auto; padding-bottom: 135px; }
.dept-card { width: calc(50% - 8px); }
.dept-card a { display: block; color: #000; }
.dept-card__image { height: 200px; background: center / cover no-repeat; }
.dept-card__body { height: 200px; padding: 45px 50px; border-bottom: 1px solid var(--line); }
.dept-card__title { font-size: 22px; font-weight: 700; line-height: 1.8; color: #00a8cc; }
.dept-card__desc { margin-top: 5px; font-size: 16px; line-height: 2.2; }

/* ---------- 記事（お知らせ・コラム） ---------- */
.post-wrap { display: flex; justify-content: space-between; width: var(--content-w); max-width: 100%; margin: 0 auto; }
.post-main { flex: 1 1 auto; min-width: 0; }
.post-wrap--sidebar .post-main { flex: 0 0 calc(100% - 290px); }
.sidebar { flex: 0 0 250px; margin-bottom: 150px; }
.post__category { margin-bottom: 12px; }
.post__category a { display: inline-block; height: 25px; line-height: 25px; padding: 0 12px; font-size: 12px; color: #fff; background: #02a8c6; }
.post__thumb { height: 400px; margin-bottom: 20px; background: center / cover no-repeat; }
.post__title { margin-top: 30px; font-size: 26px; font-weight: 500; line-height: 1.3; }
.post__date { margin-top: 12px; margin-bottom: 38px; font-size: 12px; color: var(--grey); }
.post-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 60px; }
.post-nav__item { flex: 0 0 calc(50% - 10px); }
.post-nav__item a { position: relative; display: flex; align-items: center; min-height: 120px; padding: 20px 30px 20px 60px; color: #000; border: 1px solid var(--line); }
.post-nav__item a::before { content: ""; position: absolute; left: 28px; top: 50%; width: 10px; height: 10px; margin-top: -5px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 5l-7 7 7 7 1.4-1.4L10.8 12l5.6-5.6z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 5l-7 7 7 7 1.4-1.4L10.8 12l5.6-5.6z'/%3E%3C/svg%3E") center / contain no-repeat; }
.post-nav__item--next a { padding: 20px 60px 20px 30px; }
.post-nav__item--next a::before { left: auto; right: 28px; transform: scaleX(-1); }
.post-nav__image { flex: 0 0 80px; height: 80px; margin-right: 15px; background: center / cover no-repeat; }
.post-nav__item--next .post-nav__image { order: 2; margin: 0 0 0 15px; }
.post-nav__title { font-size: 16px; line-height: 1.6; }
.post-nav__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.recent-news { margin-top: 100px; padding-bottom: 100px; }
.recent-news__title { display: table; margin: 0 auto 48px; padding-top: 25px; font-size: 22px; font-weight: 500; line-height: 1; border-top: 3px solid var(--cyan-text); }
.recent-news .news-card a { min-height: 210px; }
.recent-news__more { margin-top: 48px; text-align: center; }
.recent-news__more a { display: inline-block; min-width: 240px; height: 60px; line-height: 58px; padding: 0 40px; color: #000; border: 1px solid #000; }
.sidebar__widget { margin-bottom: 50px; }
.sidebar__title { display: inline-block; margin-bottom: 20px; padding-top: 20px; font-size: 16px; font-weight: 500; line-height: 1; border-top: 3px solid var(--cyan-text); }
.sidebar__posts li a { display: flex; gap: 15px; align-items: center; height: 100px; color: #000; background: #fff; border: 1px solid var(--line); margin-bottom: -1px; }
.sidebar__posts .image { flex: 0 0 98px; height: 98px; background: center / cover no-repeat; }
.sidebar__posts .title { font-size: 13px; line-height: 1.6; }
.sidebar__posts .date { margin-top: 6px; font-size: 11px; color: var(--grey); }
.sidebar__list { border: 1px solid var(--line); }
.sidebar__list li a { display: block; padding: 12px 20px; font-size: 14px; line-height: 1.5; color: #000; border-top: 1px solid var(--line); }
.sidebar__list li:first-child a { border-top: 0; }
.sidebar__archive-title { padding: 12px 20px; font-size: 14px; font-weight: 400; border: 1px solid var(--line); border-bottom: 0; }

/* ---------- トップ ---------- */
.home-hero { position: relative; height: 100vh; min-height: 600px; background: #fff; overflow: hidden; }
.home-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s; }
.home-hero__slide.is-active { opacity: 1; }
.home-hero__image { position: absolute; inset: 0; background: center / cover no-repeat; }
.home-hero__slide::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.2); }
.home-hero__catch { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); z-index: 1; padding: 0 40px; font-size: 34px; font-weight: 500; line-height: 1.5; color: #fff; text-align: center; text-shadow: 0 0 30px #000; }
.home-news { height: 60px; background: var(--bg); }
.home-news__inner { position: relative; width: var(--content-w); max-width: 100%; margin: 0 auto; height: 60px; }
.home-news__ticker { position: absolute; left: 0; top: 0; width: 850px; height: 60px; overflow: hidden; }
.home-news__item { position: absolute; inset: 0; display: none; align-items: center; gap: 20px; line-height: 60px; }
.home-news__item.is-active { display: flex; }
.home-news__item a { display: flex; gap: 20px; color: #000; }
.home-news__item .date { color: var(--grey); font-size: 12px; }
.home-news__item .title { font-size: 14px; }
.home-news__more { position: absolute; right: 0; top: 0; width: 150px; height: 60px; line-height: 60px; text-align: right; color: #000; }
.home-news__more svg { width: 12px; height: 12px; vertical-align: middle; margin-left: 6px; }
.section { padding: 120px 0; }
.section--access { scroll-margin-top: var(--header-h); }
.section__inner { width: var(--content-w); max-width: 100%; margin: 0 auto; }
.section__eyebrow { margin-bottom: 25px; font-size: 14px; font-weight: 600; line-height: 1; color: var(--cyan-head); text-align: center; letter-spacing: .05em; }
.section__catch { margin-bottom: 60px; font-size: 38px; font-weight: 500; line-height: 1; text-align: center; }
.section__desc { margin: -16px 0 110px; font-size: 16px; line-height: 2.6; text-align: center; }
.section--free { padding: 0; margin: 50px 0; }
.section--free .content { font-size: 16px; }
.service-band { position: relative; padding: 60px 0; background: center / cover no-repeat; }
.service-band::before { content: ""; position: absolute; inset: 0; background: rgba(30,115,190,.3); }
.service-band__list { position: relative; display: flex; flex-wrap: wrap; gap: 12px 15px; width: var(--content-w); max-width: 100%; margin: 0 auto; }
.service-card { flex: 0 0 238px; background: #fff; text-align: center; }
.service-card a { display: block; color: #000; }
.service-card__title { padding: 28px 30px 25px; font-size: 22px; font-weight: 600; line-height: 1.2; }
.service-card__image { display: none; }
.service-card__desc { margin: 18px 0; padding: 0 29px; font-size: 14px; line-height: 1.5; text-align: left; }
.message-area { display: flex; border: 1px solid var(--line); border-left: 0; border-right: 0; }
.message-area__image { flex: 0 0 50%; min-height: 500px; background: center / cover no-repeat; }
.message-area__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: 30px 70px; font-size: 16px; line-height: 2; }
.message-area__desc { margin-top: 20px; }
.message-area__sign { margin-top: 53px; }
.message-area__sub { font-size: 14px; line-height: 1; margin-bottom: 20px; }
.message-area__name { font-size: 16px; font-weight: 500; line-height: 1; }
.link-button { margin-top: 60px; text-align: center; }
.link-button a { display: inline-block; min-width: 240px; height: 60px; line-height: 58px; padding: 0 40px; color: #000; border: 1px solid #000; }
.access-area { display: flex; background: var(--bg); min-height: 500px; }
.access-area__map { flex: 0 0 50%; min-height: 500px; }
.access-area__body { flex: 0 0 50%; min-width: 0; align-self: center; padding: 22px 70px; font-size: 16px; line-height: 2.2; }
.access-area__body p { margin: 0; }

/* ---------- フッター ---------- */
.site-footer { font-size: 14px; }
.footer-top { position: relative; padding: 60px 0; }
.footer-top__bg { position: absolute; inset: 0; background: center / cover no-repeat; }
.footer-top__bg--sp { display: none; }
.footer-top::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.3); }
.footer-top__inner { position: relative; z-index: 1; width: var(--content-w); max-width: 100%; margin: 0 auto; }
.footer-depts { color: #fff; text-align: center; }
.footer-depts__title { font-size: 16px; font-weight: 600; line-height: 1; }
.footer-depts ul { margin-top: 15px; font-size: 0; }
.footer-depts li { display: inline-block; font-size: 14px; line-height: 28px; }
.footer-depts li::after { content: "・"; }
.footer-depts li:last-child::after { content: ""; }
.footer-depts a { color: #fff; }
.footer-data { display: flex; gap: 25px; margin-top: 55px; }
.footer-tel { position: relative; flex: 1 1 0; min-width: 0; background: #fff; }
.footer-tel__title { position: absolute; left: 0; top: 50%; width: 200px; padding: 0 30px; transform: translateY(-50%); font-size: 14px; font-weight: 600; line-height: 1; }
.footer-tel__body { margin-left: 200px; padding: 13px 0 8px; }
.footer-tel__number { font-size: 28px; font-weight: 500; line-height: 1; }
.footer-tel__icon svg { width: 22px; height: 22px; color: var(--cyan); vertical-align: -2px; margin-right: 2px; }
.footer-tel__desc { margin-top: 10px; font-size: 14px; line-height: 1.5; }
.footer-schedule { flex: 1 1 0; min-width: 0; align-self: center; width: 100%; font-size: 14px; background: #fff; border: 3px solid var(--cyan-line); }
.footer-schedule th, .footer-schedule td { padding: 20px 6px; font-weight: 400; color: var(--cyan); text-align: center; vertical-align: middle; border: 1px solid var(--cyan-line); }
.footer-schedule th:first-child, .footer-schedule td:first-child { width: 24%; }
.footer-bottom { padding: 60px 0; text-align: center; }
.footer-bottom__logo a { display: inline-block; }
.footer-bottom__address { margin-top: 23px; font-size: 16px; line-height: 2; }
.footer-sns { margin-top: 20px; font-size: 0; }
.footer-sns li { display: inline-block; margin: 0 5px; }
.footer-sns a { display: inline-block; width: 20px; height: 20px; color: #000; }
.footer-sns svg { width: 15px; height: 15px; vertical-align: middle; }
.footer-sns span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.footer-menu { background: var(--bg); text-align: center; font-size: 0; }
.footer-menu li { display: inline-block; margin: 0 17px; }
.footer-menu a { display: block; height: 60px; line-height: 60px; font-size: 14px; color: #000; }
.copyright { height: 60px; line-height: 60px; font-size: 12px; color: #fff; background: var(--cyan); text-align: center; }

/* ---------- スマホ ---------- */
@media screen and (max-width: 750px) {
  :root { --header-h: 60px; }
  .site { padding-top: 60px; }
  .site-header__logo { left: 20px; top: 10px; }
  .logo--pc { display: none !important; }
  .logo--sp.logo--dark { display: block; }
  .site-header--home:not(.is-fixed) .logo--sp.logo--dark { display: none; }
  .site-header--home:not(.is-fixed) .logo--sp.logo--light { display: block; }
  .global-nav { display: none; }
  .menu-toggle { display: block; position: absolute; right: 0; top: 0; width: 60px; height: 60px; z-index: 50; }
  .menu-toggle span { position: absolute; left: 20px; width: 22px; height: 2px; background: #000; transition: transform .3s, opacity .3s; }
  .site-header--home:not(.is-fixed) .menu-toggle span { background: #fff; }
  .menu-toggle span:nth-child(1) { top: 25px; }
  .menu-toggle span:nth-child(2) { top: 31px; }
  .menu-toggle span:nth-child(3) { top: 37px; }
  body.drawer-open .menu-toggle { position: fixed; right: 0; top: 0; z-index: 310; }
  body.drawer-open .menu-toggle span { background: #000; }
  body.drawer-open .menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.drawer-open .menu-toggle span:nth-child(2) { opacity: 0; }
  body.drawer-open .menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .header-message { font-size: 14px; }
  .header-message__body { padding: 0 20px; }
  .page-header, .page-header--narrow { width: 100%; max-width: 100%; height: 200px; }
  .page-header__title { font-size: 18px; }
  .breadcrumb, .breadcrumb--narrow { width: 100%; max-width: 100%; height: 44px; line-height: 43px; padding: 1px 20px 0; border-bottom: 1px solid var(--line); }
  .tel-button { display: none; }
  .to-top { width: 50px; height: 50px; line-height: 50px; }
  .content { font-size: 14px; line-height: 2; }
  .content p { margin-bottom: 24px; }
  .content h2 { font-size: 20px; line-height: 1.4; }
  .content table td, .content table th { padding: 6px 8px; }
  .content .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-wrap: wrap; }
  .content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
  .link-blocks-container { flex-direction: column; }
  .link-blocks-container .block { width: 100%; height: 150px; margin: 8px 0; }
  .link-blocks-container .block .content { padding: 2px; }
  .content .cb_catch { font-size: 24px; }
  .page-body { padding: 40px 20px 60px; }
  .content #service_list .item { width: 100%; }
  .content #service_list .title_area { padding: 23px 25px; }
  .content #service_list .title { font-size: 18px; }
  .content #service_list .desc { font-size: 14px; line-height: 2; }
  .dept { padding: 0 20px 40px; }
  .dept #service_top_desc, .dept__lead { padding: 30px 0; font-size: 14px; line-height: 2.6; }
  .dept .service_content { margin: 30px 0; }
  .dept .service_content2 { margin-bottom: 40px; }
  .dept .top_headline { padding-top: 15px; font-size: 20px; margin-bottom: 40px; }
  .dept .post_content { font-size: 14px; line-height: 2; }
  .dept .post_content p { margin-bottom: 24px; }
  .list-body { padding: 0 0 60px; }
  .news-card a { min-height: 115px; }
  .news-card__body { padding: 20px; }
  .news-card__date { margin-bottom: 5px; font-size: 10px; }
  .news-card__title { font-size: 15px; line-height: 1.5; }
  .pager { margin-top: 40px; }
  .blog-grid { padding: 0; }
  .blog-card { width: 50%; }
  .blog-card__category { left: 20px; top: 85px; height: 30px; line-height: 30px; padding: 0 15px; font-size: 10px; }
  .blog-card__image { height: 115px; }
  .blog-card__body { height: 121px; padding: 16px 20px; }
  .blog-card__date { left: 20px; bottom: 16px; font-size: 10px; }
  .dept-grid { gap: 13px 0; padding: 0 20px 60px; }
  .dept-card { width: 100%; }
  .dept-card__image { height: 130px; }
  .dept-card__body { height: auto; padding: 23px 25px; }
  .dept-card__desc { font-size: 16px; line-height: 2; }
  .post-wrap { flex-direction: column; padding: 0 20px; }
  .post__title { margin: 30px -20px 0; padding: 0 20px; }
  .post__date { margin-top: 7px; margin-bottom: 20px; }
  .post-wrap--sidebar .post-main { flex-basis: auto; }
  .sidebar { flex-basis: auto; margin: 40px 0 60px; }
  .post__title { font-size: 20px; }
  .post__thumb { height: 200px; }
  .post-nav { gap: 0; margin-top: 30px; }
  .post-nav__item { flex-basis: 50%; }
  .post-nav__item a, .post-nav__item--next a { min-height: 50px; padding: 0 10px 0 30px; justify-content: center; }
  .post-nav__item a::before { left: 12px; }
  .post-nav__item--next a { padding: 0 30px 0 10px; }
  .post-nav__item--next a::before { right: 12px; }
  .post-nav__title, .post-nav__image { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .post-nav__label { position: static; width: auto; height: auto; clip: auto; margin: 0; font-size: 14px; color: #000; }
  .recent-news { margin-top: 40px; padding-bottom: 40px; }
  .recent-news__title { padding-top: 15px; margin-bottom: 40px; font-size: 22px; }
  .recent-news .news-list { margin: 0 -20px; }
  .recent-news__more { margin-top: 30px; }
  .sidebar__title { display: table; margin: 0 auto 35px; padding-top: 17px; }
  .sidebar__widget { margin-bottom: 40px; }
  .home-hero { height: 450px; min-height: 0; }
  .home-hero__catch { font-size: 18px; padding: 0 50px; }
  .home-news { height: auto; padding: 7px 20px 8px; }
  .home-news__inner { height: auto; }
  .home-news__ticker { position: static; width: 100%; height: 45px; }
  .home-news__item { line-height: 1.5; }
  .home-news__item a { flex-direction: column; gap: 4px; justify-content: center; }
  .home-news__more { position: static; display: block; width: 100%; height: 36px; line-height: 36px; text-align: center; }
  .section { padding: 40px 20px; }
  .section__eyebrow { margin-bottom: 10px; font-size: 12px; }
  .section__catch { font-size: 24px; line-height: 1.5; margin-bottom: 32px; }
  .section__desc { margin: -12px 0 30px; font-size: 16px; line-height: 2.6; }
  .section--free { margin: 30px 0; padding: 0 20px; }
  .section--medical { padding-bottom: 0; }
  .service-band { margin: 0 -20px; padding: 40px 20px; }
  .service-band__list { gap: 10px; }
  .service-card { flex-basis: calc(50% - 5px); }
  .service-card__title { padding: 20px 15px 15px; font-size: 18px; }
  .service-card__desc { margin: 12px 0; padding: 0 15px; font-size: 13px; }
  .message-area { flex-direction: column; border: 1px solid var(--line); }
  .message-area__image { flex-basis: auto; height: 320px; min-height: 0; }
  .message-area__body { padding: 30px; font-size: 14px; line-height: 2; }
  .link-button { margin-top: 40px; }
  .link-button a { min-width: 0; width: 100%; height: 50px; line-height: 48px; }
  .access-area { flex-direction: column; min-height: 0; }
  .access-area__map { flex-basis: auto; min-height: 320px; }
  .access-area__body { flex-basis: auto; padding: 27px 30px 23px; font-size: 14px; line-height: 2; }
  .footer-top { padding: 40px 20px; }
  .footer-top__bg--pc { display: none; }
  .footer-top__bg--sp { display: block; }
  .footer-data { flex-direction: column; gap: 11px; margin-top: 35px; }
  .footer-tel { padding: 20px; text-align: center; }
  .footer-tel__title { position: static; width: auto; padding: 0; transform: none; margin-bottom: 15px; }
  .footer-tel__body { margin: 0; padding: 0; }
  .footer-schedule { font-size: 12px; }
  .footer-schedule th, .footer-schedule td { padding: 4px 6px; }
  .footer-bottom { padding: 40px 0 37px; }
  .footer-bottom__address { padding: 0 40px; font-size: 14px; }
  .footer-menu { padding: 33px 0 30px; }
  .footer-menu li { display: block; margin: 0 0 5px; }
  .footer-menu a { height: 28px; line-height: 28px; }
  .copyright { height: 50px; line-height: 50px; }
}
