/* =========================================================================
   きくのはな鍼灸接骨院 - main.css
   HTML版6ページのデザイン・アニメーションを完全再現。
   ページ固有スタイルは body.kiku-{slug} でスコープし
   クラス名衝突（.voice-card / .qa-* / .flow-* など）を回避。
   ========================================================================= */

/* ---------- カラー・基本変数 ---------- */
:root {
  --primary: #F4A261;
  --primary-dark: #E76F51;
  --primary-light: #FFEDD5;
  --bg: #FFF8F0;
  --bg-white: #FFFFFF;
  --bg-secondary: #FAF6F0;
  --accent: #2A9D8F;
  --accent-light: #E3F2F0;
  --coral-light: #FCE6DF;
  --text: #3D3D3A;
  --text-secondary: #6B6B68;
  --text-tertiary: #9C9A92;
  --border: #E8E0D4;
  /* LINEブランド緑は全廃。旧 --line / --line-dark もオレンジへ再定義し
     万一の残存参照（インライン等）も緑が出ないよう保険をかける */
  --line: #F4A261;
  --line-dark: #E76F51;
  /* CTA統一カラー：ブランドオレンジ（仕様：180deg 縦グラデ） */
  --cta-grad: linear-gradient(180deg, #F4A261 0%, #E76F51 100%);
  --cta-hover: linear-gradient(180deg, #E89148 0%, #D85F40 100%);
  --cta-glow: rgba(244, 162, 97, 0.30);
  /* セクション交互背景（白 → 色付き のリズム用） */
  --sec-white: #FFFFFF;
  --sec-orange: #FDEFE2;
  --sec-beige: #F5EDE0;
  --sec-hero-end: #FAF6F0;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Noto Sans JP', sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.8;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: 'Zen Maru Gothic', sans-serif; line-height: 1.5; }

.en { font-family: 'Inter', sans-serif; }

/* ---------- スマホファースト用ラッパー ---------- */
.container {
  max-width: 480px;
  margin: 0 auto;
  background: var(--bg);
  position: relative;
  min-height: 100vh;
  box-shadow: 0 0 40px rgba(0,0,0,0.05);
}

/* ---------- スクロール進捗バー ---------- */
.progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: var(--primary);
  z-index: 1000;
  width: 0%;
  transition: width 0.1s;
  max-width: 480px;
}

/* ---------- ヘッダー ---------- */
header {
  position: sticky;
  top: 0;
  background: rgba(255, 248, 240, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 0.5px solid var(--border);
  z-index: 100;
  padding: 12px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  color: var(--primary-dark);
  font-size: 18px;
  text-decoration: none;
}
.logo img { max-height: 40px; width: auto; display: block; }

.menu-btn {
  background: none;
  border: 0.5px solid var(--border);
  width: 40px;
  height: 40px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
  z-index: 210;
}
.menu-btn:hover { background: var(--primary-light); }
.menu-btn span {
  display: block;
  width: 18px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.menu-btn.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-btn.open span:nth-child(2) { opacity: 0; }
.menu-btn.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- ナビ オーバーレイ & ドロワー ---------- */
.nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 150;
}
.nav-overlay.open { opacity: 1; pointer-events: auto; }

.nav-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: 78%;
  max-width: 320px;
  background: var(--bg-white);
  box-shadow: -8px 0 30px rgba(0,0,0,0.12);
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 200;
  padding: 80px 28px 40px;
  display: flex;
  flex-direction: column;
}
.nav-drawer.open { transform: translateX(0); }

.nav-drawer a {
  display: block;
  padding: 14px 0;
  color: var(--text);
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  border-bottom: 0.5px solid var(--border);
  transition: color 0.2s;
}
.nav-drawer a .nav-en {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--text-tertiary);
  margin-left: 8px;
  text-transform: lowercase;
}
.nav-drawer a:hover { color: var(--primary-dark); }
.nav-drawer .nav-cta {
  margin-top: auto;
  background: var(--cta-grad);
  color: white;
  text-align: center;
  border-radius: 999px;
  padding: 14px;
  font-weight: 700;
  border-bottom: none;
}
.nav-drawer .nav-cta:hover { background: var(--cta-hover); color: white; }

/* ---------- セクション共通 ---------- */
section { padding: 56px 24px; scroll-margin-top: 66px; }

.section-label {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--primary-dark);
  letter-spacing: 2px;
  text-transform: lowercase;
  margin-bottom: 4px;
  font-weight: 500;
  text-align: center;
}
.section-title {
  font-size: 22px;
  font-weight: 500;
  margin-bottom: 24px;
  color: var(--text);
  text-align: center;
}
.section-title-center { text-align: center; margin-bottom: 40px; }

/* スクロールフェードイン */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-in.visible { opacity: 1; transform: translateY(0); }

/* ---------- 大波SVG区切り（セクション境目） ---------- */
.wave-divider {
  position: relative;
  width: 100%;
  height: 50px;
  line-height: 0;
  overflow: hidden;
  margin: 0;
}
.wave-divider svg {
  width: 100%;
  height: 100%;
  display: block;
}
@media (min-width: 769px) {
  .wave-divider { height: 80px; }
}

/* ---------- Googleマップ埋め込み（レスポンシブ） ---------- */
.map-wrapper {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 40px auto;
  aspect-ratio: 16 / 9;  /* PC：横長 */
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.map-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media (max-width: 768px) {
  .map-wrapper {
    aspect-ratio: 4 / 3;  /* スマホ：少し縦長 */
    margin: 24px auto;
    border-radius: 12px;
  }
}

/* ---------- サロン情報 統合カード（基本情報＋最寄り駅） ---------- */
.salon-info-card {
  background: #FDF8F1;  /* 薄ベージュ */
  border-radius: 20px;
  padding: 32px;
  max-width: 720px;
  margin: 40px auto;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
.info-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.salon-info-card .info-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.salon-info-card .info-row:last-child {
  border-bottom: none;
}
.info-icon {
  font-size: 20px;
  flex-shrink: 0;
}
.info-label {
  font-size: 14px;
  color: #888;
  min-width: 60px;
}
.info-value {
  font-size: 16px;
  color: #333;
  font-weight: 500;
}
.phone-number {
  color: #F4A261;
  font-weight: 700;
  font-size: 18px;
}
/* 電話は tel: リンク。デフォルトのリンク色を打ち消し phone-number 色を継承 */
.phone-number a {
  color: inherit;
  text-decoration: none;
  font: inherit;
}
/* 駅情報：見出し + 箇条書きリスト（上の info-row とは border-top で区切り） */
.info-stations {
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.stations-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin: 0 0 12px;
}
.stations-icon {
  font-size: 18px;
}
.stations-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.station-item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 6px 0 6px 28px;  /* 左にインデント（見出しと揃える） */
  position: relative;
}
.station-item::before {
  content: "・";
  position: absolute;
  left: 12px;
  color: #888;
}
.line-name {
  font-size: 13px;
  color: #888;
  min-width: 110px;
}
.station-name {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin-right: 8px;
}
.walk-time {
  font-size: 15px;
  font-weight: 600;
  color: #F4A261;
  margin-left: auto;
}
/* スマホ調整 */
@media (max-width: 768px) {
  .salon-info-card {
    padding: 24px 20px;
    border-radius: 16px;
    margin: 24px 16px;
  }
  .info-label {
    min-width: 48px;
    font-size: 13px;
  }
  .info-value {
    font-size: 15px;
  }
  .phone-number {
    font-size: 17px;
  }
  .stations-title {
    font-size: 14px;
  }
  .station-item {
    padding-left: 24px;
    flex-wrap: wrap;
    gap: 4px 10px;
  }
  .station-item::before {
    left: 8px;
  }
  .line-name {
    font-size: 12px;
    min-width: 95px;
  }
  .station-name {
    font-size: 15px;
  }
  .walk-time {
    font-size: 14px;
    margin-left: auto;
  }
}

/* ---------- ページヒーロー（下層ページ共通） ---------- */
.page-hero {
  background: linear-gradient(135deg, #FFEDD5 0%, #FAF6F0 100%);
  padding: 56px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 180px;
  height: 180px;
  background: var(--primary);
  border-radius: 50%;
  opacity: 0.15;
}
.page-hero::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: -80px;
  width: 220px;
  height: 220px;
  background: var(--accent);
  border-radius: 50%;
  opacity: 0.1;
}
.page-hero-label {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--primary-dark);
  letter-spacing: 2px;
  text-transform: lowercase;
  margin-bottom: 8px;
  font-weight: 500;
  position: relative;
  z-index: 1;
}
.page-hero h1 {
  font-size: 24px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 12px;
  position: relative;
  z-index: 1;
  line-height: 1.6;
}
.page-hero-sub {
  font-size: 13px;
  color: var(--text-secondary);
  position: relative;
  z-index: 1;
  line-height: 1.8;
}

/* ---------- CTAバナー（全ページ共通） ---------- */
.cta-banner {
  /* 180deg：上端を必ず #F4A261 にし、上の波線(fill=#F4A261)と段差なく連続させる */
  background: linear-gradient(180deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: white;
  text-align: center;
  padding: 48px 24px;
}
.cta-banner h2 { font-size: 20px; font-weight: 500; margin-bottom: 12px; }
.cta-banner p { font-size: 13px; margin-bottom: 24px; opacity: 0.95; line-height: 1.8; }
.cta-line-white {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: white;
  color: var(--primary-dark);
  padding: 16px 32px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  transition: all 0.2s;
}
.cta-line-white:hover { transform: translateY(-2px); }
.cta-line-white:active { transform: scale(0.97); }
.cta-banner small { display: block; margin-top: 12px; font-size: 11px; opacity: 0.9; }

/* ---------- フッター（共通） ---------- */
footer {
  background: var(--text);
  color: white;
  padding: 40px 24px 24px;
  text-align: center;
  margin-bottom: 80px;
}
footer h3 { font-size: 16px; margin-bottom: 16px; color: white; }
footer p { font-size: 12px; opacity: 0.8; margin-bottom: 4px; }
footer .footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 16px;
  margin: 16px 0 4px;
}
footer .footer-nav a {
  color: white;
  opacity: 0.85;
  font-size: 12px;
  text-decoration: none;
  transition: opacity 0.2s;
}
footer .footer-nav a:hover { opacity: 1; }
/* スマホ時：6項目を 3列×2行 で整列（PCは上の flex 1行のまま）。
   既存 .footer-nav の flex 構造は維持し、メディアクエリで上書きのみ。 */
@media (max-width: 768px) {
  footer .footer-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px 8px;
  }
  footer .footer-nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 44px;
    line-height: 1.4;
  }
}
footer .sns { margin: 20px 0; display: flex; gap: 12px; justify-content: center; }
footer .sns a {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-decoration: none;
  font-size: 14px;
  transition: all 0.2s;
}
footer .sns a:hover { background: var(--primary); border-color: var(--primary); }
footer small { font-size: 10px; opacity: 0.6; }
/* 住所はプレーンテキスト・電話は意図的なtel:リンク（白系・控えめ下線） */
footer .footer-addr { -webkit-user-select: text; user-select: text; }
footer .footer-contact a {
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.25);
  padding-bottom: 1px;
  transition: color 0.2s, border-color 0.2s;
}
footer .footer-contact a:hover { color: #fff; border-bottom-color: rgba(255,255,255,0.6); }
footer .footer-contact .footer-hours { color: inherit; }

/* ---------- ヘッダーロゴ ＆ CTA ---------- */
.site-logo {
  display: flex;
  align-items: center;
}
.site-logo a {
  display: block;
  line-height: 0;
  transition: opacity 0.3s ease;
}
.site-logo a:hover { opacity: 0.8; }
/* ロゴ：横長ロゴを height 基準で表示（width/max は解除） */
.site-logo-img,
.site-logo .custom-logo {
  height: 40px !important;     /* PC（横長・余白なしロゴ 490x176／48→40で呼吸感） */
  width: auto !important;
  max-height: none !important;
  max-width: none !important;
  display: block !important;
}
/* ヘッダー：ロゴとCTAを縦中央・左右振り分け（当テーマは header 要素） */
header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
/* CTA：ロゴと釣り合う適正サイズ */
.header-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px !important;
  background: linear-gradient(180deg, #F4A261, #E76F51);
  color: #FFFFFF;
  padding: 7px 16px !important;
  border-radius: 999px;
  font-size: 12px !important;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(244, 162, 97, 0.3);
  transition: all 0.3s ease;
  white-space: nowrap;
}
.header-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(244, 162, 97, 0.4);
}
.header-cta-icon { font-size: 14px !important; }
@media (max-width: 768px) {
  .site-logo-img,
  .site-logo .custom-logo { height: 34px !important; }
  header { padding-top: 12px !important; padding-bottom: 12px !important; }
  .header-cta { padding: 6px 14px !important; font-size: 12px !important; }
}
@media (max-width: 480px) {
  .site-logo-img,
  .site-logo .custom-logo { height: 30px !important; }
  .header-cta { padding: 6px 12px !important; }
  .header-cta-text { display: none; }
}

/* ---------- フッターロゴ（テキストのみ・画像カードは廃止） ---------- */
.footer-logo-wrapper {
  text-align: center;
  margin-bottom: 32px;
}
.footer-site-name {
  font-size: 18px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 4px;
}
.footer-tagline {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}

/* ---------- フッターSNS（ブランド色） ---------- */
.footer-sns {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 24px 0;
}
.footer-sns-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  transition: transform 0.3s ease;
}
.footer-sns-link:hover { transform: translateY(-2px); }
.footer-sns-link svg { width: 24px; height: 24px; fill: #FFFFFF; }
.footer-sns-instagram { background: linear-gradient(135deg, #F58529, #DD2A7B, #8134AF); }
.footer-sns-line { background: #06C755; }

/* ---------- フッター電話（telリンク強調） ---------- */
footer .footer-contact a.footer-phone {
  color: #FFFFFF;
  text-decoration: underline;
  text-underline-offset: 4px;
  border-bottom: none;
  padding-bottom: 0;
  font-weight: 600;
  transition: opacity 0.3s ease;
}
footer .footer-contact a.footer-phone:hover { opacity: 0.8; color: #FFFFFF; }

/* ---------- 追従固定CTA（共通） ---------- */
.floating-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 480px;
  margin: 0 auto;
  background: white;
  border-top: 0.5px solid var(--border);
  padding: 12px 20px;
  z-index: 99;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
}
.floating-cta a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--cta-grad);
  color: white;
  padding: 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  transition: all 0.2s;
  animation: pulse 2.5s ease-in-out infinite;
}
.floating-cta a:hover { background: var(--cta-hover); }
.floating-cta a:active { transform: scale(0.97); }

/* ---------- 共通キーフレーム ---------- */
@keyframes pulse {
  0%, 100% { box-shadow: 0 4px 20px var(--cta-glow); }
  50% { box-shadow: 0 4px 20px var(--cta-glow), 0 0 0 10px rgba(244, 162, 97, 0.12); }
}
@keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }
@keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }
@keyframes popIn { to { opacity: 1; transform: scale(1); } }
@keyframes mapPin { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

/* =========================================================================
   トップページ（body.kiku-home）
   ========================================================================= */
/* セクション余白：スマホ 80px / PC 120px（ファーストビュー・フッターは対象外） */
.kiku-home section { padding: 80px 24px; scroll-margin-top: 70px; }
@media (min-width: 769px) {
  .kiku-home section { padding: 120px 24px; }
}
/* ファーストビュー下余白：削除した波線分の余白を確保（SP 50px / PC 80px）。CTAバナーは独自padding。 */
.kiku-home .hero { padding: 60px 24px 50px; }
.kiku-home .cta-banner { padding: 40px 24px; }
@media (min-width: 769px) {
  .kiku-home .cta-banner { padding: 56px 24px; }
}
/* CTAバナーは他セクションと同じ列幅で左右margin/padding（横方向の隙間）なし。
   モバイル（=480px枠が画面幅）では画面端までオレンジが広がる。
   ※ 旧フルブリード(100vw)は枠外露出で薄オレンジ帯が出るため撤去。 */
body.kiku-home .cta-banner {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}
/* 見出しと本文の間に余裕を持たせる */
.kiku-home .section-label { margin-bottom: 8px; }
.kiku-home .section-title { margin-bottom: 44px; }
.kiku-home .section-title-center { margin-bottom: 48px; }

/* セクション交互背景：白 → 色付き → 白 → 色付き のリズム
   （詳細ブロックの個別背景指定に確実に勝つため body.kiku-home で詳細度を上げる） */
body.kiku-home .troubles { background: var(--sec-orange); }
body.kiku-home .about    { background: var(--sec-white); }
body.kiku-home .points   { background: var(--sec-beige); }
body.kiku-home .menu     { background: var(--sec-white); }
body.kiku-home .voice    { background: var(--sec-orange); }
body.kiku-home .qa       { background: var(--sec-white); }
body.kiku-home .instagram-section { background: var(--sec-white); }
body.kiku-home .access   { background: var(--sec-beige); }
/* 院長プロフィール：前セクション(personal)が白のため Instagram は薄オレンジ */
body.kiku-about .instagram-section { background: var(--sec-orange); }
/* 白背景になったセクションで内側カードのコントラストを確保 */
body.kiku-home .about .about-text { background: var(--sec-beige); }
body.kiku-home .menu-card:not(.featured) { border: 0.5px solid var(--border); }
body.kiku-home .qa-item { border: 0.5px solid var(--border); }

/* Instagram セクション（見出しは他セクション同様 .section-label/.section-title を流用） */
.instagram-section .section-title { margin-bottom: 12px; }
.instagram-section .instagram-subtitle {
  text-align: center;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.8;
  margin: 0 0 40px;
}
.instagram-feed-wrapper {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
}
.instagram-fallback { text-align: center; margin: 0; }
.instagram-fallback a {
  display: inline-block;
  background: var(--cta-grad);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 999px;
}
@media (max-width: 768px) {
  .instagram-section .instagram-subtitle { font-size: 13px; margin-bottom: 28px; }
  .instagram-feed-wrapper { padding: 0 16px; }
}

/* Smash Balloon：コンテナ幅を親いっぱいに（列数はプラグイン設定 Desktop3/Mobile2 に委譲） */
.instagram-feed-wrapper #sb_instagram {
  width: 100% !important;
  max-width: 100% !important;
}
.instagram-feed-wrapper #sb_instagram #sbi_images {
  width: 100% !important;
}
/* 「Follow on Instagram」ボタンは非表示 */
.instagram-feed-wrapper #sb_instagram .sbi_follow_btn {
  display: none !important;
}
/* 「Load More」ボタンをサイトCTA（オレンジ・丸角）に統一
   ※ このバージョンの Smash Balloon は <div id="sbi_load"> のため id も対象 */
.instagram-feed-wrapper #sb_instagram .sbi_load,
.instagram-feed-wrapper #sb_instagram #sbi_load {
  display: flex;
  justify-content: center;
  margin-top: 32px;
  clear: both;
}
.instagram-feed-wrapper #sb_instagram .sbi_load_btn {
  background: #F4A261 !important;
  color: #FFFFFF !important;
  border: 2px solid #F4A261 !important;
  border-radius: 999px !important;
  padding: 14px 40px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: "Noto Sans JP", sans-serif !important;
  box-shadow: 0 4px 12px rgba(244, 162, 97, 0.25) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  text-transform: none !important;
}
.instagram-feed-wrapper #sb_instagram .sbi_load_btn:hover {
  background: #E89148 !important;
  border-color: #E89148 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 16px rgba(244, 162, 97, 0.35) !important;
}
@media (max-width: 600px) {
  .instagram-feed-wrapper #sb_instagram .sbi_load_btn {
    padding: 12px 32px !important;
    font-size: 14px !important;
  }
}

/* Bio：カスタムBioの改行を反映（クラス名がバージョン差あるため3パターン） */
.instagram-feed-wrapper #sb_instagram .sbi_bio,
.instagram-feed-wrapper #sb_instagram .sb_bio,
.instagram-feed-wrapper #sb_instagram .sbi_header_bio {
  white-space: pre-line !important;
  line-height: 1.8 !important;
}

/* グリッド最下部 →「もっと見る」ボタンの余白（id/class 両対応） */
.instagram-feed-wrapper #sb_instagram .sbi_load,
.instagram-feed-wrapper #sb_instagram #sbi_load {
  margin-top: 40px !important;
  margin-bottom: 0 !important;
}
@media (max-width: 768px) {
  .instagram-feed-wrapper #sb_instagram .sbi_load,
  .instagram-feed-wrapper #sb_instagram #sbi_load {
    margin-top: 32px !important;
  }
}
/* Smash Balloon フッターの余分な余白を除去 */
.instagram-feed-wrapper #sb_instagram .sb_instagram_footer {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
/* セクション下余白を他セクションのCTA下と統一（body.kiku-home で確実に勝たせる） */
body.kiku-home .instagram-section { padding-bottom: 120px; }
@media (max-width: 768px) {
  body.kiku-home .instagram-section { padding-bottom: 80px; }
}

/* ===== ファーストビュー 横長ヒーロー背景（新規クラスのみ・既存無改変・flex不使用） ===== */
.hero-fullwidth-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.hero-fullwidth-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.hero-fullwidth-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(253, 240, 232, 0.80);
  z-index: 1;
}
/* テキスト・CTA等を最前面に（既存要素へ付与のみ・上書きなし） */
.kiku-home .hero > *:not(.hero-fullwidth-bg) {
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .hero-fullwidth-overlay { background: rgba(253, 240, 232, 0.84); }
  .hero-fullwidth-image { background-position: center 60%; }
}

/* ===== ファーストビュー 3点調整（新規上書き・既存ルールは無改変） ===== */
/* 修正1：高さを抑えて縦の間延びを解消 */
.kiku-home .hero {
  min-height: 480px !important;
  max-height: 600px !important;
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}
@media (max-width: 768px) {
  .kiku-home .hero {
    min-height: 420px !important;
    max-height: 520px !important;
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}
@media (max-width: 480px) {
  .kiku-home .hero {
    min-height: 380px !important;
    max-height: 480px !important;
  }
}
/* 修正2：左下の薄緑装飾円(::after)のみ非表示。右上(::before)は維持 */
.kiku-home .hero::after {
  display: none !important;
}
/* 修正3：オーバーレイを白へ（写真をクリーンに） */
.hero-fullwidth-overlay {
  background: rgba(255, 255, 255, 0.78) !important;
}
@media (max-width: 768px) {
  .hero-fullwidth-overlay {
    background: rgba(255, 255, 255, 0.82) !important;
  }
}

/* ===== ファーストビュー 4点調整（新規上書き・既存ルール無改変） ===== */
/* 修正1：右上の装飾円(::before)も非表示（::afterは前回非表示済み） */
.kiku-home .hero::before {
  display: none !important;
}
/* 修正2：オーバーレイを淡いオレンジグラデ（上=薄ベージュ／下=淡オレンジ） */
.hero-fullwidth-overlay {
  background: linear-gradient(
    180deg,
    rgba(253, 240, 232, 0.82) 0%,
    rgba(253, 230, 215, 0.78) 100%
  ) !important;
}
@media (max-width: 768px) {
  .hero-fullwidth-overlay {
    background: linear-gradient(
      180deg,
      rgba(253, 240, 232, 0.85) 0%,
      rgba(253, 230, 215, 0.82) 100%
    ) !important;
  }
}
/* 修正3：ヒーロー直後の .troubles を白スタートに（オレンジ被り回避・メリハリ） */
.kiku-home .troubles {
  background: #FFFFFF !important;
}
/* 修正4：ヒーロー背景画像を下寄りに（写真の中央を見せる） */
.hero-fullwidth-image {
  background-position: center 65% !important;
}
@media (max-width: 768px) {
  .hero-fullwidth-image {
    background-position: center 70% !important;
  }
}

.kiku-home .hero {
  background: var(--sec-white);
  padding: 60px 24px 50px;   /* 下余白：削除した波線(SP 50px)分。PCは下記mediaで80px */
  text-align: center;
  position: relative;
  overflow: hidden;
}
/* PC：削除した波線(PC 80px)と同じ下余白に。詳細ルールより後に置き確実に勝たせる */
@media (min-width: 769px) {
  .kiku-home .hero { padding-bottom: 80px; }
}
.kiku-home .hero::before {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 200px;
  height: 200px;
  background: var(--primary);
  border-radius: 50%;
  opacity: 0.15;
}
.kiku-home .hero::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: -80px;
  width: 250px;
  height: 250px;
  background: var(--accent);
  border-radius: 50%;
  opacity: 0.1;
}
.kiku-home .hero-img {
  width: 200px;
  height: 200px;
  margin: 0 auto 24px;
  background: var(--bg-white);
  border-radius: 50%;
  border: 4px solid var(--bg-white);
  box-shadow: 0 10px 40px rgba(244, 162, 97, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-tertiary);
  font-size: 12px;
  position: relative;
  z-index: 1;
  object-fit: cover;
  overflow: hidden;
}
.kiku-home .hero-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
/* ファーストビュー：白い円の中の画像（新規クラスのみ・既存円スタイルは無改変） */
.hero-circle-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
  display: block;
}
.kiku-home .hero h1 {
  font-size: 32px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 8px;
  position: relative;
  z-index: 1;
}
.kiku-home .hero-line { display: block; opacity: 0; transform: translateY(20px); }
.kiku-home .hero-line-1 { animation: fadeInUp 0.8s ease 0.2s forwards; }
.kiku-home .hero-line-2 { animation: fadeInUp 0.8s ease 0.5s forwards; }
.kiku-home .hero-line-3 { animation: fadeInUp 0.8s ease 0.8s forwards; color: var(--primary-dark); }
.kiku-home .hero-img-ph {
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
  text-align: center;
  line-height: 1.7;
}
/* H2サブキャッチ（H1と同じ Zen Maru Gothic・中グレー・H1の約70%サイズ） */
.kiku-home .hero-catch {
  font-family: 'Zen Maru Gothic', sans-serif;  /* H1と同じ。Klee One 解除 */
  font-size: 20px;            /* スマホ（H1 32px の約70%比率を維持） */
  font-weight: 500;           /* H1（500）に合わせる */
  color: #E89A6E;             /* 薄いオレンジ（#F4A261 の薄め版・ブランド色相統一） */
  letter-spacing: 0.05em;     /* 既存維持 */
  line-height: 1.7;
  margin: 16px 0 20px;        /* スマホ：上16 / 下20 */
  opacity: 0;
  animation: fadeInUp 0.8s ease 1.1s forwards;  /* 既存維持：H1の後にフェードイン */
  position: relative;
  z-index: 1;
}
.kiku-home .hero-sub {
  font-size: 15px;
  font-weight: 500;
  color: var(--text-secondary);
  margin: 0 0 24px;
  opacity: 0;
  animation: fadeInUp 0.8s ease 1.3s forwards;
  position: relative;
  z-index: 1;
}
.kiku-home .hero-sub .hero-loc {
  font-weight: 700;
  color: var(--primary-dark);
  font-size: 16px;
}
@media (min-width: 420px) {
  .kiku-home .hero-sub { font-size: 16px; }
  .kiku-home .hero-sub .hero-loc { font-size: 17px; }
}
/* PC：H2サブキャッチを一段大きく（H1より小さく上品に） */
@media (min-width: 769px) {
  .kiku-home .hero-catch {
    font-size: 22px;          /* PC：H1 32px の約70% */
    margin: 20px 0 24px;      /* PC：上20 / 下24 */
  }
}
.kiku-home .cta-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--cta-grad);
  color: white;
  padding: 16px 32px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  box-shadow: 0 4px 20px var(--cta-glow);
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
  animation: pulse 2.5s ease-in-out infinite, fadeInUp 0.8s ease 1.6s both;
  position: relative;
  z-index: 1;
}
.kiku-home .cta-line:hover { transform: translateY(-2px); background: var(--cta-hover); box-shadow: 0 8px 30px rgba(231, 111, 81, 0.4); }
.kiku-home .cta-line:active { transform: scale(0.97); }
.kiku-home .cta-line .cta-ico { font-size: 17px; line-height: 1; }
.kiku-home .scroll-hint {
  margin-top: 32px;     /* 上の余白は既存デザイン意図のため維持 */
  margin-bottom: 0;
  padding-bottom: 0;
  font-size: 11px;
  line-height: 1;       /* body の line-height:1.8 継承による下の隙間を解消 */
  color: var(--text-tertiary);
  letter-spacing: 2px;
  opacity: 0;
  animation: fadeInUp 0.8s ease 1.9s forwards;
}
.kiku-home .scroll-hint::after {
  content: '↓';
  display: block;
  margin-top: 4px;      /* SCROLL文字と↓矢印の間隔（重複回避） */
  margin-bottom: 0;
  line-height: 1;       /* 矢印グリフ直下の余白をゼロに＝波線とピタッと隣接 */
  animation: bounce 1.5s ease-in-out infinite;
}

/* お悩み */
.kiku-home .troubles { background: var(--bg-white); }
.kiku-home .troubles-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 32px 0 24px;
}
.kiku-home .trouble-card {
  background: var(--bg-secondary);
  border: 0.5px solid var(--border);
  padding: 20px 12px;
  border-radius: 16px;
  text-align: center;
  transition: all 0.3s;
  opacity: 0;
  transform: scale(0.8);
}
.kiku-home .trouble-card.visible { animation: popIn 0.5s ease forwards; }
.kiku-home .trouble-card.visible:nth-child(1) { animation-delay: 0s; }
.kiku-home .trouble-card.visible:nth-child(2) { animation-delay: 0.1s; }
.kiku-home .trouble-card.visible:nth-child(3) { animation-delay: 0.2s; }
.kiku-home .trouble-card.visible:nth-child(4) { animation-delay: 0.3s; }
.kiku-home .trouble-card.visible:nth-child(5) { animation-delay: 0.4s; }
.kiku-home .trouble-card.visible:nth-child(6) { animation-delay: 0.5s; }
.kiku-home .trouble-card:hover { background: var(--primary-light); transform: translateY(-2px); }
.kiku-home .trouble-icon { font-size: 36px; margin-bottom: 8px; display: block; }
.kiku-home .trouble-name { font-size: 12px; font-weight: 700; color: var(--text); margin-bottom: 2px; }
.kiku-home .trouble-desc { font-size: 10px; color: var(--text-secondary); }
.kiku-home .troubles-foot {
  font-size: 13px;
  color: var(--text-secondary);
  text-align: center;
  margin-top: 24px;
  line-height: 1.7;
}
.kiku-home .link-btn {
  display: inline-block;
  margin-top: 16px;
  color: var(--primary-dark);
  text-decoration: none;
  font-weight: 500;
  font-size: 13px;
  border-bottom: 1px solid var(--primary-dark);
  padding-bottom: 2px;
  transition: all 0.2s;
}
.kiku-home .link-btn:hover { color: var(--primary); border-color: var(--primary); }

/* About */
.kiku-home .about { background: var(--primary-light); text-align: center; }
.kiku-home .about-catch {
  font-size: 20px;
  font-weight: 500;
  color: var(--primary-dark);
  margin: 16px 0 24px;
  line-height: 1.6;
}
.kiku-home .about-text {
  font-size: 13px;
  color: var(--text);
  line-height: 2;
  text-align: left;
  background: var(--bg-white);
  padding: 24px;
  border-radius: 16px;
  margin-bottom: 20px;
}

/* 5つの特徴 */
.kiku-home .points { background: var(--bg-white); }
.kiku-home .point-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px;
  background: var(--bg-secondary);
  border-radius: 16px;
  margin-bottom: 12px;
  transition: all 0.3s;
}
.kiku-home .point-card:hover { background: var(--primary-light); transform: translateX(4px); }
.kiku-home .point-num {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--bg-white);
  background: var(--primary);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.kiku-home .point-title { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.kiku-home .point-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.7; }

/* メニュー */
.kiku-home .menu { background: var(--bg-secondary); }
.kiku-home .menu-card {
  background: var(--bg-white);
  border-radius: 20px;
  padding: 24px;
  margin-bottom: 16px;
  position: relative;
  transition: all 0.3s;
}
.kiku-home .menu-card.featured {
  border: 2px solid var(--primary);
  box-shadow: 0 8px 30px rgba(244, 162, 97, 0.15);
}
.kiku-home .menu-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(244, 162, 97, 0.2); }
.kiku-home .menu-badge {
  position: absolute;
  top: -12px;
  left: 24px;
  background: var(--primary-dark);
  color: white;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.kiku-home .menu-title { font-size: 22px; font-weight: 500; margin-bottom: 4px; }
.kiku-home .menu-sub { font-size: 12px; color: var(--text-secondary); margin-bottom: 16px; }
.kiku-home .menu-price-box {
  background: var(--bg-secondary);
  padding: 16px;
  border-radius: 12px;
  margin-bottom: 12px;
}
.kiku-home .menu-price-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 4px;
}
.kiku-home .menu-price-row:last-child { margin-bottom: 0; }
.kiku-home .menu-price-label { font-size: 12px; color: var(--text-secondary); }
.kiku-home .menu-price-value {
  font-family: 'Inter', sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: var(--primary-dark);
}
.kiku-home .menu-price-value-sub {
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: var(--text);
}
.kiku-home .menu-foot-note { font-size: 12px; color: var(--text-secondary); line-height: 1.8; }

/* 声（トップ抜粋版） */
.kiku-home .voice { background: var(--bg-white); }
.kiku-home .voice-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 24px;
}
.kiku-home .voice-stat {
  background: var(--bg-secondary);
  padding: 20px;
  border-radius: 16px;
  text-align: center;
}
.kiku-home .voice-stat-num {
  font-family: 'Inter', sans-serif;
  font-size: 28px;
  font-weight: 600;
  color: var(--primary-dark);
  display: block;
  margin-bottom: 4px;
}
.kiku-home .voice-stat-label { font-size: 11px; color: var(--text-secondary); }
.kiku-home .voice-card {
  background: var(--bg-secondary);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 12px;
}
.kiku-home .voice-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.kiku-home .voice-meta { font-size: 11px; color: var(--text-secondary); }
.kiku-home .voice-stars { color: #FFB800; font-size: 12px; }
.kiku-home .voice-title { font-size: 14px; font-weight: 700; margin-bottom: 6px; line-height: 1.5; }
.kiku-home .voice-body { font-size: 12px; color: var(--text-secondary); line-height: 1.7; }

/* Q&A（トップ：アコーディオン） */
.kiku-home .qa { background: var(--bg-secondary); }
.kiku-home .qa-item {
  background: var(--bg-white);
  border-radius: 12px;
  margin-bottom: 8px;
  overflow: hidden;
  transition: all 0.3s;
}
.kiku-home .qa-question {
  padding: 16px 20px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all 0.2s;
}
.kiku-home .qa-question:hover { background: var(--primary-light); }
.kiku-home .qa-icon { color: var(--primary-dark); font-size: 20px; font-weight: 300; transition: transform 0.3s; }
.kiku-home .qa-item.open .qa-icon { transform: rotate(45deg); }
.kiku-home .qa-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease-out; }
.kiku-home .qa-item.open .qa-answer { max-height: 400px; }
.kiku-home .qa-answer-inner {
  padding: 0 20px 20px;
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.8;
}

/* アクセス（トップ簡易版） */
.kiku-home .access { background: var(--bg-white); }
.kiku-home .access-info { background: var(--bg-secondary); border-radius: 16px; padding: 24px; }
.kiku-home .access-row {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 0.5px solid var(--border);
  font-size: 13px;
}
.kiku-home .access-row:last-child { border-bottom: none; }
.kiku-home .access-icon { font-size: 16px; flex-shrink: 0; width: 24px; text-align: center; }
.kiku-home .access-label { width: 70px; color: var(--text-secondary); font-size: 12px; flex-shrink: 0; }
.kiku-home .access-value { flex: 1; font-weight: 500; }
.kiku-home .access-value a { color: var(--primary-dark); text-decoration: none; }
.kiku-home .access-btns { display: grid; gap: 10px; margin-top: 16px; }
.kiku-home .btn-line-full {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--cta-grad);
  color: white;
  padding: 15px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.2s;
}
.kiku-home .btn-line-full:hover { background: var(--cta-hover); transform: translateY(-2px); }
.kiku-home .btn-line-full:active { transform: scale(0.97); }
.kiku-home .btn-tel-full {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #FFFFFF;
  color: #F4A261;
  border: 2px solid #F4A261;
  padding: 15px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.2s;
}
.kiku-home .btn-tel-full:hover { background: var(--primary-light); transform: translateY(-2px); box-shadow: 0 6px 16px rgba(244, 162, 97, 0.25); }
.kiku-home .btn-tel-full:active { transform: scale(0.97); }
.kiku-home .map-placeholder {
  width: 100%;
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);
  border-radius: 16px;
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  font-size: 12px;
  position: relative;
  overflow: hidden;
}
.kiku-home .map-pin { font-size: 40px; color: var(--primary-dark); animation: mapPin 1.5s ease-in-out infinite; }

/* =========================================================================
   当院のアプローチ（body.kiku-approach）
   ========================================================================= */
.kiku-approach .intro { background: var(--bg-white); text-align: center; }
.kiku-approach .intro-text {
  font-size: 14px;
  color: var(--text);
  line-height: 2;
  background: var(--primary-light);
  border-radius: 16px;
  padding: 24px 20px;
}
.kiku-approach .intro-text strong { color: var(--primary-dark); font-weight: 700; }

.kiku-approach .method-nav { background: var(--bg-secondary); }
.kiku-approach .method-nav-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kiku-approach .method-nav-grid a {
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  padding: 16px 6px;
  text-align: center;
  text-decoration: none;
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.kiku-approach .method-nav-grid a:hover { transform: translateY(-2px); }
.kiku-approach .method-nav-grid a .mn-icon { font-size: 26px; }
.kiku-approach .method-nav-grid a.m-acu:hover { background: var(--accent-light); }
.kiku-approach .method-nav-grid a.m-chiro:hover { background: var(--primary-light); }
.kiku-approach .method-nav-grid a.m-cranio:hover { background: var(--coral-light); }

.kiku-approach .method { background: var(--bg-white); }
.kiku-approach .method:nth-of-type(even) { background: var(--bg); }
.kiku-approach .method-card {
  border-radius: 20px;
  padding: 24px 20px;
  border: 1px solid var(--border);
  border-top: 5px solid var(--m-color);
  background: var(--bg-white);
}
.kiku-approach .method:nth-of-type(even) .method-card { background: var(--bg-secondary); }
.kiku-approach .method-acu    { --m-color: var(--accent);       --m-tint: var(--accent-light); }
.kiku-approach .method-chiro  { --m-color: var(--primary);      --m-tint: var(--primary-light); }
.kiku-approach .method-cranio { --m-color: var(--primary-dark); --m-tint: var(--coral-light); }
.kiku-approach .method-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--m-tint);
  color: var(--m-color);
  font-size: 12px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.kiku-approach .method-name {
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  text-align: center;
  margin-bottom: 4px;
}
.kiku-approach .method-name .ja-sub {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  font-family: 'Inter', sans-serif;
  letter-spacing: 1px;
  margin-top: 2px;
}
.kiku-approach .method-icon-circle {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: var(--m-tint);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
}
.kiku-approach .method-icon-circle .method-svg {
  width: 48px;
  height: 48px;
  color: #F4A261;
  display: block;
}
.kiku-approach .method-block { margin-top: 18px; }
.kiku-approach .method-block-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--m-color);
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.kiku-approach .method-block-text { font-size: 13px; color: var(--text-secondary); line-height: 1.9; }
/* 東洋医学の専門性を強調するボックス */
.kiku-approach .oriental-box {
  margin: 24px 0;
  background: #FAE3CC;
  border-left: 4px solid #F4A261;
  border-radius: 12px;
  padding: 22px 24px;
}
.kiku-approach .oriental-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #3D3D3A;
  margin-bottom: 10px;
}
.kiku-approach .oriental-icon { font-size: 20px; }
.kiku-approach .oriental-content {
  font-size: 14px;
  line-height: 1.95;
  color: #5A5A55;
}
.kiku-approach .oriental-content strong { color: var(--primary-dark); font-weight: 700; }
.kiku-approach .strength-meter { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.kiku-approach .strength-dots { display: flex; gap: 5px; }
.kiku-approach .strength-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--border);
}
.kiku-approach .strength-dots span.on { background: var(--m-color); }
.kiku-approach .strength-label { font-size: 12px; color: var(--text); font-weight: 500; }
.kiku-approach .reco-list { list-style: none; }
.kiku-approach .reco-list li {
  position: relative;
  padding-left: 24px;
  font-size: 13px;
  color: var(--text);
  margin-bottom: 7px;
  line-height: 1.7;
}
.kiku-approach .reco-list li:last-child { margin-bottom: 0; }
.kiku-approach .reco-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--bg-white);
  background: var(--m-color);
  width: 17px;
  height: 17px;
  border-radius: 50%;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

.kiku-approach .synergy { background: var(--bg-secondary); }
.kiku-approach .synergy-lead {
  font-size: 14px;
  color: var(--text);
  text-align: center;
  line-height: 1.9;
  margin-bottom: 24px;
}
.kiku-approach .synergy-venn { display: flex; justify-content: center; gap: -10px; margin-bottom: 24px; }
.kiku-approach .venn-circle {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  mix-blend-mode: multiply;
}
.kiku-approach .venn-circle:nth-child(1) { background: rgba(42,157,143,0.45); }
.kiku-approach .venn-circle:nth-child(2) { background: rgba(244,162,97,0.5); margin-left: -28px; }
.kiku-approach .venn-circle:nth-child(3) { background: rgba(231,111,81,0.45); margin-left: -28px; }
.kiku-approach .synergy-card {
  background: var(--bg-white);
  border-radius: 16px;
  padding: 20px;
  border: 0.5px solid var(--border);
  margin-bottom: 12px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.kiku-approach .synergy-card .sc-icon { font-size: 26px; flex-shrink: 0; }
.kiku-approach .synergy-card .sc-title { font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.kiku-approach .synergy-card .sc-text { font-size: 12px; color: var(--text-secondary); line-height: 1.8; }

/* 国家資格 × 東洋医学（差別化の核・薄オレンジ背景で強調） */
.kiku-approach .qualifications-section { background: #FDEFE2; }
.kiku-approach .qualifications-section .section-title { margin-bottom: 10px; }
.kiku-approach .qual-sub {
  text-align: center;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.9;
  margin: 0 0 32px;
}
.kiku-approach .qual-badges {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: 760px;
  margin: 0 auto;
}
.kiku-approach .qual-badge {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 28px 24px;
  text-align: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}
.kiku-approach .qual-badge-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #FDEFE2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kiku-approach .qual-badge-icon .qual-svg { width: 38px; height: 38px; color: #F4A261; display: block; }
.kiku-approach .qual-badge-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 0 0 10px;
}
.kiku-approach .qual-badge-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.9;
  margin: 0;
}
.kiku-approach .qual-badge-desc strong { color: var(--text); font-weight: 700; }
@media (min-width: 600px) {
  .kiku-approach .qual-badges { grid-template-columns: 1fr 1fr; gap: 20px; }
}

/* ===== アプローチ 施術風景写真（新規クラスのみ・flex不使用・既存不可侵） ===== */
.approach-treatment-image-wrapper {
  text-align: center;
  margin: 24px auto 32px;
  padding: 0 20px;
}
.approach-treatment-image {
  width: 100%;
  max-width: 480px;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
  display: inline-block;
}
@media (max-width: 768px) {
  .approach-treatment-image {
    max-width: 100%;
    border-radius: 16px;
  }
  .approach-treatment-image-wrapper {
    padding: 0 16px;
    margin: 20px auto 24px;
  }
}
/* カイロのみ：手元（下方）が中央に来るよう表示位置を調整 */
.approach-treatment-image--chiro {
  object-position: center bottom !important;
}

.kiku-approach .flow { background: var(--bg-white); }
.kiku-approach .flow-step {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  position: relative;
  padding-bottom: 24px;
}
.kiku-approach .flow-step:last-child { padding-bottom: 0; }
.kiku-approach .flow-step::before {
  content: '';
  position: absolute;
  left: 19px;
  top: 44px;
  bottom: 0;
  width: 2px;
  background: var(--border);
}
.kiku-approach .flow-step:last-child::before { display: none; }
.kiku-approach .flow-num {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--bg-white);
  background: var(--primary);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}
.kiku-approach .flow-body { padding-top: 4px; }
.kiku-approach .flow-title { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.kiku-approach .flow-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.8; }

/* =========================================================================
   料金表＆施術内容（body.kiku-menu）
   ========================================================================= */
.kiku-menu .intro { background: var(--bg-white); text-align: center; }
.kiku-menu .intro-text {
  font-size: 14px;
  color: var(--text);
  line-height: 2;
  background: var(--primary-light);
  border-radius: 16px;
  padding: 24px 20px;
}
.kiku-menu .intro-text strong { color: var(--primary-dark); font-weight: 700; }

.kiku-menu .courses { background: var(--bg); }
.kiku-menu .course-card {
  background: var(--bg-white);
  border-radius: 22px;
  padding: 30px 22px;
  margin-bottom: 28px;
  border: 1px solid transparent;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
  position: relative;
}
/* 90分：メイン推奨（オレンジ枠＋強めの影） */
.kiku-menu .course-card.featured {
  border: 2px solid var(--primary);
  box-shadow: 0 14px 40px rgba(244, 162, 97, 0.22);
  margin-top: 16px;
}
/* 60分：サブ推奨（ベージュ枠＋やわらかい影） */
.kiku-menu .course-card.sub {
  border: 2px solid #E4D5BD;
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.05);
  margin-top: 16px;
}
/* コースのリード文（位置づけ説明） */
.kiku-menu .course-lead {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.9;
  text-align: center;
  margin: 0 0 18px;
}
.kiku-menu .course-lead strong { color: var(--primary-dark); font-weight: 700; }
.kiku-menu .course-card.sub .course-lead strong { color: #B98A4B; }
/* サブバッジ（リピーター向け）：オレンジ主張を避けたベージュ系 */
.kiku-menu .course-badge-sub {
  background: #F3E8D3;
  color: #8A6B3C;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
.kiku-menu .course-card.sub .course-name { color: #8A6B3C; }
/* 「こんな方におすすめ」チェックリスト */
.kiku-menu .reco-check {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 0 0 4px;
}
.kiku-menu .reco-check li {
  position: relative;
  padding-left: 28px;
  font-size: 13px;
  color: var(--text);
  line-height: 1.6;
}
.kiku-menu .reco-check li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 1px;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kiku-menu .reco-check-sub li::before { background: #C9A567; }
.kiku-menu .course-badge {
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  background: var(--primary-dark);
  color: white;
  padding: 7px 20px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(231, 111, 81, 0.3);
}
.kiku-menu .course-name {
  font-size: 26px;
  font-weight: 700;
  color: var(--text);
  text-align: center;
  margin-bottom: 6px;
}
.kiku-menu .course-card.featured .course-name { color: var(--primary-dark); }
.kiku-menu .course-content { font-size: 13px; color: var(--text-secondary); text-align: center; margin-bottom: 18px; }
.kiku-menu .price-box {
  background: var(--bg-secondary);
  border-radius: 14px;
  padding: 18px;
  margin-bottom: 18px;
}
.kiku-menu .course-card.featured .price-box { background: var(--primary-light); }
.kiku-menu .price-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.kiku-menu .price-row:last-child { margin-bottom: 0; }
.kiku-menu .price-label { font-size: 13px; color: var(--text-secondary); }
.kiku-menu .price-value {
  font-family: 'Inter', sans-serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--primary-dark);
}
.kiku-menu .price-value .tax { font-size: 12px; color: var(--text-secondary); font-weight: 500; }
.kiku-menu .price-value-sub {
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: var(--text);
}
.kiku-menu .course-block-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 18px 0 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.kiku-menu .check-list { list-style: none; }
.kiku-menu .check-list li {
  position: relative;
  padding-left: 26px;
  font-size: 13px;
  color: var(--text);
  margin-bottom: 8px;
  line-height: 1.7;
}
.kiku-menu .check-list li:last-child { margin-bottom: 0; }
.kiku-menu .check-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--bg-white);
  background: var(--accent);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
.kiku-menu .reco-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.kiku-menu .reco-tags span {
  background: var(--bg-secondary);
  border: 0.5px solid var(--border);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  color: var(--text);
}
.kiku-menu .cta-line-full {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--cta-grad);
  color: white;
  padding: 15px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  box-shadow: 0 4px 20px var(--cta-glow);
  transition: all 0.2s;
  margin-top: 22px;
}
.kiku-menu .cta-line-full:hover { background: var(--cta-hover); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(231, 111, 81, 0.35); }
.kiku-menu .cta-line-full:active { transform: scale(0.97); }
.kiku-menu .notes {
  background: var(--bg-white);
  border: 0.5px dashed var(--border);
  border-radius: 14px;
  padding: 18px 20px;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.9;
}
.kiku-menu .notes p { position: relative; padding-left: 18px; }
.kiku-menu .notes p::before { content: '※'; position: absolute; left: 0; color: var(--primary-dark); }

.kiku-menu .flow { background: var(--bg-white); }
.kiku-menu .flow-step {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  position: relative;
  padding-bottom: 24px;
}
.kiku-menu .flow-step:last-child { padding-bottom: 0; }
.kiku-menu .flow-step::before {
  content: '';
  position: absolute;
  left: 19px;
  top: 44px;
  bottom: 0;
  width: 2px;
  background: var(--border);
}
.kiku-menu .flow-step:last-child::before { display: none; }
.kiku-menu .flow-num {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--bg-white);
  background: var(--primary);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}
.kiku-menu .flow-body {
  background: var(--bg-secondary);
  border-radius: 14px;
  padding: 14px 18px;
  flex: 1;
}
.kiku-menu .flow-title { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.kiku-menu .flow-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.8; }

.kiku-menu .insurance { background: var(--bg); }
.kiku-menu .insurance-box {
  background: var(--accent-light);
  border-radius: 16px;
  padding: 24px 20px;
  text-align: center;
}
.kiku-menu .insurance-box .ins-icon { font-size: 32px; margin-bottom: 8px; }
.kiku-menu .insurance-box .ins-text { font-size: 13px; color: var(--text); line-height: 1.95; text-align: left; margin: 0 0 16px; }
.kiku-menu .insurance-box .ins-text strong { color: var(--primary-dark); font-weight: 700; }
.kiku-menu .ins-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  text-align: left;
}
.kiku-menu .ins-col {
  background: var(--bg-white);
  border-radius: 14px;
  padding: 16px 18px;
}
.kiku-menu .ins-col.ins-ok { border-left: 4px solid var(--accent); }
.kiku-menu .ins-col.ins-ng { border-left: 4px solid #C9A567; }
.kiku-menu .ins-col-head { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.kiku-menu .ins-col ul { list-style: none; margin: 0; padding: 0; }
.kiku-menu .ins-col li {
  position: relative;
  padding-left: 16px;
  font-size: 13px;
  color: var(--text);
  line-height: 1.8;
}
.kiku-menu .ins-col li::before {
  content: '・';
  position: absolute;
  left: 0;
  color: var(--text-tertiary);
}
.kiku-menu .ins-foot { font-size: 11px; color: var(--text-secondary); margin: 8px 0 0; }
.kiku-menu .ins-note {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.8;
  text-align: left;
  margin: 14px 0 0;
}
.kiku-menu .ins-note strong { color: var(--primary-dark); font-weight: 700; }
@media (min-width: 480px) {
  .kiku-menu .ins-cols { grid-template-columns: 1fr 1fr; }
}

.kiku-menu .payment { background: var(--bg-white); }
.kiku-menu .payment-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.kiku-menu .payment-card {
  background: var(--bg-secondary);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  padding: 22px 12px;
  text-align: center;
  transition: all 0.2s;
}
.kiku-menu .payment-card:hover { background: var(--primary-light); transform: translateY(-2px); }
.kiku-menu .payment-card .pay-icon { font-size: 30px; margin-bottom: 8px; display: block; }
.kiku-menu .payment-card .pay-name { font-size: 13px; font-weight: 700; color: var(--text); }

/* =========================================================================
   患者様の声（body.kiku-voice）
   ========================================================================= */
.kiku-voice .summary { background: var(--bg-white); }
.kiku-voice .summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.kiku-voice .summary-card {
  background: linear-gradient(135deg, var(--primary-light) 0%, #FCE6DF 100%);
  border-radius: 18px;
  padding: 28px 16px;
  text-align: center;
}
.kiku-voice .summary-num {
  font-family: 'Inter', sans-serif;
  font-size: 40px;
  font-weight: 600;
  color: var(--primary-dark);
  display: block;
  line-height: 1.2;
}
.kiku-voice .summary-num .unit { font-size: 18px; }
.kiku-voice .summary-label { font-size: 12px; color: var(--text-secondary); margin-top: 6px; }

.kiku-voice .voices { background: var(--bg); }
.kiku-voice .filter-wrap {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 8px;
  margin-bottom: 24px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.kiku-voice .filter-wrap::-webkit-scrollbar { display: none; }
.kiku-voice .filter-pill {
  flex-shrink: 0;
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  color: var(--text-secondary);
  padding: 9px 18px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.kiku-voice .filter-pill:hover { background: var(--primary-light); }
.kiku-voice .filter-pill.active {
  background: var(--primary-dark);
  color: white;
  border-color: var(--primary-dark);
  font-weight: 700;
}
.kiku-voice .voice-card {
  background: var(--bg-white);
  border: none;
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
}
/* 3枚ごとに背景色をローテーション（白 → 薄ベージュ → 薄オレンジ） */
.kiku-voice #voiceList .voice-card:nth-child(3n+1) { background: #FFFFFF; }
.kiku-voice #voiceList .voice-card:nth-child(3n+2) { background: #F5EDE0; }
.kiku-voice #voiceList .voice-card:nth-child(3n+3) { background: #FDEFE2; }
.kiku-voice .voice-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
/* 初期表示は5件まで。6件目以降は非表示、もっと見るで展開 */
.kiku-voice .voice-card.voice-hidden { display: none; }
.kiku-voice .voice-card.voice-hidden.is-shown { display: block; }
/* フィルター非該当は常に最優先で非表示 */
.kiku-voice .voice-card.hide { display: none !important; }
.kiku-voice .voice-load-more-wrapper { text-align: center; margin-top: 32px; }
.kiku-voice .voice-load-more-btn {
  background: #F4A261;
  color: #FFFFFF;
  border: 2px solid #F4A261;
  border-radius: 999px;
  padding: 14px 32px;
  font-size: 15px;
  font-weight: 600;
  font-family: "Noto Sans JP", sans-serif;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(244, 162, 97, 0.3);
}
.kiku-voice .voice-load-more-btn:hover { background: #E89148; transform: translateY(-2px); }
.kiku-voice .voice-load-more-btn.is-hidden { display: none; }
.kiku-voice .voice-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.kiku-voice .voice-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
}
.kiku-voice .voice-tag.t-katakori { background: var(--accent-light); color: var(--accent); }
.kiku-voice .voice-tag.t-ago { background: #FCE6DF; color: var(--primary-dark); }
.kiku-voice .voice-tag.t-other { background: var(--primary-light); color: #C97A33; }
.kiku-voice .voice-stars { color: #FFB800; font-size: 13px; letter-spacing: 1px; }
.kiku-voice .voice-meta { font-size: 11px; color: var(--text-secondary); margin-bottom: 8px; }
.kiku-voice .voice-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
  line-height: 1.6;
}
.kiku-voice .voice-body { font-size: 13px; color: var(--text-secondary); line-height: 1.85; }
.kiku-voice .voice-empty {
  text-align: center;
  font-size: 13px;
  color: var(--text-tertiary);
  padding: 32px 0;
  display: none;
}
.kiku-voice .voice-empty.show { display: block; }

.kiku-voice .greview { background: var(--bg-white); }
.kiku-voice .greview-box {
  background: var(--accent-light);
  border-radius: 18px;
  padding: 28px 22px;
  text-align: center;
}
.kiku-voice .greview-box .gr-icon { font-size: 32px; margin-bottom: 8px; }
.kiku-voice .greview-box .gr-text { font-size: 13px; color: var(--text); line-height: 1.9; margin-bottom: 18px; }
.kiku-voice .greview-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #FDEFE2;
  border: 2px solid #F4A261;
  color: #F4A261;
  padding: 13px 26px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.2s;
}
.kiku-voice .greview-btn:hover { background: #F4A261; color: #FFFFFF; transform: translateY(-2px); }
.kiku-voice .greview-btn:active { transform: scale(0.97); }

.kiku-voice .doctor-msg { background: var(--bg); }
.kiku-voice .doctor-msg-box { background: var(--primary-light); border-radius: 18px; padding: 28px 22px; }
.kiku-voice .doctor-msg-text { font-size: 13px; color: var(--text); line-height: 2; text-align: left; }
.kiku-voice .doctor-msg-sign {
  text-align: right;
  margin-top: 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
}

/* =========================================================================
   院長プロフィール（body.kiku-about）
   ========================================================================= */
.kiku-about .about-hero {
  background: linear-gradient(135deg, #FFEDD5 0%, #FAF6F0 100%);
  padding: 56px 24px 56px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.kiku-about .about-hero::before {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 180px;
  height: 180px;
  background: var(--primary);
  border-radius: 50%;
  opacity: 0.15;
}
.kiku-about .about-hero::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: -80px;
  width: 220px;
  height: 220px;
  background: var(--accent);
  border-radius: 50%;
  opacity: 0.1;
}
.kiku-about .about-hero-label {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--primary-dark);
  letter-spacing: 2px;
  text-transform: lowercase;
  margin-bottom: 6px;
  font-weight: 500;
  position: relative;
  z-index: 1;
}
.kiku-about .about-hero h1 {
  font-size: 24px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}
.kiku-about .face-photo {
  width: 200px;
  height: 200px;
  margin: 0 auto 20px;
  background: var(--bg-white);
  border-radius: 50%;
  border: 5px solid var(--bg-white);
  box-shadow: 0 12px 40px rgba(244, 162, 97, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-tertiary);
  font-size: 13px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.kiku-about .face-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* ===== プロフィールページ 写真（新規クラスのみ・flex不使用・既存不可侵） ===== */
/* ① プロフィールトップ：円形ポートレート */
.about-portrait-wrapper { text-align: center; }
.about-portrait {
  width: 100%;
  max-width: 280px;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(244, 162, 97, 0.15);
  display: inline-block;
}
@media (max-width: 768px) {
  .about-portrait { max-width: 220px; }
}
/* ② メッセージ：本文の前に中央配置（本文には一切触れない） */
.about-message-image-wrapper {
  text-align: center;
  margin: 32px auto;
}
.about-message-image {
  width: 100%;
  max-width: 480px;
  height: auto;
  border-radius: 24px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
  display: inline-block;
}
@media (max-width: 768px) {
  .about-message-image {
    max-width: 100%;
    border-radius: 16px;
  }
}
/* ③ ちょっと素顔：見出し下に単独・中央 */
.about-personal-image-wrapper {
  text-align: center;
  margin: 24px auto 28px;
}
.about-personal-image {
  width: 100%;
  max-width: 280px;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 24px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  display: inline-block;
}
@media (max-width: 768px) {
  .about-personal-image { max-width: 220px; }
}
.kiku-about .doctor-name {
  font-size: 24px;
  font-weight: 700;
  color: var(--text);
  position: relative;
  z-index: 1;
  margin-bottom: 6px;
}
.kiku-about .doctor-name .ruby { font-size: 13px; color: var(--text-secondary); font-weight: 500; }
.kiku-about .doctor-title {
  display: inline-block;
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 700;
  padding: 6px 18px;
  border-radius: 999px;
  position: relative;
  z-index: 1;
}

.kiku-about .message { background: var(--bg-white); text-align: center; }
.kiku-about .message-catch {
  font-size: 20px;
  font-weight: 700;
  color: var(--primary-dark);
  line-height: 1.7;
  margin-bottom: 28px;
}
.kiku-about .message-body {
  font-size: 14px;
  color: var(--text);
  line-height: 2.1;
  text-align: left;
  background: var(--bg-secondary);
  border-radius: 16px;
  padding: 24px 20px;
}
.kiku-about .message-body p { margin-bottom: 16px; }
.kiku-about .message-body p:last-child { margin-bottom: 0; }
.kiku-about .message-body .quote-lines {
  color: var(--primary-dark);
  font-weight: 500;
  padding-left: 14px;
  border-left: 3px solid var(--primary);
}

.kiku-about .belief { background: var(--bg); }
.kiku-about .belief-box {
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: white;
  border-radius: 20px;
  padding: 40px 28px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(231, 111, 81, 0.25);
}
.kiku-about .belief-box .belief-tag { font-size: 12px; letter-spacing: 2px; opacity: 0.9; margin-bottom: 16px; }
.kiku-about .belief-box .belief-main { font-size: 24px; font-weight: 700; line-height: 1.7; margin-bottom: 16px; }
.kiku-about .belief-box .belief-foot { font-size: 14px; opacity: 0.95; }

.kiku-about .history { background: var(--bg-white); }
.kiku-about .history-step {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  position: relative;
  padding-bottom: 24px;
}
.kiku-about .history-step:last-of-type { padding-bottom: 0; }
.kiku-about .history-step::before {
  content: '';
  position: absolute;
  left: 27px;
  top: 56px;
  bottom: 0;
  width: 2px;
  background: var(--border);
}
.kiku-about .history-step:last-of-type::before { display: none; }
.kiku-about .history-year {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--bg-white);
  background: var(--primary);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}
.kiku-about .history-body {
  background: var(--bg-secondary);
  border-radius: 14px;
  padding: 14px 18px;
  flex: 1;
  margin-top: 2px;
}
.kiku-about .history-body .h-title { font-size: 14px; font-weight: 700; margin-bottom: 2px; }
.kiku-about .history-body .h-sub { font-size: 12px; color: var(--text-secondary); }
.kiku-about .history-story {
  margin-top: 24px;
  background: var(--primary-light);
  border-radius: 16px;
  padding: 20px;
  font-size: 13px;
  color: var(--text);
  line-height: 1.95;
}

.kiku-about .license { background: var(--bg); }
.kiku-about .license-grid { display: grid; gap: 12px; }
.kiku-about .license-card {
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  padding: 22px 20px;
  text-align: center;
}
.kiku-about .license-card .lc-icon { font-size: 34px; margin-bottom: 8px; }
.kiku-about .license-card .lc-name { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 2px; }
.kiku-about .license-card .lc-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: var(--accent);
  background: #E3F2F0;
  padding: 3px 12px;
  border-radius: 999px;
  margin-top: 6px;
}

.kiku-about .personal { background: var(--bg-white); }
.kiku-about .personal-note { text-align: center; font-size: 11px; color: var(--text-tertiary); margin-bottom: 20px; }
.kiku-about .qa-grid { display: grid; gap: 12px; }
.kiku-about .qa-card { background: var(--bg-secondary); border-radius: 16px; padding: 18px 20px; }
.kiku-about .qa-card .q { font-size: 14px; font-weight: 700; color: var(--primary-dark); margin-bottom: 6px; }
.kiku-about .qa-card .a { font-size: 13px; color: var(--text); line-height: 1.8; }
.kiku-about .qa-card .a.placeholder { color: var(--text-tertiary); font-style: italic; }

.kiku-about .insta { background: var(--bg); }
.kiku-about .insta-box {
  background: linear-gradient(135deg, var(--primary-light) 0%, #FCE6DF 100%);
  border-radius: 20px;
  padding: 28px 22px;
  text-align: center;
}
.kiku-about .insta-lead { font-size: 14px; font-weight: 700; color: var(--primary-dark); margin-bottom: 6px; }
.kiku-about .insta-acc {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 16px;
}
.kiku-about .insta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 20px; }
.kiku-about .insta-thumb {
  aspect-ratio: 1/1;
  background: var(--bg-white);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: var(--text-tertiary);
  overflow: hidden;
}
.kiku-about .insta-thumb img { width: 100%; height: 100%; object-fit: cover; }
.kiku-about .insta-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.8; margin-bottom: 18px; }
.kiku-about .insta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: white;
  padding: 14px 28px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  box-shadow: 0 4px 16px rgba(231, 111, 81, 0.3);
  transition: all 0.2s;
}
.kiku-about .insta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(231, 111, 81, 0.4); }
.kiku-about .insta-btn:active { transform: scale(0.97); }

/* =========================================================================
   アクセス・お問い合わせ（body.kiku-access）
   ========================================================================= */
.kiku-access .map { background: var(--bg-white); }
.kiku-access .map-frame {
  width: 100%;
  height: 320px;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
  display: block;
}
.kiku-access .map-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 16px auto 0;
  background: var(--bg-secondary);
  border: 0.5px solid var(--border);
  color: var(--text);
  padding: 12px 24px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
  transition: all 0.2s;
}
.kiku-access .map-btn:hover { background: var(--primary-light); transform: translateY(-2px); }
.kiku-access .map-btn-wrap { text-align: center; }

.kiku-access .info { background: var(--bg); }
.kiku-access .info-table {
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
}
.kiku-access .info-row { display: flex; border-bottom: 0.5px solid var(--border); }
.kiku-access .info-row:last-child { border-bottom: none; }
.kiku-access .info-key {
  width: 96px;
  flex-shrink: 0;
  background: var(--bg-secondary);
  padding: 14px 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-secondary);
}
.kiku-access .info-val { flex: 1; padding: 14px 16px; font-size: 13px; color: var(--text); line-height: 1.7; }
.kiku-access .info-val a { color: var(--primary-dark); text-decoration: none; font-weight: 700; }

.kiku-access .hours { background: var(--bg-white); }
.kiku-access .hours-time {
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--primary-dark);
  margin-bottom: 18px;
}
.kiku-access .hours-table {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  border: 0.5px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  text-align: center;
}
.kiku-access .hours-table div { padding: 12px 0; font-size: 13px; border-right: 0.5px solid var(--border); }
.kiku-access .hours-table div:nth-child(8n) { border-right: none; }
.kiku-access .hours-head { background: var(--bg-secondary); font-weight: 700; color: var(--text-secondary); }
.kiku-access .hours-head.sun { color: var(--primary-dark); }
.kiku-access .hours-mark { font-weight: 700; color: var(--accent); }
.kiku-access .hours-mark.off { color: var(--primary-dark); background: var(--primary-light); }
.kiku-access .hours-note { margin-top: 16px; font-size: 12px; color: var(--text-secondary); line-height: 1.9; }
.kiku-access .hours-note p { position: relative; padding-left: 18px; }
.kiku-access .hours-note p::before { content: '※'; position: absolute; left: 0; color: var(--primary-dark); }

.kiku-access .firsttime { background: var(--bg-white); }
.kiku-access .firsttime-box {
  background: var(--primary-light);
  border-radius: 16px;
  padding: 24px 20px;
  text-align: center;
}
.kiku-access .firsttime-box .ft-icon { font-size: 32px; margin-bottom: 8px; }
.kiku-access .firsttime-box .ft-text { font-size: 13px; color: var(--text); line-height: 1.95; text-align: left; }

.kiku-access .booking { background: var(--bg); }
.kiku-access .booking-line {
  background: var(--cta-grad);
  border-radius: 20px;
  padding: 28px 22px;
  text-align: center;
  color: white;
  box-shadow: 0 10px 30px var(--cta-glow);
  margin-bottom: 16px;
}
.kiku-access .booking-line .bk-tag {
  display: inline-block;
  background: rgba(255,255,255,0.25);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.kiku-access .booking-line .bk-title { font-size: 20px; font-weight: 700; margin-bottom: 6px; }
.kiku-access .booking-line .bk-sub { font-size: 12px; opacity: 0.95; margin-bottom: 18px; }
.kiku-access .booking-line a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: white;
  color: var(--primary-dark);
  padding: 16px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 16px;
  transition: all 0.2s;
}
.kiku-access .booking-line a:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.15); }
.kiku-access .booking-line a:active { transform: scale(0.97); }
.kiku-access .booking-tel {
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  padding: 22px 20px;
  text-align: center;
}
.kiku-access .booking-tel .bk-title { font-size: 15px; font-weight: 700; margin-bottom: 4px; color: var(--text); }
.kiku-access .booking-tel a {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: var(--primary-dark);
  text-decoration: none;
  margin: 6px 0;
}
.kiku-access .booking-tel .bk-sub { font-size: 12px; color: var(--text-secondary); }

.kiku-access .social { background: var(--bg-white); }
.kiku-access .social-grid { display: grid; gap: 12px; }
.kiku-access .social-grid a {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--bg-secondary);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  padding: 18px 20px;
  text-decoration: none;
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
  transition: all 0.2s;
}
.kiku-access .social-grid a:hover { background: var(--primary-light); transform: translateX(4px); }
.kiku-access .social-grid a .so-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.kiku-access .social-grid a.insta .so-icon { background: #FCE6DF; }
.kiku-access .social-grid a.gmap .so-icon { background: var(--accent-light); }
.kiku-access .social-grid a .so-sub {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--text-secondary);
  margin-top: 2px;
}

/* =========================================================================
   ブログ／投稿（body.kiku-single / .kiku-archive）汎用
   ========================================================================= */
.kiku-single .entry,
.kiku-archive .entry-list { padding: 8px 0; }
.kiku-single .entry-title { font-size: 22px; font-weight: 700; margin-bottom: 8px; color: var(--text); }
.kiku-single .entry-meta { font-size: 12px; color: var(--text-tertiary); margin-bottom: 20px; }
.kiku-single .entry-content { font-size: 15px; line-height: 1.95; }
.kiku-single .entry-content p { margin-bottom: 1em; }
.kiku-single .entry-content h2 { font-size: 20px; margin: 28px 0 12px; }
.kiku-single .entry-content h3 { font-size: 17px; margin: 22px 0 10px; }
.kiku-single .entry-content img { max-width: 100%; height: auto; border-radius: 12px; }
.kiku-single .entry-content a { color: var(--primary-dark); }
.kiku-archive .post-card {
  display: block;
  background: var(--bg-white);
  border: 0.5px solid var(--border);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 14px;
  text-decoration: none;
  color: var(--text);
  transition: all 0.2s;
}
.kiku-archive .post-card:hover { background: var(--primary-light); transform: translateY(-2px); }
.kiku-archive .post-card .pc-date { font-size: 11px; color: var(--text-tertiary); font-family: 'Inter', sans-serif; }
.kiku-archive .post-card .pc-title { font-size: 16px; font-weight: 700; margin: 4px 0 6px; }
.kiku-archive .post-card .pc-excerpt { font-size: 13px; color: var(--text-secondary); line-height: 1.7; }
.kiku-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 24px;
}
.kiku-pagination a,
.kiku-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 999px;
  border: 0.5px solid var(--border);
  background: var(--bg-white);
  color: var(--text);
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
}
.kiku-pagination .current { background: var(--primary-dark); color: white; border-color: var(--primary-dark); }

/* ---------- アクセシビリティ：モーション軽減 ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ---------- PC（広い画面） ---------- */
@media (min-width: 768px) {
  .container {
    margin-top: 20px;
    margin-bottom: 100px;
    border-radius: 24px;
    overflow: hidden;
  }
  body { background: #ECEAE3; }
}

/* =========================================================================
   セクション背景：淡オレンジ #FDEFE2 ↔ 白 #FFFFFF 交互リズム
   - FV(ヒーロー)から「淡オレ→白→淡オレ→白…」で全6ページ統一。
   - 2変数(--sec-orange / --sec-white)駆動。色の微調整はこの2行だけで全体反映。
   - カード内側 / 帯(.about-text 等) / CTAバナー / ヘッダー / フッター /
     Instagram埋め込み内部 は対象外（白カード等はそのまま維持）。
   - 既存構造・flex・既存ルールは改変せず、末尾追加で最小限に上書き。
   - 各セレクタは既存ルールと同一詳細度。後勝ちで確実に適用させる。
   ========================================================================= */
:root { --sec-orange: #FDEFE2; --sec-white: #FFFFFF; }

/* 下層ページ共通ヒーロー（FV＝淡オレンジ） */
.page-hero { background: var(--sec-orange); }
.kiku-about .about-hero { background: var(--sec-orange); }

/* ① front-page（body.kiku-home：既存 736〜743 と同詳細度で後勝ち） */
body.kiku-home .hero              { background: var(--sec-orange); }
body.kiku-home .troubles          { background: var(--sec-white); }
body.kiku-home .about             { background: var(--sec-orange); }
body.kiku-home .points            { background: var(--sec-white); }
body.kiku-home .menu              { background: var(--sec-orange); }
body.kiku-home .voice             { background: var(--sec-white); }
body.kiku-home .qa                { background: var(--sec-orange); }
body.kiku-home .instagram-section { background: var(--sec-orange); }
body.kiku-home .access            { background: var(--sec-white); }

/* ② page-about（about-hero=オレンジ → 以降 白/オレンジ交互） */
.kiku-about .message  { background: var(--sec-white); }
.kiku-about .belief   { background: var(--sec-orange); }
.kiku-about .history  { background: var(--sec-white); }
.kiku-about .license  { background: var(--sec-orange); }
.kiku-about .personal { background: var(--sec-white); }
.kiku-about .instagram-section { background: var(--sec-orange); }

/* ③ page-approach（method は既存の nth-of-type(even) 機構をそのまま利用） */
.kiku-approach .intro      { background: var(--sec-white); }
.kiku-approach .method-nav { background: var(--sec-orange); }
.kiku-approach .method     { background: var(--sec-orange); }
.kiku-approach .method:nth-of-type(even) { background: var(--sec-white); }
.kiku-approach .synergy    { background: var(--sec-orange); }
.kiku-approach .qualifications-section { background: var(--sec-white); }
.kiku-approach .flow       { background: var(--sec-orange); }

/* ④ page-menu（.notes 等のカードボックスは対象外） */
.kiku-menu .intro     { background: var(--sec-white); }
.kiku-menu .courses   { background: var(--sec-orange); }
.kiku-menu .flow      { background: var(--sec-white); }
.kiku-menu .insurance { background: var(--sec-orange); }
.kiku-menu .payment   { background: var(--sec-white); }

/* ⑤ page-voice（.voice-card の帯ローテーションは対象外） */
.kiku-voice .summary    { background: var(--sec-white); }
.kiku-voice .voices     { background: var(--sec-orange); }
.kiku-voice .greview    { background: var(--sec-white); }
.kiku-voice .doctor-msg { background: var(--sec-orange); }

/* ⑥ page-access */
.kiku-access .map       { background: var(--sec-white); }
.kiku-access .info      { background: var(--sec-orange); }
.kiku-access .hours     { background: var(--sec-white); }
.kiku-access .firsttime { background: var(--sec-white); }
.kiku-access .booking   { background: var(--sec-orange); }
.kiku-access .social    { background: var(--sec-white); }

/* =========================================================================
   ファーストビュー 背景スライド（写真3枚を18秒で自動フェード切替）
   - CSS animation のみ。JS不使用・軽量。
   - 既存 .hero-fullwidth-bg(容器) / .hero-fullwidth-overlay(淡オレンジ
     グラデ・固定) は無改変。本ブロックは新規クラスのみで追加。
   - 各6秒表示＋1秒フェード（5%≒0.9s, 33%≒5.9s, 38%≒6.8s / 18s周期）。
   ========================================================================= */
.hero-slide-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;                       /* overlay(z-index:1) より下 */
  background-color: #FDEFE2;        /* 画像読込中のフォールバック地色 */
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  opacity: 0;
  will-change: opacity;             /* GPU 合成で滑らかに */
  animation: heroSlide 21s linear infinite;
}
.hero-slide-img.slide-1 { background-position: center 65%; animation-delay: 0s; }
.hero-slide-img.slide-2 { background-position: 40% 40%;    animation-delay: 7s; }
.hero-slide-img.slide-3 { background-position: center 55%; animation-delay: 14s; }

@keyframes heroSlide {
  0%    { opacity: 0; }
  9.5%  { opacity: 1; }   /* 約2秒でフェードイン */
  33%   { opacity: 1; }   /* 約5秒表示 */
  42.5% { opacity: 0; }   /* 約2秒でフェードアウト */
  100%  { opacity: 0; }
}

/* スマホ：既存ヒーローの寄せ調整に合わせて被写体を最適化 */
@media (max-width: 768px) {
  .hero-slide-img.slide-1 { background-position: center 70%; }
  .hero-slide-img.slide-2 { background-position: 40% 38%; }
  .hero-slide-img.slide-3 { background-position: center 50%; }
}

/* アクセシビリティ：モーション抑制設定時はアニメ無効＝1枚目のみ表示 */
@media (prefers-reduced-motion: reduce) {
  .hero-slide-img { animation: none; }
  .hero-slide-img.slide-1 { opacity: 1; }
  .hero-slide-img.slide-2,
  .hero-slide-img.slide-3 { opacity: 0; }
}

/* =========================================================================
   インラインSVGアイコン共通（絵文字置換・新規クラスのみ・既存無改変）
   - 線画は markup 側で stroke="currentColor"/fill="none" 指定。
     ここで fill:currentColor を当てると線画が塗り潰れるため指定しない。
   - サイズは各既存コンテナの font-size を 1em 継承（既存サイズCSS流用）。
   ========================================================================= */
.icon-svg {
  width: 1em;
  height: 1em;
  vertical-align: middle;
  display: inline-block;
  flex-shrink: 0;
  overflow: visible;
}
.icon-svg.icon-instagram { width: 1em; height: 1em; }
/* LINEはボタンのアクセントとして存在感を出すため一回り大きく（文字サイズは不変） */
.icon-svg.icon-line { width: 1.4em; height: 1.4em; }

/* 「こんなお悩み」6種：自作PNGアイコン。
   縦長イラスト6枚を正方ボックス＋object-fit:contain で正規化し粒度を統一。
   .trouble-icon（既存span）は構造維持、中身のみ画像に差し替え。 */
.kiku-home .trouble-icon { font-size: 0; }
.kiku-home .trouble-icon-img {
  display: block;
  width: 76px;
  height: 76px;
  margin: 0 auto 4px;
  object-fit: contain;
  transition: transform 0.25s ease;
}
.kiku-home .trouble-card:hover .trouble-icon-img { transform: scale(1.05); }
@media (max-width: 768px) {
  .kiku-home .trouble-icon-img { width: 68px; height: 68px; }
}
@media (max-width: 480px) {
  .kiku-home .trouble-icon-img { width: 60px; height: 60px; }
}

/* 各セクションのアクセントアイコンはブランドオレンジ系で統一 */
.info-icon .icon-svg,
.stations-icon .icon-svg,
.kiku-menu .payment-card .pay-icon .icon-svg,
.kiku-menu .insurance-box .ins-icon .icon-svg,
.kiku-voice .greview-box .gr-icon .icon-svg,
.kiku-access .firsttime-box .ft-icon .icon-svg,
.kiku-about .license-card .lc-icon .icon-svg,
.kiku-approach .synergy-card .sc-icon .icon-svg,
.kiku-approach .method-nav-grid a .mn-icon .icon-svg,
.kiku-approach .oriental-icon .icon-svg {
  color: var(--primary-dark);
}

/* アクセスSNS：丸内アイコン。Instagramはブランドグラデ自前、Googleは星 */
.kiku-access .social-grid a .so-icon .icon-svg { width: 22px; height: 22px; }
.kiku-access .social-grid a.gmap .so-icon .icon-svg { color: var(--accent); }

/* LINE/Instagram ブランドアイコンは自前配色（currentColor 非依存） */
.header-cta-icon .icon-line,
.kiku-home .cta-line .cta-ico .icon-line { display: inline-block; }

/* フッターSNS：ブランド配色アイコンを活かすためチップを白へ（最小上書き）。
   旧実装は「ブランド色チップ＋白アイコン」だったため2ルールのみ調整。 */
.footer-sns-instagram,
.footer-sns-line {
  background: #FFFFFF !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.footer-sns-link .icon-svg { width: 26px; height: 26px; }
/* フッターも LINE だけ拡大（Instagram は 26px のまま） */
.footer-sns-link .icon-line { width: 36px; height: 36px; }

/* 院長メッセージ：本文が複数段落になったため段落間の余白を正規化。
   font-size / color / line-height は既存(.doctor-msg-text)を継承し不変。 */
.kiku-voice .doctor-msg-text p { margin: 0 0 1.4em; }
.kiku-voice .doctor-msg-text p:last-child { margin-bottom: 0; }

/* =========================================================================
   保険セクション：縦積みカード（OK=ミント / NG=淡オレンジ）＋✓リスト
   .ins-cols のみ flex/grid を解除（横→縦）。他の構造・flex は無改変。
   ========================================================================= */
/* 外枠の薄水色(accent-light)を解除し、各ブロックを独立カードに。
   ins-icon は削除済み。構造・flex は無改変、背景/余白のみ最小上書き。 */
.kiku-menu .insurance-box {
  background: transparent;
  padding: 0;
  border-radius: 0;
}
/* リード文：白カードでOK/NGと差別化（角丸・パディングはカードと統一） */
.kiku-menu .insurance-box .ins-text {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 26px 24px;
  margin: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* 横2カラム → 縦上下（PCも同じ流れ） */
.kiku-menu .ins-cols { display: block; }
.kiku-menu .ins-col {
  width: 100%;
  background: var(--bg-white);
  border: 0;
  border-radius: 16px;
  padding: 26px 24px;
  margin: 20px 0 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.kiku-menu .ins-col.ins-ok { background: #E8F5E9; border-left: 0; }
.kiku-menu .ins-col.ins-ng { background: #FFF3E0; border-left: 0; }

/* 見出し：絵文字＋テキスト、少し大きめ太字 */
.kiku-menu .ins-col-head {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 16px;
  line-height: 1.5;
}
.kiku-menu .ins-col.ins-ng .ins-col-head { color: #B07A2E; }

/* リスト：数字なし＋✓（メインオレンジ・太字）、行間ゆったり */
.kiku-menu .ins-col ul { list-style: none; margin: 0; padding: 0; }
.kiku-menu .ins-col li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 12px;
  font-size: 13px;
  color: var(--text);
  line-height: 1.6;
}
.kiku-menu .ins-col li:last-child { margin-bottom: 0; }
.kiku-menu .ins-col.ins-ok li::before,
.kiku-menu .ins-col.ins-ng li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: #F4A261;
  font-weight: bold;
  font-size: 1.1em;
}

/* OK注記：本文より小さめ・落ち着いた色・カード最下部 */
.kiku-menu .ins-foot {
  font-size: 0.9em;
  color: var(--text-secondary);
  margin: 16px 0 0;
}

/* NG列の前後説明文：本文と差別化（小さめ・グレー寄り） */
.kiku-menu .ins-ng-intro,
.kiku-menu .ins-ng-outro {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.85;
  margin: 0 0 14px;
}
.kiku-menu .ins-ng-outro { margin: 14px 0 0; font-weight: 700; color: var(--primary-dark); }

/* 全体注記＋CTA：淡オレンジのカードで目立たせる（中央寄せ・3段） */
.kiku-menu .ins-note {
  background: #FDEFE2;
  border-radius: 14px;
  padding: 20px 18px 22px;
  margin: 20px 0 0;
  text-align: center;
}
.kiku-menu .ins-note-text {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.85;
  margin: 0 0 12px;
}
.kiku-menu .ins-note-ask {
  font-size: 13px;
  color: var(--text);
  line-height: 1.95;
  font-weight: 700;
  margin: 0 0 16px;
}
.kiku-menu .ins-note-cta { margin: 0; }
.kiku-menu .ins-line-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: var(--cta-grad);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  padding: 12px 26px;
  border-radius: 999px;
  box-shadow: 0 4px 14px var(--cta-glow);
  transition: transform 0.2s ease, background 0.2s ease;
}
.kiku-menu .ins-line-btn:hover { background: var(--cta-hover); transform: translateY(-2px); }
.kiku-menu .ins-line-btn:active { transform: scale(0.97); }
.kiku-menu .ins-line-btn .icon-line { width: 1.5em; height: 1.5em; }
