@charset "utf-8";
/* しがき先生クリニック 下層ページ共通（Figma忠実） */

.fh-page{ font-family:var(--sc-mincho); color:var(--sc-text); }
.fh-page img{ max-width:100%; height:auto; }
.fh-wrap{ max-width:1000px; margin:0 auto; padding:0 20px; }
.fh-center{ text-align:center; }

/* ---- 下層ページヘッダー（写真バナー＋英語ラベル＋和文タイトル）---- */
.fh-phead{ position:relative; background:linear-gradient(135deg,#f3ead9,#e6d8bf); background-size:cover; background-position:center; min-height:230px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.fh-phead:before{ content:""; position:absolute; inset:0; background:rgba(255,250,242,.58); }
.fh-phead > div{ position:relative; z-index:2; }
.fh-phead__en{ text-transform:uppercase; letter-spacing:.3em; font-size:12px; color:var(--sc-gold-dark); margin:0 0 8px; font-family:Arial,sans-serif; }
.fh-phead__ja{ font-family:var(--sc-mincho); font-size:32px; font-weight:600; color:var(--sc-text-deep); margin:0; letter-spacing:.08em; }
.fh-breadcrumb{ max-width:1000px; margin:14px auto 0; padding:0 20px; font-size:12px; color:var(--sc-text); }
.fh-breadcrumb a{ color:var(--sc-gold-dark); text-decoration:none; }

/* ---- セクション見出し（トップと共通スタイル）---- */
.fh-sechead{ text-align:center; margin:0 0 34px; }
.fh-sechead__en{ text-transform:uppercase; letter-spacing:.28em; font-size:12px; color:var(--sc-gold-dark); margin:0 0 10px; font-family:Arial,sans-serif; }
.fh-sechead__ja{ font-family:var(--sc-mincho); font-size:28px; font-weight:600; color:var(--sc-text-deep); position:relative; padding-bottom:18px; margin:0; letter-spacing:.06em; }
.fh-sechead__ja:after{ content:""; position:absolute; left:50%; bottom:0; width:44px; height:2px; margin-left:-22px; background:var(--sc-gold); }

/* 中見出し（院長紹介 等の帯見出し） */
.fh-subhead{ text-align:center; font-family:var(--sc-mincho); font-size:20px; color:var(--sc-text-deep); margin:0 0 34px; position:relative; }
.fh-subhead span{ background:#fff; padding:0 24px; position:relative; z-index:1; }
.fh-subhead:before{ content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:var(--sc-border); }

/* ---- ボタン ---- */
.fh-btn{ display:inline-block; background:var(--sc-gold); color:#fff!important; text-decoration:none; font-size:15px; padding:16px 46px; letter-spacing:.08em; transition:.25s; }
.fh-btn:hover{ background:var(--sc-gold-dark); }

/* ---- 汎用テーブル（プロフィール・情報）---- */
.fh-table{ border-collapse:collapse; width:100%; }
.fh-table th,.fh-table td{ text-align:left; padding:14px 4px; font-size:14px; line-height:1.9; vertical-align:top; border-bottom:1px solid var(--sc-border); }
.fh-table th{ width:110px; color:var(--sc-gold-dark); font-weight:normal; white-space:nowrap; }

/* ---- メッセージボックス（クリーム＋金枠）---- */
.fh-msgbox{ background:var(--sc-cream); border:1px solid var(--sc-border); padding:30px 34px; font-size:14px; line-height:2.1; color:var(--sc-text); }

/* ============ 医師紹介 ============ */
.fh-doctor{ padding:70px 0 90px; background:#fff; }
.fh-doc{ display:flex; gap:44px; align-items:flex-start; margin:0 0 30px; }
.fh-doc__photo{ flex:0 0 340px; }
.fh-doc__photo .ph{ width:100%; height:420px; background:linear-gradient(135deg,#efe7d8,#e3d6bf); display:flex; align-items:center; justify-content:center; color:#a99; font-size:13px; }
.fh-doc__body{ flex:1; }
.fh-doc__role{ font-size:13px; color:var(--sc-text); margin:0 0 4px; }
.fh-doc__name{ font-family:var(--sc-mincho); font-size:30px; color:var(--sc-text-deep); margin:0 0 22px; letter-spacing:.08em; }
.fh-sec-gap{ height:64px; }

/* ============ 初めての方へ / 汎用本文 ============ */
.fh-article{ padding:64px 0 90px; background:#fff; }
.fh-flow{ counter-reset:step; list-style:none; margin:0; padding:0; }
.fh-flow > li{ position:relative; border:1px solid var(--sc-border); padding:26px 30px 26px 84px; margin:0 0 18px; }
.fh-flow > li:before{ counter-increment:step; content:"0" counter(step); position:absolute; left:26px; top:26px; font-family:var(--sc-mincho); font-size:24px; color:var(--sc-gold); }
.fh-flow h3{ font-family:var(--sc-mincho); font-size:18px; color:var(--sc-text-deep); margin:0 0 8px; }
.fh-flow p{ font-size:14px; line-height:1.9; margin:0; }

/* ============ 診療内容 一覧（6カード）============ */
.fh-svcarch{ padding:70px 0 90px; background:var(--sc-cream); }
.fh-svcarch__grid{ max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.fh-svcarch__card{ background:#fff; border:1px solid var(--sc-border); }
.fh-svcarch__card a{ display:block; position:relative; padding:36px 34px 58px; text-decoration:none; color:var(--sc-text); }
.fh-svcarch__icon{ display:flex; align-items:center; justify-content:center; width:80px; height:80px; border-radius:50%; background:var(--sc-beige); border:1px solid var(--sc-border); margin:0 auto 16px; }
.fh-svcarch__icon img{ width:48px; height:48px; object-fit:contain; }
.fh-svcarch__badge{ position:absolute; top:22px; left:50%; transform:translateX(-50%); border:1px solid var(--sc-gold); color:var(--sc-gold-dark); font-size:11px; padding:2px 12px; }
.fh-svcarch__title{ font-family:var(--sc-mincho); font-size:20px; color:var(--sc-text-deep); text-align:center; margin:0 0 14px; }
.fh-svcarch__list{ font-size:14px; line-height:2; white-space:pre-line; color:var(--sc-text); }
.fh-svcarch__more{ position:absolute; right:30px; bottom:22px; color:var(--sc-gold-dark); font-size:13px; }

/* ============ よくある質問 ============ */
.fh-faq{ padding:64px 0 90px; background:#fff; }
.fh-faq__tabs{ display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--sc-border); max-width:920px; margin:0 auto 40px; }
.fh-faq__tabs a{ flex:1 1 25%; text-align:center; padding:14px 8px; font-size:13px; color:var(--sc-text); text-decoration:none; border:1px solid var(--sc-border); margin:-1px 0 0 -1px; }
.fh-faq__tabs a.is-active,.fh-faq__tabs a:hover{ background:var(--sc-cream); color:var(--sc-gold-dark); }
.fh-faq__item{ border-bottom:1px solid var(--sc-border); padding:22px 4px; }
.fh-faq__q{ display:flex; gap:14px; font-family:var(--sc-mincho); font-size:16px; color:var(--sc-text-deep); }
.fh-faq__q b{ background:var(--sc-gold); color:#fff; width:30px; height:30px; display:flex; align-items:center; justify-content:center; flex:0 0 30px; font-family:Arial; }
.fh-faq__a{ font-size:14px; line-height:1.9; padding:12px 0 0 44px; color:var(--sc-text); }

/* ============ アクセス ============ */
.fh-access-pg{ padding:64px 0 90px; background:#fff; }
.fh-access-pg__map{ height:380px; background:#e9e6df; overflow:hidden; margin:0 0 30px; }
.fh-access-pg__map iframe{ width:100%; height:100%; border:0; display:block; }

/* ============ 診療詳細 本文（医療コンテンツ） ============ */
.fh-med-note{ background:#fbf5ea; border:1px solid var(--sc-border); color:var(--sc-gold-dark); font-size:13px; line-height:1.8; padding:12px 18px; margin:0 0 30px; }
.fh-med-lead{ text-align:center; font-size:17px; color:var(--sc-text-deep); line-height:1.9; margin:0 0 30px; }
.fh-med-illust{ margin:26px auto 32px; max-width:680px; text-align:center; }
.fh-med-illust img{ width:100%; height:auto; border:1px solid var(--sc-border); }
.fh-med-illust figcaption{ font-size:12px; color:var(--sc-text); margin-top:8px; }
.fh-service-body h3{ font-family:var(--sc-mincho); font-size:22px; color:var(--sc-text-deep); margin:46px 0 18px; padding-bottom:12px; border-bottom:2px solid var(--sc-gold); }
.fh-service-body h4{ font-family:var(--sc-mincho); font-size:17px; color:var(--sc-text-deep); margin:28px 0 10px; }
.fh-med-defs dt{ font-family:var(--sc-mincho); color:var(--sc-gold-dark); font-weight:600; margin:18px 0 4px; }
.fh-med-defs dd{ margin:0 0 10px; font-size:14px; line-height:1.95; }
.fh-med-check{ background:var(--sc-cream); border:1px solid var(--sc-border); padding:24px 28px; margin:22px 0 34px; }
.fh-med-check > p{ font-weight:600; color:var(--sc-text-deep); margin:0 0 14px; }
.fh-med-check ul{ list-style:none; margin:0; padding:0; }
.fh-med-check li{ position:relative; padding:6px 0 6px 30px; font-size:14px; line-height:1.7; }
.fh-med-check li:before{ content:"\2611"; position:absolute; left:0; color:var(--sc-gold); font-size:16px; }
.fh-service-body ul.fh-plain{ list-style:none; padding:0; margin:0 0 14px; }
.fh-service-body ul.fh-plain li{ position:relative; padding:6px 0 6px 18px; font-size:14px; line-height:1.85; }
.fh-service-body ul.fh-plain li:before{ content:"・"; position:absolute; left:0; color:var(--sc-gold-dark); }
.fh-service-body .fh-treat{ margin:12px 0 6px; }
.fh-service-body .fh-treat b{ color:var(--sc-gold-dark); }

/* ============ 追従ボタン確実に前面 ============ */
#side_button{ z-index:300!important; }

/* ============ レスポンシブ（暫定）============ */
/* タブレット */
@media screen and (min-width:768px) and (max-width:1024px){
  .fh-doc__photo{ flex:0 0 280px; }
  .fh-phead__ja{ font-size:28px; }
}

/* ============ SP（Figma SP版 準拠）============ */
@media screen and (max-width:767px){
  .fh-wrap{ padding:0 16px; }

  /* 見出しバナー */
  .fh-phead{ min-height:150px; }
  .fh-phead__ja{ font-size:22px; }
  .fh-phead__en{ font-size:10px; letter-spacing:.24em; }
  .fh-breadcrumb{ font-size:11px; padding:0 16px; margin-top:10px; }

  /* セクション見出し */
  .fh-sechead__ja{ font-size:21px; padding-bottom:15px; }
  .fh-sechead__en{ font-size:10px; }
  .fh-subhead{ font-size:17px; }
  .fh-doctor,.fh-article,.fh-svcarch,.fh-faq,.fh-access-pg{ padding:44px 0 62px; }

  /* 医師紹介：縦積み */
  .fh-doc{ flex-direction:column; gap:22px; }
  .fh-doc__photo{ flex:none; width:100%; }
  .fh-doc__photo .ph{ height:260px; }
  .fh-doc__name{ font-size:24px; margin-bottom:16px; }
  /* 表は行ごと縦積み（th/tdだけblockにすると余白が崩れて文字が枠線に重なる） */
  .fh-table, .fh-table tbody, .fh-table tr, .fh-table th, .fh-table td{
    display:block; width:100%; box-sizing:border-box; }
  .fh-table{ border:1px solid var(--sc-border); }
  .fh-table tr + tr{ border-top:1px solid var(--sc-border); }
  .fh-table th{ background:var(--sc-beige); border:none!important; padding:11px 16px; font-size:13px; white-space:normal; }
  .fh-table td{ background:#fff; border:none!important; padding:13px 16px; font-size:13.5px; line-height:1.85; }
  .fh-msgbox{ padding:20px 18px; font-size:13px; line-height:1.95; }

  /* 診療内容一覧・ブログ：1カラム（テンプレのインライン3列指定を上書き） */
  .fh-svcarch__grid{ grid-template-columns:1fr!important; gap:16px; max-width:none!important; }
  .fh-svcarch__card a{ padding:30px 22px 48px; }
  .fh-svcarch__title{ font-size:18px; }
  .fh-svcarch__more{ right:20px; bottom:16px; }

  /* 受診の流れ */
  .fh-flow > li{ padding:22px 18px 22px 62px; }
  .fh-flow > li:before{ left:18px; top:22px; font-size:20px; }
  .fh-flow h3{ font-size:16px; }

  /* Q&A：「すべて」全幅＋以下2列（Figma SP準拠） */
  .fh-faq__tabs{ max-width:none; display:flex; flex-wrap:wrap; }
  .fh-faq__tabs a{ flex:0 0 50%; box-sizing:border-box; font-size:12px; padding:13px 4px; line-height:1.4; }
  .fh-faq__tabs a:first-child{ flex:0 0 100%; }
  .fh-faq__q{ font-size:15px; gap:10px; font-weight:600; align-items:flex-start; }
  .fh-faq__q b{ width:26px; height:26px; flex-basis:26px; font-size:13px; margin-top:1px; }
  .fh-faq__q span{ flex:1; padding-bottom:8px; border-bottom:1px solid var(--sc-gold); }
  .fh-faq__a{ padding-left:36px; font-size:13.5px; }
  .fh-faq__item{ padding:18px 2px; }

  /* 診療詳細 本文 */
  .fh-service-body h3{ font-size:19px; margin:34px 0 14px; }
  .fh-service-body h4{ font-size:15.5px; }
  .fh-med-lead{ font-size:15px; }
  .fh-med-illust{ margin:20px auto 24px; }
  .fh-med-check{ padding:18px 16px; }
  .fh-med-check li{ font-size:13px; padding-left:26px; }
  .fh-med-defs dd{ font-size:13px; }
  .fh-service-body ul.fh-plain li{ font-size:13px; }
  /* 料金表など横長テーブルは横スクロールで崩さない */
  .fh-service-body table{ display:block; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; }
  .fh-service-body table th,.fh-service-body table td{ font-size:12.5px; padding:10px 12px; }

  /* アクセス */
  .fh-access-pg__map{ height:240px; }
  .fh-btn{ padding:14px 30px; font-size:14px; }
}
