/**
 * 西院整骨院 Lightning G3 子テーマ用 トップページCSS
 * front-page.php と対になるスタイル（トップページ専用）
 *
 * 構造：
 *   1. CSS変数（テーマカラー・グラデ・フォント）
 *   2. 共通レイアウト・タイポグラフィ
 *   3. FV
 *   4. インパクトバナー
 *   5. 診療時間 + お知らせ
 *   6. 3つの特徴
 *   7. 症状別案内
 *   8. 選ばれる理由
 *   9. 院長メッセージ
 *  10. Instagram
 *  11. コラム
 *  12. Google口コミ
 *  13. マンガ
 *  14. CTA
 *  15. レスポンシブ調整
 *
 * ※ 全ページ共通スタイル（追尾バー、フッター院情報セクションなど）は style.css に記載
 */

/* =========================================
   1. CSS変数
   ========================================= */
.saiin-front{
  --c-primary: #0E1F3C;
  --c-primary-dark: #081529;
  --c-primary-light: #1A3058;
  --c-accent: #C5973E;
  --c-accent-soft: #E5D3A8;

  /* ゴールドグラデーション（シャンパンゴールド） */
  --g-gold: linear-gradient(135deg, #C19F38 0%, #DEC04E 25%, #F4E5A6 50%, #DEC04E 75%, #B28831 100%);
  --g-gold-soft: linear-gradient(135deg, #DEC04E 0%, #F4E5A6 50%, #DEC04E 100%);
  --g-gold-line: linear-gradient(90deg, #B28831 0%, #DEC04E 25%, #F4E5A6 50%, #DEC04E 75%, #B28831 100%);
  --g-gold-bg: linear-gradient(135deg, #DEC04E 0%, #C19F38 100%);
  /* 文字用：明るいシャンパンゴールド（text-clip用、より明るい色域） */
  --g-gold-text: linear-gradient(135deg, #DEC04E 0%, #F4E5A6 30%, #FFF4C8 50%, #F4E5A6 70%, #DEC04E 100%);

  /* ライザップ風 クリアゴールド（インパクトバナー用） */
  --c-clear-gold: #D4AF37;
  --c-clear-gold-light: #E8C547;
  --c-clear-gold-dark: #B8941F;
  --g-clear-gold: linear-gradient(180deg, #E8C547 0%, #D4AF37 50%, #B8941F 100%);
  --g-clear-gold-line: linear-gradient(90deg, #B8941F 0%, #D4AF37 50%, #B8941F 100%);

  --c-bg: #FFFFFF;
  --c-bg-sub: #F5F3EF;
  --c-text: #333;
  --c-text-sub: #666;
  --c-text-light: #999;
  --c-border: #E5E0D5;
  --c-line: #F0EADD;
  --c-danger: #C41E3A;
  --c-danger-light: #FF8888;

  --ff-body: "BIZ UDPGothic","BIZ UDGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  --ff-heading: "BIZ UDPMincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  /* メインビジュアル用：太字ゴシックでインパクト強化（一部要素のみ使用） */
  --ff-impact: "Noto Sans JP","Hiragino Sans","ヒラギノ角ゴシック","Yu Gothic","游ゴシック",sans-serif;
  /* メインビジュアル中央キャッチ用：高級感重視のUD明朝 */
  --ff-fv-catch: "BIZ UDPMincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","游明朝",serif;

  font-family: var(--ff-body);
  color: var(--c-text);
  line-height: 1.8;
  font-size: 17px;
}

/* =========================================
   2. 共通
   ========================================= */
.saiin-front *,
.saiin-front *::before,
.saiin-front *::after{ box-sizing:border-box; }
.saiin-front img{ max-width:100%; height:auto; display:block; }
.saiin-front a{ color:inherit; text-decoration:none; }
.saiin-front ul{ list-style:none; padding:0; margin:0; }
/* .is-pc / .is-sp は style.css の全ページ共通ヘルパーに移管（2026.06） */

.saiin-front .c-label{
  font-size:13px;
  letter-spacing:0.25em;
  color:var(--c-accent);
  text-align:center;
  margin:0 0 8px;
  font-weight:500;
}
.saiin-front .c-heading{
  font-size:34px;
  color:var(--c-primary);
  font-weight:500;
  text-align:center;
  margin:0 0 12px;
  letter-spacing:0.08em;
  font-family:var(--ff-heading);
}
.saiin-front .c-heading::after{
  content:"";
  display:block;
  width:60px;
  height:2px;
  background:var(--g-gold-line);
  margin:14px auto 0;
}
.saiin-front .c-lead{
  text-align:center;
  font-size:16px;
  color:var(--c-text-sub);
  margin:0 0 40px;
}

.saiin-front .c-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 28px;
  font-size:16px;
  font-weight:500;
  border-radius:2px;
  cursor:pointer;
  border:none;
  transition:opacity 0.2s;
}
.saiin-front .c-btn:hover{ opacity:0.85; }
.saiin-front .c-btn--primary{
  background:var(--g-gold-bg);
  color:#fff;
  box-shadow:0 2px 8px rgba(140,100,32,0.25);
  text-shadow:0 1px 1px rgba(0,0,0,0.15);
}
.saiin-front .c-btn--primary:hover{ background:var(--g-gold-soft); opacity:1; }
.saiin-front .c-btn--ghost{
  background:transparent;
  color:var(--c-primary);
  border:1px solid var(--c-primary);
  text-decoration:none;
}
.saiin-front .c-btn--ghost:hover{
  background:var(--c-primary);
  color:#fff;
  opacity:1;
}

/* =========================================
   3. FV
   ========================================= */
.p-fv{
  background:
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 50px,
      rgba(244,229,166,0.10) 50px,
      rgba(244,229,166,0.10) 52px,
      transparent 52px,
      transparent 100px
    ),
    radial-gradient(
      ellipse at 30% 30%,
      rgba(244,229,166,0.18) 0%,
      transparent 55%
    ),
    radial-gradient(
      ellipse at 80% 80%,
      rgba(222,192,78,0.12) 0%,
      transparent 50%
    ),
    linear-gradient(135deg, #1F3A6B 0%, #0E1F3C 50%, #050E1F 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
  padding:0 0 40px;
}

/* 上部オーバーレイコピー */
/* メインビジュアル（背景：院内写真合成ヒーロー fv-bg-pc.jpg 1920x1080 / fv-bg-sp.jpg 1080x1620）
   PC：左にコピー ／ SP：写真の下に重ねる */

/* ヒーロー本体 */
.p-fv__hero{
  position:relative;
  width:100%;
  min-height:clamp(520px, 130vw, 720px); /* SP基準 */
  display:flex;
  align-items:center;
  overflow:hidden;
}
@media(min-width:760px){
  .p-fv__hero{ min-height:620px; }
}
.p-fv__hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.p-fv__hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  /* 清潔感＋温かみにごく軽く補正（暗くしない・数値調整可） */
  filter:brightness(1.05) contrast(1.02) saturate(1.05);
}
@media(max-width:759px){
  .p-fv__hero-bg img{ object-position:center top; }
}

/* 左上から差し込む光（ゴールド〜白のグロー） */
.p-fv__hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(ellipse at 18% 12%, rgba(255,235,180,0.20) 0%, rgba(255,235,180,0) 50%),
    radial-gradient(ellipse at 82% 18%, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0) 45%);
  pointer-events:none;
}

/* 可読性ベール（PC＝左を白く起こす ／ SP＝下を白く・暗くしない） */
.p-fv__veil{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(100deg,
    rgba(255,255,255,0.78) 0%,
    rgba(255,255,255,0.72) 30%,
    rgba(255,255,255,0.48) 46%,
    rgba(255,255,255,0.16) 58%,
    rgba(255,255,255,0) 68%);
}
@media(max-width:759px){
  .p-fv__veil{
    background:linear-gradient(180deg,
      rgba(255,255,255,0) 38%,
      rgba(255,255,255,0.55) 60%,
      rgba(255,255,255,0.90) 80%,
      #ffffff 100%);
  }
}

/* コピー */
.p-fv__lead{
  position:relative;
  z-index:3;
  width:100%;
  max-width:1120px;
  margin:0 auto;
  padding:0 24px;
}
.p-fv__lead-seo,
.p-fv__lead-sub,
.p-fv__lead-main{ max-width:600px; }

/* 小さい一文（H1・SEO兼用）／白背景なし・テキストシャドウで可読性確保 */
.p-fv__lead-seo{
  margin:0 0 16px;
  font-family:var(--ff-body);
  font-size:15px;
  font-weight:700;
  line-height:1.7;
  letter-spacing:0.04em;
  color:var(--c-primary);
  text-shadow:
    0 1px 2px rgba(255,255,255,0.95),
    0 0 6px rgba(255,255,255,0.85);
  -webkit-font-smoothing:antialiased;
}
@media(min-width:760px){
  .p-fv__lead-seo{ font-size:18px; } /* PCは一回り大きく */
}

/* サブコピー（小・ネイビー帯＋白文字／左ゴールドアクセント） */
.p-fv__lead-sub{
  display:inline-block;
  margin:0 0 20px;
  padding:9px 20px 9px 18px;
  background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-light) 100%);
  border-left:4px solid var(--c-accent);
  border-radius:3px;
  color:#fff;
  font-family:var(--ff-body);
  font-size:15px;
  font-weight:700;
  letter-spacing:0.06em;
  line-height:1.5;
  box-shadow:0 6px 18px rgba(14,31,60,0.22);
}
@media(min-width:760px){
  .p-fv__lead-sub{ font-size:19px; }
}
.p-fv__lead-sub-em{ color:var(--c-accent-soft); }

/* メインコピー（最大） */
.p-fv__lead-main{
  margin:0;
  font-family:var(--ff-fv-catch);
  color:var(--c-primary);
  font-weight:700;
  line-height:1.45;
  letter-spacing:0.03em;
  font-size:30px;
  text-shadow:0 1px 3px rgba(255,255,255,0.85);
}
@media(min-width:760px){
  .p-fv__lead-main{ font-size:52px; }
}

/* 「最後の院」ゴールド強調 */
.p-fv__lead-accent{
  position:relative;
  color:var(--c-accent);
  font-weight:900;
  font-size:1.16em;
  letter-spacing:0.04em;
  white-space:nowrap;
  text-shadow:0 1px 3px rgba(255,255,255,0.9);
}
.p-fv__lead-accent::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-0.08em;
  height:4px;
  background:var(--g-gold-line);
  border-radius:2px;
}

/* SP：写真の下に重ねる（中央寄せ） */
@media(max-width:759px){
  .p-fv__hero{ align-items:flex-end; }
  .p-fv__lead{ padding:0 7% 40px; text-align:center; }
  .p-fv__lead-seo,
  .p-fv__lead-sub,
  .p-fv__lead-main{ max-width:none; margin-left:auto; margin-right:auto; }
  /* SEO一文・サブをメイン寄りに下げ、行間を詰めて視認性UP */
  .p-fv__lead-seo{ margin-bottom:9px; }
  .p-fv__lead-sub{ margin-bottom:9px; }
}

/* Google口コミバッジ（円形・シルバー／数字なし・高評価多数＋星4.5見え） */
.p-fv__badge{
  position:absolute;
  bottom:30px;
  right:24px;
  z-index:3;
  width:140px;
  height:140px;
  border-radius:50%;
  background:linear-gradient(135deg, #F5F5F5 0%, #E0E0E0 50%, #BDBDBD 100%);
  color:#0E1F3C;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-shadow:0 6px 20px rgba(0,0,0,0.3), 0 0 0 4px rgba(180,180,180,0.4);
  padding:10px;
  transform:rotate(-6deg);
  border:3px solid transparent;
  background-clip:padding-box;
}
.p-fv__badge::before{
  content:"";
  position:absolute;
  inset:-3px;
  border-radius:50%;
  background:linear-gradient(135deg, #B8B8B8 0%, #F5F5F5 25%, #FFFFFF 50%, #C0C0C0 75%, #888 100%);
  z-index:-1;
}
.p-fv__badge-label{
  font-size:11px;
  color:#0E1F3C;
  font-weight:700;
  letter-spacing:0.05em;
  margin-bottom:4px;
  white-space:nowrap;
  font-family:var(--ff-impact);
}
.p-fv__badge-big{
  font-size:19px;
  font-weight:900;
  font-family:var(--ff-impact);
  color:#0E1F3C;
  line-height:1.15;
  letter-spacing:0.02em;
  text-shadow:0 1px 0 rgba(255,255,255,0.5);
}
.p-fv__badge-stars{
  display:inline-flex;
  gap:0;
  letter-spacing:-0.5px;
  margin-top:5px;
  font-size:15px;
  line-height:1;
  --star-on:#C8A24B;
  --star-off:#cfc3a6;
}
.p-fv__badge-stars i{
  font-style:normal;
  color:var(--star-on);
}
/* 右端の星だけ半分点灯（4.5相当）。割合は 50% を変更すれば調整可 */
.p-fv__badge-stars i.is-half{
  background:linear-gradient(90deg, var(--star-on) 0 50%, var(--star-off) 50% 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
@media(max-width:640px){
  /* SPはコピーが下に来るため、バッジは右上へ退避 */
  .p-fv__badge{
    width:88px;
    height:88px;
    top:auto;
    bottom:16px;     /* 右下隅に配置 */
    right:10px;
  }
  .p-fv__badge-label{ font-size:9px; margin-bottom:2px; }
  .p-fv__badge-big{ font-size:13px; }
  .p-fv__badge-stars{ font-size:10px; letter-spacing:-1px; margin-top:3px; }
}

/* 下部 補足情報 + CTA */
.p-fv__bottom{
  max-width:1120px;
  margin:32px auto 0;
  padding:0 20px;
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:center;
}
.p-fv__info{ flex:1 1 360px; min-width:0; }
.p-fv__eyebrow{
  font-size:13px;
  letter-spacing:0.25em;
  color:var(--c-accent);
  margin:0 0 10px;
}
.p-fv__eyebrow::after{
  content:"";
  display:block;
  width:40px;
  height:2px;
  background:var(--g-gold-line);
  margin-top:6px;
}
.p-fv__desc{
  font-size:16px;
  color:#E8E8E8;
  margin:0;
  line-height:1.9;
}
.p-fv__desc strong{
  color:#fff;
  font-weight:500;
  font-family:var(--ff-heading);
  letter-spacing:0.04em;
}
@media(max-width:759px){
  .p-fv__desc strong{
    display:inline-block;
    font-size:13px;
    letter-spacing:0;
    white-space:nowrap;
    transform-origin:left center;
  }
}
.p-fv__cta{
  flex:1 1 480px;
  min-width:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}
@media(min-width:520px){
  .p-fv__cta{
    gap:8px;
  }
}
.p-fv__cta-btn{
  padding:10px 6px;
  border-radius:4px;
  text-align:center;
  line-height:1.3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  text-decoration:none;
  transition:transform 0.15s, box-shadow 0.15s;
}
.p-fv__cta-btn:hover{
  transform:translateY(-1px);
}
.p-fv__cta-btn svg{
  width:18px;
  height:18px;
  margin-bottom:2px;
}
.p-fv__cta-btn small{
  display:block;
  font-size:10px;
  opacity:0.95;
  letter-spacing:0;
  line-height:1.2;
}
.p-fv__cta-btn strong{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:0;
  line-height:1.2;
}
@media(min-width:760px){
  .p-fv__cta-btn{
    padding:12px 14px;
  }
  .p-fv__cta-btn svg{
    width:20px;
    height:20px;
  }
  .p-fv__cta-btn small{ font-size:11px; }
  .p-fv__cta-btn strong{ font-size:14px; }
}
.p-fv__cta-line{
  background:#06C755;
  color:#fff;
  box-shadow:0 2px 8px rgba(6,199,85,0.35);
}
.p-fv__cta-tel{
  background:linear-gradient(135deg, #DEC04E 0%, #C19F38 100%);
  color:#fff;
  box-shadow:0 2px 8px rgba(193,159,56,0.35);
  text-shadow:0 1px 1px rgba(0,0,0,0.15);
}
.p-fv__cta-tel strong{ font-size:13px; letter-spacing:0; }
@media(min-width:760px){
  .p-fv__cta-tel strong{ font-size:15px; letter-spacing:0.04em; }
}
.p-fv__cta-mail{
  background:#fff;
  color:var(--c-primary);
  border:1.5px solid var(--c-accent);
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
}
/* aタグの色継承対策 */
.saiin-front .p-fv__cta-btn{
  text-decoration:none;
}
.saiin-front .p-fv__cta-line,
.saiin-front .p-fv__cta-tel{
  color:#fff;
}
.saiin-front .p-fv__cta-mail{
  color:var(--c-primary);
}

/* =========================================
   4. インパクトバナー（参考サイト風 3層構造）
   ========================================= */
.p-impact{
  background:
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 70px,
      rgba(244,229,166,0.06) 70px,
      rgba(244,229,166,0.06) 71px,
      transparent 71px,
      transparent 140px
    ),
    radial-gradient(
      ellipse at 50% 0%,
      rgba(244,229,166,0.15) 0%,
      transparent 55%
    ),
    radial-gradient(
      ellipse at 50% 100%,
      rgba(222,192,78,0.10) 0%,
      transparent 50%
    ),
    linear-gradient(180deg, #0E1F3C 0%, #081529 50%, #0E1F3C 100%);
  padding:50px 16px;
  text-align:center;
  position:relative;
  overflow:hidden;
  border-top:2px solid transparent;
  border-bottom:2px solid transparent;
  border-image:var(--g-gold-line) 1;
}
.p-impact::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 50%, rgba(244,229,166,0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 50%, rgba(244,229,166,0.06) 0%, transparent 50%);
  pointer-events:none;
}
.p-impact__inner{
  position:relative;
  z-index:1;
  max-width:1120px;
  margin:0 auto;
}

/* === 上部：実績リボン === */
.p-impact__ribbon{
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding:14px 36px;
  background:var(--g-gold-bg);
  color:#fff;
  border-radius:32px;
  margin:0 0 28px;
  box-shadow:0 4px 16px rgba(193,159,56,0.4);
  text-shadow:0 1px 2px rgba(0,0,0,0.3);
  font-family:var(--ff-body);
}
.p-impact__ribbon-item{
  display:inline-flex;
  align-items:baseline;
  gap:8px;
}
.p-impact__ribbon-label{
  font-size:18px;
  font-weight:700;
  letter-spacing:0.08em;
}
.p-impact__ribbon-num{
  font-size:32px;
  font-weight:900;
  letter-spacing:0.02em;
  line-height:1;
}
.p-impact__ribbon-num small{
  font-size:19px;
  margin-left:2px;
  font-weight:700;
}
.p-impact__ribbon-divider{
  font-size:24px;
  opacity:0.6;
  font-weight:300;
}

/* === 中央：差別化メッセージ === */
.p-impact__main{
  font-size:36px;
  font-weight:900;
  color:#fff;
  font-family:var(--ff-body);
  letter-spacing:0.04em;
  line-height:1.4;
  margin:0 0 32px;
  text-shadow:0 2px 6px rgba(0,0,0,0.5);
}
.p-impact__main-line1{
  display:block;
  font-size:0.7em;
  font-weight:700;
  letter-spacing:0.06em;
  margin-bottom:6px;
  opacity:0.95;
}
.p-impact__main-line2{ display:block; }
.p-impact__main-line2 strong{
  background:var(--g-gold-text);
  background-clip:text;
  -webkit-background-clip:text;
  color:transparent;
  font-weight:900;
  font-size:1.2em;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,0.5)) drop-shadow(0 0 12px rgba(255,244,200,0.4));
  padding:0 4px;
}

/* === 下部：オファー訴求帯 === */
.p-impact__offer{
  display:inline-block;
  padding:24px 40px 22px;
  background:rgba(255,255,255,0.05);
  border:2px solid;
  border-image:var(--g-gold-line) 1;
  position:relative;
  max-width:680px;
  width:100%;
}
.p-impact__offer::before,
.p-impact__offer::after{
  content:"";
  position:absolute;
  width:18px;
  height:18px;
  background:var(--c-primary-dark);
}
.p-impact__offer::before{
  top:-2px;
  left:50%;
  transform:translateX(-50%);
}
.p-impact__offer::after{
  bottom:-2px;
  left:50%;
  transform:translateX(-50%);
}
.p-impact__offer-tag{
  display:inline-block;
  padding:7px 22px;
  background:transparent;
  color:#FFD93A;
  font-size:14px;
  font-weight:700;
  font-family:var(--ff-body);
  letter-spacing:0.15em;
  border:1px solid #FFD93A;
  border-radius:0;
  margin-bottom:18px;
  position:relative;
  z-index:2;
  text-shadow:0 0 12px rgba(255,217,58,0.4);
}
.p-impact__offer-name{
  margin:0 0 10px;
  font-family:var(--ff-body);
  color:#fff;
  line-height:1.3;
}
.p-impact__offer-name-small{
  display:block;
  font-size:19px;
  font-weight:700;
  letter-spacing:0.04em;
  line-height:1.5;
  margin-bottom:4px;
  white-space:normal;
}
.p-impact__offer-name-big{
  display:block;
  font-size:30px;
  font-weight:900;
  letter-spacing:0.06em;
}
.p-impact__offer-price{
  margin:0 0 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px 10px;
  font-family:var(--ff-body);
  color:#FFD93A;
}
.p-impact__offer-price-before{
  font-size:18px;
  font-weight:700;
  color:#fff;
  opacity:0.8;
  text-decoration:line-through;
  text-decoration-color:rgba(255,255,255,0.7);
  letter-spacing:0.02em;
}
.p-impact__offer-price-arrow{
  font-size:22px;
  font-weight:700;
  color:#fff;
  opacity:0.85;
  line-height:1;
}
.p-impact__offer-price-now{
  display:inline-flex;
  align-items:flex-end;
  gap:8px;
}
.p-impact__offer-yen-mark{
  font-size:32px;
  font-weight:700;
  color:#FFD93A;
  line-height:1;
}
.p-impact__offer-yen{
  font-size:50px;
  font-weight:900;
  letter-spacing:-0.02em;
  line-height:1;
  white-space:nowrap;
  text-shadow:0 0 16px rgba(255,217,58,0.5), 0 2px 4px rgba(0,0,0,0.5);
}
.p-impact__offer-yen small{
  font-size:24px;
  margin-left:4px;
  font-weight:700;
}
.p-impact__offer-note{
  font-size:12px;
  color:var(--c-accent-soft);
  margin:10px 0 0;
  opacity:0.85;
  line-height:1.6;
  letter-spacing:0.02em;
}

/* スマホ調整 */
@media(max-width:640px){
  .p-impact{ padding:40px 12px; }
  .p-impact__ribbon{
    flex-direction:column;
    gap:6px;
    padding:14px 24px;
    border-radius:8px;
  }
  .p-impact__ribbon-divider{ display:none; }
  .p-impact__ribbon-label{ font-size:13px; }
  .p-impact__ribbon-num{ font-size:26px; }
  .p-impact__main{ font-size:24px; }
  .p-impact__offer{ padding:20px 20px 18px; }
  .p-impact__offer-name-small{ font-size:16px; white-space:normal; }
  .p-impact__offer-name-big{ font-size:24px; }
  .p-impact__offer-price-before{ font-size:16px; }
  .p-impact__offer-yen{ font-size:38px; }
  .p-impact__offer-yen small{ font-size:17px; }
  .p-impact__offer-yen-mark{ font-size:22px; }
}

/* =========================================
   5. 診療時間 + お知らせ
   ========================================= */
.p-hours-news{ padding:50px 20px; background:var(--c-bg-sub); }
.p-hours-news__inner{
  max-width:1120px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:40px;
}
.p-hours-news__col{ flex:1 1 400px; min-width:0; }
.p-hours-news__label{
  font-size:13px;
  letter-spacing:0.25em;
  color:var(--c-accent);
  margin:0 0 6px;
  font-weight:500;
}
.p-hours-news__heading{
  font-size:23px;
  color:var(--c-primary);
  font-weight:500;
  margin:0 0 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  letter-spacing:0.05em;
  font-family:var(--ff-heading);
}
.p-hours-news__heading a{
  font-size:14px;
  color:var(--c-primary);
  font-weight:400;
  font-family:var(--ff-body);
}
.p-hours-news__heading a:hover{ color:var(--c-accent); }

.p-hours{
  border:1px solid var(--c-border);
  border-radius:4px;
  overflow:hidden;
}
.p-hours__table{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
}
.p-hours__table th,
.p-hours__table td{
  padding:10px 4px;
  text-align:center;
  border-right:1px solid var(--c-border);
  border-bottom:1px solid var(--c-border);
}
.p-hours__table tr:last-child th,
.p-hours__table tr:last-child td{ border-bottom:none; }
.p-hours__table th:last-child,
.p-hours__table td:last-child{ border-right:none; }
.p-hours__table thead th{
  background:var(--c-primary);
  color:#fff;
  font-weight:500;
  font-size:14px;
}
.p-hours__table thead .day-weekday{ color:var(--c-accent); }
.p-hours__table thead .day-holiday{ color:var(--c-danger-light); }
.p-hours__table tbody th{
  background:var(--c-bg-sub);
  color:var(--c-primary);
  font-weight:500;
  font-size:14px;
  line-height:1.3;
}
.p-hours__table tbody th small{
  display:block;
  font-size:12px;
  color:var(--c-text-light);
  font-weight:400;
  margin-top:2px;
}
.p-hours__table .mark-on{ color:var(--c-primary); font-size:17px; }
.p-hours__table .mark-off{ color:var(--c-danger); font-size:17px; }
.p-hours__table .mark-dash{ color:var(--c-text-light); font-size:14px; }
.p-hours__note{
  font-size:13px;
  color:var(--c-text-sub);
  margin:10px 0 0;
}

.p-news{
  border:1px solid var(--c-border);
  border-radius:4px;
  padding:8px 20px;
  background:#fff;
}
.p-news__item{
  display:flex;
  flex-wrap:nowrap;
  gap:12px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--c-line);
}
.p-news__item:last-child{ border-bottom:none; }
.p-news__date{
  font-size:13px;
  color:var(--c-text-light);
  flex:0 0 auto;
  white-space:nowrap;
}
.p-news__tag{
  font-size:12px;
  padding:3px 10px;
  border-radius:2px;
  color:#fff;
  font-weight:500;
  background:var(--c-primary);
  flex:0 0 auto;
  white-space:nowrap;
}
.p-news__tag--campaign,
.p-news__tag--info{ background:var(--c-primary); color:var(--c-accent); }
.p-news__title{
  font-size:15px;
  color:var(--c-text);
  flex:1 1 auto;
  min-width:0;
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* スマホ：日付＋タグは1行目、タイトルは2行目に折り返し */
@media(max-width:759px){
  .p-news__item{
    flex-wrap:wrap;
  }
  .p-news__title{
    flex:1 1 100%;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
}
.p-news__empty{
  padding:30px 0;
  text-align:center;
  color:var(--c-text-light);
  font-size:15px;
}

/* =========================================
   6. 3つの特徴
   ========================================= */
.p-features{ background:var(--c-bg-sub); padding:60px 20px; }
.p-features__list{
  max-width:1120px;
  margin:30px auto 0;
  display:flex;
  flex-direction:column;
  gap:30px;
}
.p-feature{
  background:#fff;
  border:1px solid var(--c-border);
  border-radius:4px;
  display:flex;
  flex-wrap:wrap;
  overflow:hidden;
  min-height:320px;
}
.p-feature__visual{
  flex:1 1 300px;
  min-height:240px;
  background:var(--c-bg-sub);
}
.p-feature__visual img{
  width:100%;
  height:100%;
  min-height:240px;
  object-fit:cover;
}
.p-feature__body{
  flex:1 1 320px;
  padding:32px;
  position:relative;
}
.p-feature__no{
  position:absolute;
  top:20px;
  right:24px;
  font-size:54px;
  font-weight:500;
  background:var(--g-gold);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  opacity:0.45;
  line-height:1;
}
.p-feature__eyebrow{
  font-size:12px;
  letter-spacing:0.25em;
  color:var(--c-accent);
  margin:0 0 12px;
  font-weight:500;
}
.p-feature__eyebrow::before{
  content:"";
  display:block;
  width:30px;
  height:2px;
  background:var(--g-gold-line);
  margin-bottom:10px;
}
.p-feature__title{
  font-size:28px;
  color:var(--c-primary);
  font-weight:500;
  margin:0 0 6px;
  letter-spacing:0.04em;
  font-family:var(--ff-heading);
}
.p-feature__sub{
  font-size:15px;
  color:var(--c-accent);
  font-weight:500;
  margin:0 0 16px;
}
.p-feature__desc{
  font-size:15px;
  color:var(--c-text);
  margin:0 0 16px;
  line-height:1.9;
}
.p-feature__points{
  font-size:14px;
  color:var(--c-text-sub);
  margin:0 0 20px;
}
.p-feature__points li{
  padding:4px 0 4px 18px;
  position:relative;
}
.p-feature__points li::before{
  content:"●";
  color:var(--c-accent);
  position:absolute;
  left:0;
  font-size:10px;
  top:8px;
}
.p-feature--reverse{ flex-direction:row-reverse; }


/* =========================================
   7. 症状別案内
   ========================================= */
.p-symptoms{ padding:60px 20px; background:#fff; }
.p-symptoms__grid{
  max-width:1120px;
  margin:30px auto 0;
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
@media(min-width:540px){
  .p-symptoms__grid{ grid-template-columns:repeat(2,1fr); }
}
@media(min-width:840px){
  .p-symptoms__grid{ grid-template-columns:repeat(4,1fr); }
}
.p-symptom{
  background:var(--c-bg-sub);
  border-radius:4px;
  overflow:hidden;
  text-align:center;
  transition:transform 0.2s;
}
.p-symptom:hover{ transform:translateY(-2px); }
.p-symptom__visual{
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--c-bg-sub);
}
@media(max-width:640px){
  .p-symptom__visual{
    aspect-ratio:21/9;  /* スマホでは横長に・高さを抑える */
  }
}
.p-symptom__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.p-symptom__body{ padding:18px 14px 22px; text-align:center !important; }
.p-symptom__title{
  font-size:20px;
  color:var(--c-primary);
  font-weight:700;
  margin:0 0 8px;
  font-family:var(--ff-heading);
  letter-spacing:0.05em;
  position:relative;
  padding-bottom:10px;
  text-align:center !important;
}
.p-symptom__title::after{
  content:"";
  display:block;
  width:36px;
  height:2px;
  background:var(--g-gold);
  margin:8px auto 0;
}
.p-symptom__desc{
  font-size:13px;
  color:var(--c-text-sub);
  margin:0 0 10px;
  text-align:center !important;
}
.p-symptom__link{
  font-size:13px;
  color:var(--c-accent);
  font-weight:500;
  display:block;
  text-align:center !important;
}

/* =========================================
   8. ココが違います（4ポイント）
   ========================================= */
.p-reasons{
  padding:60px 20px;
  background:var(--c-primary);
  color:#fff;
}
.p-reasons .c-heading{ color:#fff; }
.p-reasons .c-heading::after{ background:var(--g-gold-line); }
.p-reasons .c-label{ color:var(--c-accent); }
.p-reasons .c-lead{ color:#E8E8E8; }
.p-reasons__grid{
  max-width:1120px;
  margin:30px auto 0;
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:640px){
  .p-reasons__grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(min-width:1024px){
  .p-reasons__grid{
    grid-template-columns:repeat(4,1fr);
    gap:18px;
  }
}
.p-reason{
  background:#fff;
  border-radius:6px;
  padding:32px 20px 28px;
  text-align:center;
  position:relative;
  display:flex;
  flex-direction:column;
}
.p-reason__icon{
  width:64px;
  height:64px;
  margin:0 auto 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, #DEC04E 0%, #C19F38 100%);
  color:#fff;
  border-radius:50%;
  box-shadow:0 4px 12px rgba(193,159,56,0.3);
}
.p-reason__icon svg{
  width:32px;
  height:32px;
}
.p-reason__no{
  font-size:12px;
  letter-spacing:0.25em;
  color:var(--c-accent);
  margin:0 0 12px;
  font-weight:700;
  font-family:var(--ff-impact);
}
.p-reason__sub{
  font-size:13px;
  color:var(--c-text-sub);
  margin:0 0 8px;
  line-height:1.5;
  font-weight:500;
  letter-spacing:0.02em;
}
.p-reason__title{
  font-size:20px;
  color:var(--c-primary);
  font-weight:700;
  text-align:center;	
  line-height:1.4;
  margin:0 0 14px;
  letter-spacing:0.04em;
  font-family:var(--ff-heading);
  padding-bottom:14px;
  border-bottom:2px solid;
  border-image:var(--g-gold-line) 1;
}
.p-reason__desc{
  font-size:14px;
  color:var(--c-text-sub);
  margin:0;
  line-height:1.8;
  text-align:left;
}

/* =========================================
   9. 院長メッセージ
   ========================================= */
.p-message{ padding:70px 20px; background:var(--c-bg-sub); }
.p-message__inner{
  max-width:1120px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:40px;
  align-items:center;
}
.p-message__visual{
  flex:1 1 360px;
  border-radius:4px;
  overflow:hidden;
}
.p-message__visual img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.p-message__body{ flex:1 1 400px; }
.p-message__heading{
  font-size:32px;
  color:var(--c-primary);
  font-weight:500;
  line-height:1.5;
  margin:0 0 20px;
  letter-spacing:0.05em;
  font-family:var(--ff-heading);
}
.p-message__heading::after{
  content:"";
  display:block;
  width:50px;
  height:2px;
  background:var(--g-gold-line);
  margin-top:16px;
}
.p-message__lead{
  font-size:16px;
  color:var(--c-text);
  margin:0 0 20px;
  line-height:1.9;
}
.p-message__lead strong{ color:var(--c-primary); font-weight:500; }
.p-message__targets{
  margin:0 0 20px !important;
  padding:24px 28px 24px 44px !important;
  background:#fff;
  position:relative;
}
.p-message__targets::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--g-gold);
}
.p-message__targets li{
  font-size:15px;
  color:var(--c-text);
  padding:6px 0;
  line-height:1.7;
}
.p-message__targets li span{
  display:inline-block;
  background:var(--c-primary);
  color:var(--c-accent);
  font-size:13px;
  padding:3px 10px;
  margin-right:10px;
  font-weight:500;
  min-width:44px;
  text-align:center;
  border-radius:2px;
}
.p-message__close{
  font-size:16px;
  color:var(--c-text);
  margin:0 0 16px;
  line-height:1.9;
}
.p-message__close strong{ color:var(--c-primary); font-weight:500; }
.p-message__sign{
  font-size:15px;
  color:var(--c-accent);
  font-weight:500;
  text-align:right;
  margin:0;
  letter-spacing:0.05em;
}
@media(max-width:700px){
  .p-message{ padding:50px 20px; }
  .p-message__heading{ font-size:26px; }
}

/* =========================================
   10. Instagram
   ========================================= */
.p-instagram{ padding:60px 20px; background:#fff; }
.p-instagram__grid{
  max-width:1120px;
  margin:30px auto 0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;
}
.p-instagram__item{
  aspect-ratio:1/1;
  background:var(--c-bg-sub);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  color:var(--c-text-sub);
}
.p-instagram__cta{
  text-align:center;
  margin-top:30px;
}
.p-instagram__cta a{
  display:inline-block;
  padding:12px 28px;
  border:1px solid var(--c-primary);
  color:var(--c-primary);
  font-size:15px;
  font-weight:500;
  border-radius:2px;
}
.p-instagram__cta a:hover{ background:var(--c-primary); color:var(--c-accent); }

/* =========================================
   11. コラム
   ========================================= */
.p-column{ padding:60px 20px; background:var(--c-bg-sub); }
.p-column__grid{
  max-width:1120px;
  margin:30px auto 0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:20px;
}
.p-column__item{
  background:#fff;
  border-radius:4px;
  overflow:hidden;
  transition:transform 0.2s;
}
.p-column__item:hover{ transform:translateY(-2px); }
.p-column__visual{
  aspect-ratio:16/9;
  overflow:hidden;
}
.p-column__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.p-column__body{ padding:16px 20px 20px; }
.p-column__cat{
  display:inline-block;
  font-size:12px;
  color:var(--c-accent);
  background:var(--c-bg-sub);
  padding:2px 10px;
  border-radius:2px;
  margin-bottom:10px;
}
.p-column__title{
  font-size:16px;
  color:var(--c-primary);
  font-weight:500;
  margin:0 0 10px;
  line-height:1.6;
  font-family:var(--ff-heading);
  letter-spacing:0.03em;
}
.p-column__date{
  font-size:12px;
  color:var(--c-text-light);
}
.p-column__empty{
  grid-column:1/-1;
  padding:40px 0;
  text-align:center;
  color:var(--c-text-light);
  font-size:15px;
}

/* コラム「一覧を見る」ボタン */
.p-column__more{
  margin-top:36px;
  text-align:center;
}
.p-column__more-btn{
  display:inline-block;
  padding:14px 48px;
  background:var(--c-primary);
  color:#fff !important;
  text-decoration:none !important;
  font-size:15px;
  font-weight:500;
  letter-spacing:0.05em;
  border-radius:4px;
  transition:opacity 0.2s, transform 0.2s;
  font-family:var(--ff-heading);
}
.p-column__more-btn:hover,
.p-column__more-btn:focus,
.p-column__more-btn:visited{
  color:#fff !important;
  opacity:0.85;
  transform:translateY(-1px);
}
@media(max-width:759px){
  .p-column__more{ margin-top:28px; }
  .p-column__more-btn{
    padding:12px 36px;
    font-size:14px;
  }
}

/* =========================================
   12. Google口コミ
   ========================================= */
.p-reviews{ padding:60px 20px; background:#fff; }
.p-reviews__list{
  max-width:1120px;
  margin:30px auto 0;
}
/* Rich Showcase for Google Reviews のラッパー調整（必要に応じて） */
.p-reviews__list .grw-container{
  background:transparent;
}
.p-reviews__more{
  text-align:center;
  margin-top:40px;
}
/* =========================================
   13. マンガ
   ========================================= */
.p-manga{
  padding:60px 20px;
  background:var(--c-primary);
  color:#fff;
  text-align:center;
}
.p-manga .c-label{ color:var(--c-accent); }
.p-manga .c-heading{ color:#fff; }
.p-manga .c-heading::after{ background:var(--g-gold-line); }
.p-manga .c-lead{ color:#E8E8E8; }
.p-manga__visual{
  max-width:1120px;
  margin:20px auto 30px;
  border-radius:4px;
  overflow:hidden;
}
.p-manga__visual img{
  width:100%;
  height:auto;
  display:block;
}
.p-manga__btn{
  display:inline-block;
  padding:14px 36px;
  background:var(--g-gold-bg);
  color:#fff;
  font-size:15px;
  font-weight:500;
  border-radius:2px;
  box-shadow:0 2px 12px rgba(140,100,32,0.4);
  text-shadow:0 1px 1px rgba(0,0,0,0.15);
  letter-spacing:0.05em;
}
.p-manga__btn:hover{ background:var(--g-gold-soft); }


/* =========================================
   14. CTA
   ========================================= */
.p-cta{
  padding:60px 20px;
  background:var(--c-bg-sub);
  text-align:center;
}
.p-cta__title{
  font-size:28px;
  color:var(--c-primary);
  font-weight:500;
  margin:0 0 16px;
  letter-spacing:0.05em;
  font-family:var(--ff-heading);
  text-align:center;
}
.p-cta__lead{
  font-size:15px;
  color:var(--c-text-sub);
  margin:0 auto 32px;
  line-height:1.8;
  max-width:640px;
  text-align:center;
}
.p-cta__btns{
  display:flex;
  gap:20px;
  justify-content:center;
  flex-wrap:wrap;
  max-width:1000px;
  margin:0 auto;
}
.p-cta__btn{
  flex:1 1 280px;
  max-width:320px;
  padding:24px 20px;
  border-radius:4px;
  font-weight:500;
  text-align:center;
  line-height:1.3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-decoration:none;
  color:#fff;
  transition:transform 0.2s, box-shadow 0.2s;
}
.saiin-front .p-cta__btn{
  color:#fff;
}
.p-cta__btn:hover{
  transform:translateY(-2px);
}
.p-cta__btn svg{
  width:32px;
  height:32px;
  margin-bottom:4px;
}
.p-cta__btn small{
  display:block;
  font-size:13px;
  font-weight:400;
  opacity:0.9;
}
.p-cta__btn strong{
  display:block;
  font-size:18px;
  letter-spacing:0.03em;
}
.p-cta__btn--line{
  background:#06C755;
  color:#fff;
  box-shadow:0 4px 16px rgba(6,199,85,0.3);
}
.p-cta__btn--line:hover{
  box-shadow:0 6px 20px rgba(6,199,85,0.4);
}
.p-cta__btn--tel{
  background:var(--g-gold-bg);
  color:#fff;
  box-shadow:0 4px 16px rgba(193,159,56,0.3);
  text-shadow:0 1px 1px rgba(0,0,0,0.15);
}
.p-cta__btn--tel:hover{
  box-shadow:0 6px 20px rgba(193,159,56,0.4);
}
.p-cta__btn--tel strong{ font-size:22px; letter-spacing:0.05em; }
.p-cta__btn--mail{
  background:var(--c-primary);
  color:#fff;
  box-shadow:0 4px 16px rgba(14,31,60,0.3);
}
.p-cta__btn--mail:hover{
  box-shadow:0 6px 20px rgba(14,31,60,0.4);
}


/* =========================================
   15. レスポンシブ最終調整（スマホ）
   ========================================= */
@media(max-width:760px){
  .saiin-front{ font-size:18px; }

  /* FV コピー（スマホ微調整） */
  .p-fv__lead-seo{
    font-size:13.5px;
    line-height:1.6;
    font-weight:800;
    display:inline-block;
    padding:6px 12px;
    border-radius:6px;
    background:rgba(255,255,255,0.55);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    text-shadow:
      0 1px 2px rgba(255,255,255,1),
      0 0 4px rgba(255,255,255,1),
      0 0 10px rgba(255,255,255,0.95);
  }
  .p-fv__lead-sub{ font-size:17px; }
  .p-fv__lead-main{ font-size:35px; }

  /* セクション共通見出し */
  .saiin-front .c-heading{ font-size:30px; }
  .saiin-front .c-lead{ font-size:16px; }

  /* 本文系 */
  .p-feature__desc,
  .p-message__lead,
  .p-message__close,
  .p-news__title,
  .p-fv__desc{ font-size:17px; line-height:1.9; }

  /* 補助情報系 */
  .p-feature__points,
  .p-feature__points li,
  .p-message__targets li,
  .p-reason__desc,
  .p-symptom__desc,
  .p-column__date,
  .p-column__cat,
  .p-news__date,
  .p-hours__note{ font-size:15px; }

  /* 各セクションタイトル */
  .p-feature__title,
  .p-message__heading{ font-size:26px; }
  .p-reason__title{ font-size:21px; }
  .p-cta__title{ font-size:26px; }

  /* カードタイトル */
  .p-symptom__title{ font-size:20px; }
  .p-column__title{ font-size:17px; }

  /* 診療時間 */
  .p-hours__table{ font-size:16px; }
  .p-hours__table thead th,
  .p-hours__table tbody th{ font-size:15px; }
  .p-hours__table .mark-on,
  .p-hours__table .mark-off{ font-size:22px; }
}

.p-clinic-footer__visual img{
  object-position: center 30%;  /* 上寄りに表示 */
}
/* =========================================
   ★ 2026.06 改修 追記分（自費診療特化リニューアル）
   ・院長メッセージ：患者さんの声リスト
   ・症状別案内：代表4症状（ゴールドカード）＋上半身/下半身タブ
   ※旧 .p-symptoms__grid / .p-symptom は未使用（残置可）
   ========================================= */

/* --- 院長メッセージ：患者さんの声 --- */
.p-message__voices{
  margin:18px 0 24px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.p-message__voices li{
  position:relative;
  padding:12px 16px 12px 44px;
  background:var(--c-bg-sub);
  border-left:3px solid var(--c-accent);
  border-radius:0 4px 4px 0;
  font-size:15px;
  color:var(--c-text);
  line-height:1.7;
}
.p-message__voices li::before{
  content:"\201C";
  position:absolute;
  left:14px; top:6px;
  font-family:var(--ff-heading);
  font-size:30px;
  line-height:1;
  color:var(--c-accent);
}

/* --- 症状別案内：代表的な4症状（ゴールドカード） --- */
.p-symptoms__main{
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media(min-width:600px){
  .p-symptoms__main{ grid-template-columns:repeat(2,1fr); }
}
.p-symptom-main{
  position:relative;
  display:block;
  background:#fff;
  border:1px solid var(--c-accent-soft);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 4px 16px rgba(14,31,60,0.06);
  transition:transform .2s, box-shadow .2s;
}
.p-symptom-main::before{
  content:"";
  position:absolute; inset:0 0 auto 0;
  height:4px;
  background:var(--g-gold-line);
  z-index:2;
}
.p-symptom-main:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 26px rgba(14,31,60,0.14);
}
.p-symptom-main__visual{
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--c-bg-sub);
}
.p-symptom-main__visual img{ width:100%; height:100%; object-fit:cover; }
.p-symptom-main__body{ padding:18px 20px 20px; }
.p-symptom-main__title{
  font-family:var(--ff-heading);
  font-size:20px;
  font-weight:700;
  color:var(--c-primary);
  letter-spacing:0.04em;
  margin:0 0 8px;
  line-height:1.5;
}
@media(min-width:760px){
  .p-symptom-main__title{ font-size:22px; }
}
.p-symptom-main__desc{
  font-size:14px;
  color:var(--c-text-sub);
  line-height:1.8;
  margin:0 0 12px;
}
.p-symptom-main__link{
  display:inline-block;
  font-size:13px;
  font-weight:700;
  color:var(--c-accent);
  letter-spacing:0.04em;
}

/* --- 部位から探す（その他の症状）：CSSのみタブ --- */
.p-symptoms__more{ max-width:1120px; margin:40px auto 0; }
.p-symptoms__more-head{
  text-align:center;
  font-family:var(--ff-heading);
  font-size:18px;
  color:var(--c-primary);
  letter-spacing:0.06em;
  margin:0 0 18px;
}
.c-tabs{ position:relative; }
.c-tabs__radio{ position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
.c-tabs__nav{
  display:flex;
  gap:8px;
  max-width:480px;
  margin:0 auto;
}
.c-tabs__label{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 12px;
  background:var(--c-bg-sub);
  color:var(--c-text-sub);
  border:1px solid var(--c-border);
  border-bottom:none;
  border-radius:6px 6px 0 0;
  font-weight:700;
  font-size:15px;
  cursor:pointer;
  transition:background .2s,color .2s;
  -webkit-user-select:none;
  user-select:none;
}
.c-tabs__icon{ width:22px; height:22px; flex-shrink:0; }
#sym-tab-upper:checked ~ .c-tabs__nav label[for="sym-tab-upper"],
#sym-tab-lower:checked ~ .c-tabs__nav label[for="sym-tab-lower"]{
  background:var(--c-primary);
  color:#fff;
  border-color:var(--c-primary);
}
.c-tabs__panels{
  border:1px solid var(--c-border);
  border-radius:0 0 6px 6px;
  padding:22px 20px;
  background:#fff;
}
.c-tabs__panel{ display:none; }
#sym-tab-upper:checked ~ .c-tabs__panels .c-tabs__panel--upper{ display:block; }
#sym-tab-lower:checked ~ .c-tabs__panels .c-tabs__panel--lower{ display:block; }

/* 症状リスト（チップ） */
.p-symptoms__list{ display:grid; grid-template-columns:1fr; gap:10px; }
@media(min-width:600px){
  .p-symptoms__list{ grid-template-columns:repeat(2,1fr); }
}
.p-symptoms__list a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 16px;
  background:var(--c-bg-sub);
  border-radius:4px;
  font-size:15px;
  color:var(--c-primary);
  font-weight:500;
  transition:background .2s;
}
.p-symptoms__list a::after{ content:"→"; color:var(--c-accent); font-weight:700; }
.p-symptoms__list a:hover{ background:var(--c-line); }

/* =========================================
   ★ 2026.06 改修 追記分②：料金メニュー（p-pricing）
   ①初回限定オファー（ネイビー×ゴールドのバナー風）
   ②推奨プラン ③保証文 ＋ /price/ 誘導
   ========================================= */
.p-pricing{ padding:60px 20px; background:var(--c-bg-sub); }
.p-pricing__inner{ max-width:1120px; margin:0 auto; }

/* ── ①初回限定オファー ── */
.p-pricing-offer{
  position:relative;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(244,229,166,0.10) 0%, transparent 55%),
    linear-gradient(135deg, #1F3A6B 0%, #0E1F3C 55%, #081529 100%);
  border:2px solid var(--c-clear-gold);
  border-radius:8px;
  padding:34px 24px 30px;
  text-align:center;
  color:#fff;
  box-shadow:0 10px 30px rgba(14,31,60,0.25);
}
.p-pricing-offer__catch{
  margin:0 0 22px;
  font-family:var(--ff-heading);
  font-size:20px;
  letter-spacing:0.04em;
  line-height:1.7;
}
@media(min-width:760px){
  .p-pricing-offer__catch{ font-size:24px; }
}
.p-pricing-offer__limited{
  display:inline-block;
  margin-top:6px;
  padding:4px 18px;
  background:var(--g-clear-gold);
  color:var(--c-primary-dark);
  font-family:var(--ff-body);
  font-size:15px;
  font-weight:700;
  border-radius:999px;
  letter-spacing:0.06em;
}
.p-pricing-offer__items{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  max-width:760px;
  margin:0 auto;
}
@media(min-width:760px){
  .p-pricing-offer__items{ grid-template-columns:1fr 1fr; }
}
.p-pricing-offer__item{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(212,175,55,0.55);
  border-radius:6px;
  padding:20px 16px 22px;
}
.p-pricing-offer__badge{
  display:inline-block;
  margin:0 0 10px;
  padding:3px 14px;
  background:var(--c-danger);
  color:#fff;
  font-size:13px;
  font-weight:700;
  border-radius:3px;
  letter-spacing:0.08em;
}
.p-pricing-offer__name{
  margin:0 0 12px;
  font-size:17px;
  font-weight:700;
  line-height:1.6;
  letter-spacing:0.04em;
}
.p-pricing-offer__price{
  margin:0;
  display:flex;
  align-items:baseline;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 10px;
}
.p-pricing-offer__before{
  font-size:14px;
  color:rgba(255,255,255,0.75);
  text-decoration:line-through;
}
.p-pricing-offer__arrow{ color:var(--c-clear-gold-light); font-weight:700; }
.p-pricing-offer__now{
  font-size:16px;
  font-weight:700;
  color:var(--c-clear-gold-light);
}
.p-pricing-offer__now strong{
  font-size:34px;
  font-weight:900;
  font-family:var(--ff-impact);
  letter-spacing:0.02em;
  margin:0 1px;
}
.p-pricing-offer__now small{ font-size:15px; }

/* ── ②推奨プラン ── */
.p-pricing-plans{ margin-top:28px; }
.p-pricing-plans__head{
  text-align:center;
  font-family:var(--ff-heading);
  font-size:19px;
  color:var(--c-primary);
  letter-spacing:0.06em;
  margin:0 0 16px;
}
.p-pricing-plans__head::before,
.p-pricing-plans__head::after{
  content:"―";
  color:var(--c-accent);
  margin:0 10px;
}
.p-pricing-plans__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
@media(min-width:760px){
  .p-pricing-plans__grid{ grid-template-columns:1fr 1fr; }
}
.p-pricing-plan{
  background:#fff;
  border:1px solid var(--c-border);
  border-top:3px solid var(--c-accent);
  border-radius:6px;
  padding:22px 20px;
}
.p-pricing-plan__name{
  margin:0 0 14px;
  text-align:center;
  font-family:var(--ff-heading);
  font-size:18px;
  font-weight:700;
  color:var(--c-primary);
  line-height:1.6;
  letter-spacing:0.04em;
}
.p-pricing-plan__rows{
  margin:0 auto;
  max-width:320px;          /* 表の幅を絞り、カード中央に配置 */
}
.p-pricing-plan__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:12px 4px;
  border-bottom:1px dashed var(--c-line);
}
.p-pricing-plan__row:last-child{ border-bottom:none; }
.p-pricing-plan__row dt{
  font-size:15px;
  color:var(--c-text);
  font-weight:500;
  line-height:1.5;
  text-align:left;
}
.p-pricing-plan__row dt small{ font-size:12px; color:var(--c-text-sub); }
.p-pricing-plan__row dd{
  margin:0;
  font-family:var(--ff-impact);
  font-size:24px;
  font-weight:900;
  color:var(--c-primary);
  white-space:nowrap;
  text-align:right;         /* 金額は右端で縦に揃える */
  min-width:5.5em;          /* 桁数が違っても右端ラインを統一 */
}
.p-pricing-plan__row dd small{ font-size:14px; font-weight:700; margin-left:1px; }
.p-pricing-plan__row--em dd{ color:var(--c-accent); font-size:28px; }

/* ── ③保証・誘導 ── */
.p-pricing__assure{
  margin:22px auto 0;
  max-width:760px;
  font-size:14px;
  color:var(--c-text-sub);
  line-height:1.9;
  text-align:center;
}
.p-pricing__more{ text-align:center; margin-top:22px; }

/* =========================================
   ★ 2026.06 改修 追記分③：よくある質問（p-faq）
   <details>方式アコーディオン（JS不要）
   ========================================= */
.p-faq{ padding:60px 20px; background:#fff; scroll-margin-top:90px; /* アンカー遷移時にヘッダーと被らないように */ }
.p-faq__list{
  max-width:820px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.p-faq__item{
  background:#fff;
  border:1px solid var(--c-border);
  border-radius:6px;
  overflow:hidden;
}
.p-faq__item[open]{
  border-color:var(--c-accent-soft);
  box-shadow:0 4px 14px rgba(14,31,60,0.07);
}

/* 質問行 */
.p-faq__q{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  cursor:pointer;
  list-style:none;            /* デフォルトの▶を消す */
  font-weight:700;
  font-size:16px;
  color:var(--c-primary);
  line-height:1.6;
  transition:background .2s;
  -webkit-user-select:none;
  user-select:none;
}
.p-faq__q::-webkit-details-marker{ display:none; } /* Safari */
.p-faq__q:hover{ background:var(--c-bg-sub); }
.p-faq__q-mark{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--c-primary);
  color:#fff;
  font-family:var(--ff-impact);
  font-size:15px;
  font-weight:900;
}
.p-faq__q-text{ flex:1; }

/* 開閉アイコン（＋／−） */
.p-faq__toggle{
  flex-shrink:0;
  position:relative;
  width:18px;
  height:18px;
}
.p-faq__toggle::before,
.p-faq__toggle::after{
  content:"";
  position:absolute;
  top:50%; left:50%;
  width:14px;
  height:2px;
  background:var(--c-accent);
  transform:translate(-50%,-50%);
  transition:transform .25s;
}
.p-faq__toggle::after{ transform:translate(-50%,-50%) rotate(90deg); }
.p-faq__item[open] .p-faq__toggle::after{ transform:translate(-50%,-50%) rotate(0deg); }

/* 回答 */
.p-faq__a{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:4px 18px 18px;
  border-top:1px dashed var(--c-line);
  margin-top:0;
  padding-top:14px;
}
.p-faq__a-mark{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--g-gold-bg);
  color:#fff;
  font-family:var(--ff-impact);
  font-size:15px;
  font-weight:900;
}
.p-faq__a p{
  margin:2px 0 0;
  font-size:15px;
  line-height:1.9;
  color:var(--c-text);
}
@media(max-width:599px){
  .p-faq__q{ font-size:15px; padding:14px 14px; }
  .p-faq__a{ padding:12px 14px 16px; }
}

/* =========================================
   ★ 2026.06 改修 追記分④：お知らせ1カラム化
   旧「診療時間＋お知らせ」2カラム → お知らせのみに変更
   （診療時間表は院情報セクション p-clinic-footer に集約）
   ========================================= */
.p-hours-news--single{
  background:#fff;   /* 1カラム版は白背景（旧2カラム版はベージュ） */
}
.p-hours-news--single .p-hours-news__inner{
  max-width:820px;   /* 1カラムなので幅を絞って読みやすく */
}
/* 白背景に対して投稿リストはベージュで浮かせる */
.p-hours-news--single .p-news{
  background:var(--c-bg-sub);
  border-color:var(--c-border);
  padding:12px 24px;
}
.p-hours-news--single .p-news__item{
  border-bottom-color:#E5E0D5;  /* ベージュ地でも見える区切り線 */
}

/* --- 実績リボンの集計根拠 注記（景表法配慮） --- */
/* インパクトバナー（濃紺背景）内に置くため白系・低コントラスト */
.p-impact__ribbon-note{
  margin:-18px 0 26px;
  font-family:var(--ff-body);
  font-size:12px;
  line-height:1.5;
  color:#fff;
  opacity:0.7;
  letter-spacing:0.02em;
}
 

 

/* =========================================
   VOICE / 口コミ（ショックマスター改善の声）
========================================= */
.p-review{ background:var(--c-bg); padding:60px 20px; }
.p-review__list{
  max-width:1000px;
  margin:36px auto 0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
.p-review__card{
  background:#fff;
  border:1px solid var(--c-border);
  border-radius:14px;
  padding:36px 32px 26px;
  box-shadow:0 10px 30px rgba(14,31,60,0.06);
}
.p-review__quote{
  float:left;
  font-family:Georgia,"Times New Roman",serif;
  font-size:52px;
  line-height:0.8;
  color:var(--c-accent-soft);
  margin:-2px 12px 0 0;
}
.p-review__title{
  margin:0 0 16px;
  font-family:var(--ff-heading);
  font-size:20px;
  font-weight:700;
  line-height:1.55;
  color:var(--c-primary);
  letter-spacing:0.02em;
}
.p-review__text{
  clear:both;
  margin:0 0 24px;
  font-size:15px;
  line-height:1.9;
  color:var(--c-text-sub);
}
.p-review__person{
  display:flex;
  align-items:center;
  gap:14px;
  padding-top:20px;
  border-top:1px solid var(--c-line);
}
.p-review__avatar{
  flex:0 0 auto;
  width:52px;
  height:52px;
  border-radius:50%;
  overflow:hidden;
  background:var(--c-bg-sub);
}
.p-review__avatar img{ width:100%; height:100%; object-fit:cover; }
.p-review__id{ display:flex; flex-direction:column; gap:2px; }
.p-review__name{ font-size:15px; font-weight:700; color:var(--c-text); }
.p-review__meta{ font-size:13px; color:var(--c-text-light); }

@media(max-width:759px){
  .p-review__list{ grid-template-columns:1fr; gap:20px; }
  .p-review__card{ padding:32px 22px 24px; }
  .p-review__title{ font-size:18px; }
}
