@charset "UTF-8";
/* =========================================================
   fs-theme.css — 共通部品カタログ（fs-* クラス・Brizy/Cure非依存）
   ヘッダーは fs-chrome.css、追従CTAは fs-cta.css、下層本文部品は kpage.css。
   色・フォントは base.css の変数のみを使う。
   ========================================================= */
.fs-page * { box-sizing: border-box; }
.fs-page img { max-width: 100%; height: auto; }
.fs-main { display: block; }

/* ヒーロー（.fs-hero）とパンくず（.fs-crumb）は fs-chrome.css へ移設（本番1:1） */

/* ---------- ラッパ / セクションラベル / セクション見出し ---------- */
.fs-wrap { max-width: var(--fs-wrap); margin: 0 auto; padding: 0 24px; }
.fs-label { text-align: center; margin: 0 auto 44px; }
.fs-label__en { display: flex; align-items: center; justify-content: center; gap: 22px; margin: 0 0 14px; font-family: var(--fs-font-en); font-size: 20px; letter-spacing: .16em; color: var(--fs-accent); }
.fs-label__en::before, .fs-label__en::after { content: ""; width: 120px; max-width: 20vw; height: 1px; background: var(--fs-line); }
.fs-label__jp { margin: 0; font-size: 27px; letter-spacing: .04em; }
.fs-sechead { text-align: center; margin: 0 0 40px; }
.fs-sechead__en { margin: 0 0 8px; font-family: var(--fs-font-en); font-size: 14px; letter-spacing: .2em; color: var(--fs-accent); }
.fs-sechead__jp { margin: 0; font-size: clamp(22px, 3vw, 30px); }
.fs-sechead__jp mark { background: linear-gradient(transparent 60%, var(--fs-accent-soft) 60%); }
.section-head { text-align: center; margin-bottom: 36px; }
.section-head__en { font-family: var(--fs-font-en); letter-spacing: .3em; color: var(--fs-accent); font-size: 14px; margin: 0 0 8px; }
.section-head__ja { font-size: clamp(22px, 3vw, 30px); }

/* ---------- ボタン ---------- */
.fs-btn { display: inline-block; margin-top: 22px; padding: 14px 40px; background: var(--fs-primary); color: var(--fs-white); font-size: 15px; letter-spacing: .04em; transition: filter .2s; }
.fs-btn:hover { filter: brightness(1.1); }
.fs-btn2 { display: inline-flex; align-items: center; justify-content: center; min-width: 220px; padding: 14px 24px; border: 1px solid var(--fs-primary); color: var(--fs-primary); background: var(--fs-white); font-size: 15px; transition: .2s; }
.fs-btn2:hover { background: var(--fs-primary); color: var(--fs-white); }

/* ---------- チェックリスト（経歴・資格） ---------- */
.fs-check { border: 1px solid var(--fs-line); padding: 14px 30px; position: relative; margin-top: 18px; }
.fs-check__ttl { position: absolute; top: -13px; left: 22px; background: var(--fs-primary); color: var(--fs-white); font-size: 12px; letter-spacing: .06em; padding: 3px 16px; }
.fs-check__list li { position: relative; padding: 6px 0 6px 24px; font-size: 15px; line-height: 1.7; }
.fs-check__list li::before { content: "\f00c"; font-family: "Font Awesome 5 Free"; font-weight: 900; position: absolute; left: 0; top: 8px; color: var(--fs-accent); font-size: 13px; }

/* ---------- 監修者ボックス（E-E-A-T） ---------- */
.fs-super-wrap { padding: 60px 20px 80px; }
.fs-super { max-width: 920px; margin: 0 auto; border: 1px solid var(--fs-line); padding: 30px 34px; background: var(--fs-primary-soft); }
.fs-super__eyebrow { margin: 0 0 18px; font-size: 18px; letter-spacing: .06em; color: var(--fs-primary); border-bottom: 1px solid var(--fs-line); padding-bottom: 12px; }
.fs-super__body { display: grid; grid-template-columns: 200px 1fr; gap: 30px; align-items: start; }
.fs-super__figure img { width: 100%; }
.fs-super__name { margin: 0 0 12px; font-size: 19px; }
.fs-super__career { margin: 0 0 16px; font-size: 14px; line-height: 1.9; }
.fs-super__qh { margin: 0 0 8px; font-size: 13px; color: var(--fs-primary); font-weight: 600; }
.fs-super__quals { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 18px; }
.fs-super__quals li { position: relative; padding-left: 16px; font-size: 13px; }
.fs-super__quals li::before { content: "・"; position: absolute; left: 0; color: var(--fs-accent); }

/* 診療時間表（.fs-hours）は fs-chrome.css へ移設（本番1:1） */

/* ---------- 関連ページ一覧（<!--FS_SC:related-->） ---------- */
.fs-related { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin: 20px 0; list-style: none; }
.fs-related li { list-style: none; } /* 中黒を出さない（本文CSSの ul li { list-style: disc } 対策） */
.fs-related li a { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border: 1px solid var(--fs-line); font-size: 14px; transition: .2s; }
.fs-related li a::after { content: "\f105"; font-family: "Font Awesome 5 Free"; font-weight: 900; color: var(--fs-accent); }
.fs-related li a:hover { background: var(--fs-primary-soft); }

/* ---------- 休診カレンダー（inc/closed-days.php） ---------- */
.fs-closecal { max-width: 360px; }
.fs-closecal__title { margin: 0 0 8px; font-size: 15px; font-weight: 600; color: var(--fs-primary); }
.fs-closecal__panel { display: none; }
.fs-closecal__panel.is-active { display: block; }
.fs-closecal__bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.fs-closecal__caption { margin: 0; font-size: 15px; font-weight: 600; }
.fs-closecal__btn { width: 36px; height: 36px; border: 1px solid var(--fs-line); background: var(--fs-white); font-size: 18px; line-height: 1; }
.fs-closecal__btn:disabled { opacity: .3; cursor: default; }
.fs-closecal__table { width: 100%; border-collapse: collapse; font-size: 13px; text-align: center; }
.fs-closecal__table th, .fs-closecal__table td { padding: 5px 0; border: 1px solid var(--fs-line-2); }
.fs-closecal__table th { font-weight: 500; background: var(--fs-primary-soft); }
.fs-closecal__table .sun { color: #c0392b; }
.fs-closecal__table .sat { color: var(--fs-primary); }
.fs-closecal__table td.is-closed { background: var(--fs-accent-soft); color: #c0392b; font-weight: 700; }
.fs-closecal__table td.is-today { outline: 2px solid var(--fs-primary); outline-offset: -2px; }
.fs-closecal__list { margin: 8px 0 0; font-size: 12px; }
.fs-closecal__list li { display: flex; gap: 8px; }
.fs-closecal__d { color: #c0392b; min-width: 3em; }
.fs-closecal__note { margin: 8px 0 0; font-size: 12px; color: var(--fs-muted); display: flex; align-items: center; gap: 6px; }
.fs-closecal__mark { display: inline-block; width: 14px; height: 14px; background: var(--fs-accent-soft); border: 1px solid var(--fs-line); }

/* ---------- 404 ---------- */
.fs-404 { padding: 60px 20px 90px; }
.fs-404__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.fs-404__ttl { font-size: clamp(20px, 3vw, 26px); margin-bottom: 18px; }
.fs-404__lead { margin: 0 0 30px; line-height: 2; }
.fs-404__links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 0 0 30px; }
.fs-404__tel { line-height: 2; }
.fs-404__tel a { font-size: 22px; font-weight: 700; color: var(--fs-primary); }

/* ---------- フォーム（CF7 共通） ---------- */
.fs-form input[type=text], .fs-form input[type=email], .fs-form input[type=tel], .fs-form input[type=date], .fs-form select, .fs-form textarea { width: 100%; border: 1px solid var(--fs-line); background: var(--fs-white); padding: 12px 14px; font-size: 16px; color: var(--fs-text); border-radius: 0; }
.fs-form input:focus, .fs-form select:focus, .fs-form textarea:focus { outline: none; border-color: var(--fs-primary); box-shadow: 0 0 0 2px var(--fs-primary-soft); }
.fs-form textarea { min-height: 150px; resize: vertical; }
.fs-form .wpcf7-list-item { display: inline-block; margin: 0 16px 0 0; }
.fs-form .wpcf7-list-item label { min-height: 36px; cursor: pointer; }
.fs-form input[type=checkbox], .fs-form input[type=radio] { width: 20px; height: 20px; accent-color: var(--fs-primary); vertical-align: middle; margin: 0 6px 0 0; }
.fs-form .wpcf7-not-valid-tip { color: #c0392b; font-size: 12.5px; }
.fs-form .wpcf7-submit { display: block; margin: 20px auto 0; width: 320px; max-width: 100%; height: 56px; border: none; background: var(--fs-primary); color: var(--fs-white); font-size: 16px; font-weight: 700; letter-spacing: .06em; cursor: pointer; }
.fs-form .wpcf7-submit:hover { filter: brightness(1.1); }
.fs-form .wpcf7-response-output { border: 1px solid var(--fs-line); padding: 14px 18px; margin: 18px 0 0; font-size: 14px; }

/* ---------- YouTube 遅延埋め込み（.fs-yt[data-yt]：fs-theme.js） ---------- */
.fs-yt { position: relative; aspect-ratio: 16 / 9; background: #000 center / cover no-repeat; cursor: pointer; }
.fs-yt::after { content: ""; position: absolute; top: 50%; left: 50%; width: 68px; height: 48px; transform: translate(-50%, -50%); background: rgba(0,0,0,.7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 28px no-repeat; border-radius: 10px; }
.fs-yt.is-playing::after { display: none; }
.fs-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- ポップアップ（[data-fs-popup="id"] → #id.fs-popup：fs-theme.js） ---------- */
.fs-popup { position: fixed; inset: 0; z-index: 5000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.fs-popup[hidden] { display: none; }
.fs-popup__bg { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.fs-popup__box { position: relative; max-width: 900px; width: 100%; max-height: 90vh; overflow: auto; background: var(--fs-white); padding: 28px; box-shadow: 0 10px 40px rgba(0,0,0,.35); }
.fs-popup__close { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border: 0; background: var(--fs-primary); color: var(--fs-white); font-size: 22px; line-height: 36px; }
body.fs-popup-open { overflow: hidden; }

/* フッター（.fs-footer / .fs-copyright）は fs-chrome.css へ移設（本番1:1） */

/* ---------- レスポンシブ ---------- */
@media screen and (max-width: 768px) {
  .fs-super { padding: 22px 18px; }
  .fs-super__body { grid-template-columns: 1fr; }
  .fs-super__figure { max-width: 220px; }
  .fs-popup__box { padding: 16px; }
}
