/* ============================================================
   Abi Media Core v2 — ABI Editorial Design System
   正本: docs/ABI-VISUAL-GUIDELINE.md
   原則: カードに頼らない / 罫線・余白・Typographyでリズム / 色数を増やさない
   ============================================================ */
:root {
  --abi-ink: #323736;            /* Charcoal 本文 */
  --abi-ink-soft: #6b7370;
  --abi-bg: #ffffff;
  --abi-ivory: #faf7f1;          /* Warm Ivory 帯 */
  --abi-beige: #efe7d9;          /* Warm Beige 補助面 */
  --abi-line: #e4e0d6;           /* 罫線 */
  --abi-sage: #2e8862;
  --abi-sage-deep: #0f6b47;
  --abi-sage-soft: #e6f2eb;
  --abi-coral: #c9714f;   /* テラコッタ: 注目・アクションの差し色（2026-08-29 導入） */
  --abi-serif: 'Shippori Mincho B1', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  --abi-radius: 10px;
  /* 旧トークン互換 */
  --abi-text: var(--abi-ink);
  --abi-text-soft: var(--abi-ink-soft);
  --abi-cream: var(--abi-ivory);
  --abi-hairline: var(--abi-line);
  --abi-caution-bg: #fdf6ec; --abi-caution-line: #e5c98f;
  --abi-alert-bg: #fbf0ee; --abi-alert-line: #d9a49b;
  --abi-shadow: 0 2px 14px rgba(50, 55, 54, .07);
}

.abi-theme { color: var(--abi-ink); }
/* 帯（50vwフルブリード）による横オーバーフローを遮断（横パン事故防止） */
html { overflow-x: clip; } body.abi-theme { overflow-x: clip; }
/* wpautopが挿入する空要素の保険（グリッドの幽霊アイテム化を防ぐ） */
[class*="abi-"] > p:empty, .abi-hero2 > br, .abi-band > br { display: none; }
.abi-muted { color: var(--abi-ink-soft); font-size: .93em; }

/* ── 基本パーツ ────────────────────────────── */
.abi-en {
  display: block; font-family: Avenir, 'Helvetica Neue', Arial, sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: .24em;
  color: var(--abi-sage); text-transform: uppercase; margin-bottom: .9em;
}
.abi-serif { font-family: var(--abi-serif); font-weight: 600; }
.abi-hr { border: 0; border-top: 1px solid var(--abi-line); margin: 3.5em 0; }

/* フルブリード帯（コンテンツ幅の中から画面幅いっぱいに） */
.abi-band {
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%); padding-right: calc(50vw - 50%);
  background: var(--abi-ivory);
  padding-top: 74px; padding-bottom: 78px; margin-top: 74px; margin-bottom: 0;
}
.abi-band--white { background: var(--abi-bg); }
.abi-band--beige { background: var(--abi-beige); }
.abi-band + .abi-band { margin-top: 0; }

/* セクション見出し（Editorial: EN + セリフ大見出し + 罫線なし） */
.abi-sec { margin-bottom: 2em; }
.abi-sec__title {
  font-family: var(--abi-serif); font-weight: 600;
  font-size: clamp(1.5rem, 3.2vw, 2.05rem); letter-spacing: .1em;
  color: var(--abi-ink); margin: 0 0 .35em; line-height: 1.5;
}
.abi-sec__lead { color: var(--abi-ink-soft); font-size: .95rem; max-width: 42em; margin: 0; }

/* フェードイン */
.abi-reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s ease; }
.abi-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .abi-reveal { opacity: 1; transform: none; transition: none; } }

/* ── HERO ──────────────────────────────────── */
.abi-hero2 {
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center;
  padding: 56px 0 56px; min-height: 54vh;
}
.abi-hero2__label { margin-bottom: 1.6em; }
.abi-hero2__title {
  font-family: var(--abi-serif); font-weight: 600;
  font-size: clamp(1.9rem, 4.2vw, 3.05rem); line-height: 1.72; letter-spacing: .09em;
  color: var(--abi-ink); margin: 0 0 .8em;
}
.abi-hero2__title em { font-style: normal; color: var(--abi-sage-deep); background: linear-gradient(transparent 76%, rgba(201, 113, 79, .34) 76%); padding: 0 3px; }
.abi-hero2__sub { color: var(--abi-ink-soft); font-size: .98rem; line-height: 2.05; max-width: 34em; margin: 0 0 2em; }
.abi-hero2__art svg, .abi-hero2__art img { width: 100%; height: auto; display: block; }
.abi-search { display: flex; max-width: 460px; border: 1px solid var(--abi-line); border-radius: 999px; overflow: hidden; background: var(--abi-bg); transition: border-color .2s; }
.abi-search:focus-within { border-color: var(--abi-sage); }
.abi-search input { flex: 1; border: 0; padding: 13px 22px; font-size: .95rem; background: transparent; outline: none; color: var(--abi-ink); }
.abi-search button { border: 0; background: var(--abi-ink); color: #fff; padding: 0 22px; cursor: pointer; display: flex; align-items: center; transition: background .2s; }
.abi-search button:hover { background: var(--abi-sage-deep); }
.abi-search button svg { width: 17px; height: 17px; }

/* 注目キーワード（検索窓直下・テキストチップ） */
.abi-hotkw { margin-top: 14px; max-width: 480px; font-size: .82rem; line-height: 2; }
.abi-hotkw__label { color: var(--abi-ink-soft); margin-right: .9em; letter-spacing: .04em; }
.abi-hotkw__list a {
  display: inline-block; margin: 0 .95em .1em 0; color: var(--abi-sage-deep);
  text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s;
}

.abi-hotkw__list a:hover { border-bottom-color: var(--abi-coral); }

/* ── 悩みナビゲーター（Signature Experience） ── */
.abi-nav { background: transparent; border: 0; padding: 0; min-height: 320px; }
.abi-nav__progress { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
.abi-nav__stepnum {
  font-family: var(--abi-serif); font-size: 2.4rem; font-weight: 600; line-height: 1;
  color: var(--abi-sage); min-width: 1.6em;
}
.abi-nav__bar { flex: 1; height: 1px; background: var(--abi-line); position: relative; max-width: 220px; }
.abi-nav__bar i { position: absolute; left: 0; top: -1px; height: 3px; background: var(--abi-sage); transition: width .35s ease; border-radius: 2px; }
.abi-nav__q { font-family: var(--abi-serif); font-size: clamp(1.15rem, 2.4vw, 1.5rem); font-weight: 600; letter-spacing: .08em; margin: 0 0 .4em; color: var(--abi-ink); }
.abi-nav__sub { font-size: .85rem; color: var(--abi-ink-soft); margin: 0 0 1.4em; }
.abi-nav__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 0; border-top: 1px solid var(--abi-line); border-left: 1px solid var(--abi-line); }
.abi-nav__choice {
  display: flex; align-items: center; gap: 12px; padding: 17px 16px;
  background: var(--abi-bg); border: 0; border-right: 1px solid var(--abi-line); border-bottom: 1px solid var(--abi-line);
  font-size: .93rem; color: var(--abi-ink); cursor: pointer; text-align: left;
  transition: background .22s;
}
.abi-nav__choice:hover, .abi-nav__choice:focus-visible { background: var(--abi-sage-soft); }
.abi-nav__icon { width: 25px; height: 25px; flex: none; color: var(--abi-sage); }
.abi-nav__ctrl { display: flex; gap: 10px; margin-bottom: 14px; min-height: 30px; }
.abi-nav__btn {
  display: inline-flex; align-items: center; gap: 6px; font-size: .82rem;
  background: none; border: 1px solid var(--abi-line); border-radius: 999px; padding: 6px 14px;
  color: var(--abi-ink-soft); cursor: pointer; transition: border-color .2s, color .2s;
}
.abi-nav__btn:hover { border-color: var(--abi-sage); color: var(--abi-sage-deep); }
.abi-nav__btn svg { width: 13px; height: 13px; }
.abi-nav__alert {
  background: var(--abi-alert-bg); border: 1px solid var(--abi-alert-line); border-radius: 8px;
  padding: 13px 16px; font-size: .88rem; margin-bottom: 18px; color: #7c4a40;
}
.abi-nav__tel { display: block; margin-top: 8px; font-size: .84rem; }
.abi-nav__tel a { color: inherit; font-weight: 700; }
.abi-nav__duration-note { font-size: .89rem; color: var(--abi-sage-deep); background: var(--abi-sage-soft); border-radius: 8px; padding: 10px 14px; margin-top: 14px; }
.abi-nav__result .abi-card { border-left: 0; border-right: 0; border-radius: 0; }

/* ── 症状INDEX（行リスト・脱カード） ─────────── */
.abi-symlist { border-top: 1px solid var(--abi-line); }
.abi-symlist__row {
  display: flex; align-items: center; gap: 18px; padding: 19px 6px;
  border-bottom: 1px solid var(--abi-line); text-decoration: none; color: var(--abi-ink);
  transition: background .22s, padding-left .22s;
}
.abi-symlist__row:hover { background: var(--abi-ivory); padding-left: 14px; }
.abi-symlist__icon { width: 30px; height: 30px; flex: none; color: var(--abi-sage); }
.abi-symlist__name { font-weight: 700; font-size: 1.02rem; min-width: 11em; letter-spacing: .04em; }
.abi-symlist__en { display: block; font-size: 10px; letter-spacing: .2em; color: var(--abi-sage); font-weight: 600; margin-top: 2px; }
.abi-symlist__desc { flex: 1; font-size: .88rem; color: var(--abi-ink-soft); line-height: 1.7; }
.abi-symlist__arrow { flex: none; width: 16px; height: 16px; color: var(--abi-sage); transition: transform .22s; }
.abi-symlist__row:hover .abi-symlist__arrow { transform: translateX(4px); }

/* ── 部位（人体図メインUI） ────────────────── */
.abi-bodysec { display: grid; grid-template-columns: minmax(340px, 480px) 1fr; gap: 56px; align-items: center; }
.abi-bodymap { max-width: none; margin: 0; color: var(--abi-ink); }
.abi-bodymap svg { width: 100%; height: auto; max-height: 960px; display: block; margin: 0 auto; }
.abi-bm { cursor: pointer; }
.abi-bodylinks { border-top: 1px solid var(--abi-line); }
.abi-bodylinks a {
  display: flex; justify-content: space-between; align-items: center; padding: 13px 4px;
  border-bottom: 1px solid var(--abi-line); text-decoration: none; color: var(--abi-ink);
  font-size: .95rem; transition: background .2s, padding-left .2s;
}
.abi-bodylinks a:hover { background: var(--abi-ivory); padding-left: 12px; }
.abi-bodylinks a span:last-child { color: var(--abi-sage); font-size: .85rem; }

/* ── 病名 INDEX（辞書型・脱カード） ─────────── */
.abi-dindex { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 40px 48px; }
.abi-dindex__group {}
.abi-dindex__en { display: block; font-size: 10.5px; letter-spacing: .22em; color: var(--abi-sage); font-weight: 600; text-transform: uppercase; }
.abi-dindex__jp { font-family: var(--abi-serif); font-size: 1.08rem; font-weight: 600; letter-spacing: .08em; margin: .3em 0 .9em; padding-bottom: .6em; border-bottom: 1px solid var(--abi-ink); }
.abi-dindex__list { list-style: none; margin: 0; padding: 0; }
.abi-dindex__list li { margin: 0; }
.abi-dindex__list a {
  display: flex; justify-content: space-between; align-items: center;
  padding: 9px 2px; border-bottom: 1px solid var(--abi-line);
  color: var(--abi-ink); text-decoration: none; font-size: .93rem; transition: color .2s, padding-left .2s;
}
.abi-dindex__list a::after { content: '→'; color: var(--abi-line); transition: color .2s, transform .2s; font-size: .85rem; }
.abi-dindex__list a:hover { color: var(--abi-sage-deep); padding-left: 8px; }
.abi-dindex__list a:hover::after { color: var(--abi-sage); transform: translateX(3px); }

/* ── 季節 FEATURE ──────────────────────────── */
.abi-feature { display: grid; grid-template-columns: .9fr 1.1fr; gap: 52px; align-items: start; }
.abi-feature__season { font-family: Avenir, 'Helvetica Neue', sans-serif; font-size: clamp(2.4rem, 5vw, 3.6rem); font-weight: 200; letter-spacing: .12em; color: var(--abi-sage); line-height: 1.05; margin: 0; }
.abi-feature__season small { display: block; font-size: 11px; letter-spacing: .3em; font-weight: 600; color: var(--abi-ink-soft); margin-top: .8em; }
.abi-feature__title { font-family: var(--abi-serif); font-size: clamp(1.35rem, 2.8vw, 1.8rem); font-weight: 600; letter-spacing: .1em; line-height: 1.7; margin: .6em 0 .5em; }
.abi-feature__lead { color: var(--abi-ink-soft); font-size: .93rem; line-height: 1.95; }
.abi-feature__list { border-top: 1px solid var(--abi-line); margin-top: .4em; }
.abi-feature__list a { display: block; padding: 15px 4px; border-bottom: 1px solid var(--abi-line); color: var(--abi-ink); text-decoration: none; font-size: .97rem; transition: background .2s, padding-left .2s; }
.abi-feature__list a:hover { background: rgba(255,255,255,.6); padding-left: 12px; }
.abi-feature__list a small { display: block; color: var(--abi-ink-soft); font-size: .8rem; margin-top: 3px; }

/* ── 記事（FEATURED + LIST の Editorial） ───── */
.abi-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; margin: 1.2em 0; }
.abi-card {
  display: flex; flex-direction: column; gap: 8px;
  padding: 20px; background: var(--abi-bg); border: 1px solid var(--abi-line);
  border-radius: var(--abi-radius); text-decoration: none; color: var(--abi-ink);
  transition: box-shadow .25s, transform .25s, border-color .25s;
}
.abi-card:hover, .abi-card:focus-visible { box-shadow: var(--abi-shadow); border-color: var(--abi-sage); transform: translateY(-2px); }
.abi-card__cat { font-size: .72rem; color: var(--abi-sage-deep); background: var(--abi-sage-soft); border-radius: 4px; padding: 3px 8px; width: fit-content; }
.abi-card__title { font-weight: 600; line-height: 1.6; }
.abi-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 4px; font-size: .83rem; color: var(--abi-sage-deep); }
.abi-card__more svg { width: 14px; height: 14px; }
.abi-card__rank { width: 26px; height: 26px; border-radius: 50%; background: var(--abi-sage); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; font-weight: 700; flex: none; }
.abi-cards--nav { grid-template-columns: 1fr; gap: 0; border: 1px solid var(--abi-line); border-radius: var(--abi-radius); overflow: hidden; }
.abi-cards--nav .abi-card { flex-direction: row; align-items: center; gap: 14px; padding: 15px 18px; border: 0; border-bottom: 1px solid var(--abi-line); border-radius: 0; }
.abi-cards--nav .abi-card:last-child { border-bottom: 0; }
.abi-cards--nav .abi-card:hover { transform: none; box-shadow: none; background: var(--abi-ivory); }
.abi-cards--nav .abi-card__more { margin: 0 0 0 auto; flex: none; }

/* FEATURED: 1本目を大きく、以降を行リストに */
.abi-editorial { display: grid; grid-template-columns: 1.1fr 1fr; gap: 44px; align-items: start; }
.abi-editorial__main { text-decoration: none; color: var(--abi-ink); display: block; }
.abi-editorial__main img { width: 100%; height: auto; border-radius: var(--abi-radius); border: 1px solid var(--abi-line); }
.abi-editorial__main .abi-en { margin: 1.1em 0 .5em; }
.abi-editorial__maintitle { font-family: var(--abi-serif); font-size: clamp(1.2rem, 2.4vw, 1.5rem); font-weight: 600; line-height: 1.75; letter-spacing: .05em; margin: 0 0 .4em; }
.abi-editorial__main p { color: var(--abi-ink-soft); font-size: .9rem; line-height: 1.9; margin: 0; }
.abi-editorial__main:hover .abi-editorial__maintitle { color: var(--abi-sage-deep); }
.abi-editorial__side { border-top: 1px solid var(--abi-line); }
.abi-editorial__side a { display: block; padding: 16px 4px; border-bottom: 1px solid var(--abi-line); text-decoration: none; color: var(--abi-ink); transition: background .2s, padding-left .2s; }
.abi-editorial__side a:hover { background: var(--abi-ivory); padding-left: 12px; }
.abi-editorial__side .t { font-weight: 600; font-size: .95rem; line-height: 1.65; display: block; }
.abi-editorial__side .c { font-size: .76rem; color: var(--abi-sage-deep); margin-top: 4px; display: block; }

/* ── 記事詳細（Editorial Article） ──────────── */
.abi-theme.single .l-mainContent__inner > .post_content,
.abi-theme.single .post_content { font-size: 1.03rem; line-height: 2.05; }
.abi-theme.single .c-postTitle__ttl { font-family: var(--abi-serif); font-weight: 600; letter-spacing: .06em; line-height: 1.75; }
.abi-article-head { margin: 0 0 1.6em; padding-bottom: 1.4em; border-bottom: 1px solid var(--abi-line); }
.abi-article-head .abi-en { margin-bottom: .6em; }
.abi-article-head__meta { font-size: .84rem; color: var(--abi-ink-soft); display: flex; flex-wrap: wrap; gap: 1.5em; }
/* 見出し装飾の方針（2026-08-28 レビュー反映）:
 * 「見出しの上に必ず緑線」ルールは廃止。区切りはセクションの性質ごとに変える。
 * - 記事本文(single): セリフ＋罫線＋緑ティック（長文の可読性のため維持）
 * - 文書ページ(編集方針・運営者情報): セリフ＋細い罫線のみ
 * - TOP等のセクション見出し(.abi-sec__title): セリフ＋ENラベルのみ（線なし。帯背景・番号・イラストが区切りを担う） */
.abi-theme.single .post_content h2 {
  border-left: none; background: transparent; border-radius: 0;
  font-family: var(--abi-serif); font-weight: 600; letter-spacing: .07em;
  color: var(--abi-ink); border-bottom: 1px solid var(--abi-ink);
  padding: 0 0 .5em; margin-top: 2.8em;
}
.abi-theme.single .post_content h2::before { content: ''; display: block; width: 30px; height: 3px; background: var(--abi-sage); border-radius: 2px; margin-bottom: .55em; }
.abi-theme.page .post_content h2 {
  border-left: none; background: transparent; border-radius: 0;
  font-family: var(--abi-serif); font-weight: 600; letter-spacing: .07em;
  color: var(--abi-ink); border: 0; border-bottom: 1px solid var(--abi-line);
  padding: 0 0 .5em; margin-top: 2.6em;
}
.abi-theme.page .post_content h2.abi-sec__title,
.abi-theme.page .post_content h2.abi-feature__title {
  border: 0; background: transparent; padding: 0; margin-top: 0;
}
.abi-theme.page .post_content h2.abi-sec__title::before, .abi-theme.page .post_content h2.abi-sec__title::after,
.abi-theme.page .post_content h2.abi-feature__title::before, .abi-theme.page .post_content h2.abi-feature__title::after { content: none; }
.abi-theme .post_content h3 { color: var(--abi-sage-deep); letter-spacing: .04em; }
/* 2026-09-10 医師指摘: 淡緑bg×テーマ白文字でコントラスト不足→深緑bg×白文字に（全表共通） */
.abi-theme .post_content table th { background: var(--abi-sage-deep); color: #fff; }

/* 記事コンポーネント（罫線基調・箱に頼らない） */
.abi-box { border-radius: 0; padding: 4px 0 4px 22px; margin: 2em 0; border: 0; border-left: 2px solid var(--abi-sage); background: transparent; }
.abi-box__title { display: flex; align-items: center; gap: 8px; font-weight: 700; margin: 0 0 .5em; color: var(--abi-sage-deep); letter-spacing: .05em; }
.abi-box__title svg { width: 19px; height: 19px; }
.abi-box--point { border-left-color: var(--abi-sage); background: transparent; }
.abi-box--jushin { border-left: 2px solid var(--abi-coral); background: transparent; }
.abi-box--jushin .abi-box__title { color: #a8635a; }
.abi-box--caution { border-left: 2px solid var(--abi-caution-line); background: transparent; }
.abi-box--caution .abi-box__title { color: #8a6d2f; }
.abi-disclaimer { font-size: .84rem; color: var(--abi-ink-soft); border-top: 1px solid var(--abi-line); padding-top: 1.1em; margin-top: 2.4em; }
.abi-cta { background: var(--abi-ivory); border: 1px solid var(--abi-line); border-radius: var(--abi-radius); padding: 30px 26px; margin: 2.4em 0; text-align: center; }
.abi-cta__photo { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; object-position: top; display: block; margin: 0 auto 14px; border: 2px solid #fff; box-shadow: 0 3px 12px rgba(42, 46, 45, .14); }
.abi-cta__lead { font-family: var(--abi-serif); font-weight: 600; letter-spacing: .06em; margin: 0 0 .5em; color: var(--abi-ink); }
.abi-cta__sub { margin: 0; font-size: .9rem; color: var(--abi-ink-soft); }
.abi-cta__btn { margin: 1.4em 0 0; }
.abi-cta__btn a {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--abi-ink); color: #fff; text-decoration: none;
  padding: 14px 30px; border-radius: 999px; font-size: .95rem; letter-spacing: .06em;
  transition: background .25s;
}
.abi-cta__btn a:hover { background: var(--abi-coral); }
.abi-cta__btn a svg { width: 15px; height: 15px; transition: transform .2s; }
.abi-cta__btn a:hover svg { transform: translateX(4px); }


/* ── ターム/アーカイブ（Editorial Landing） ── */
.abi-theme.archive .c-pageTitle { font-family: var(--abi-serif); letter-spacing: .08em; }
.tax-symptom .c-pageTitle__subTitle, .tax-body_part .c-pageTitle__subTitle, .tax-disease .c-pageTitle__subTitle { display: none; }
.abi-related-terms { margin: 1.4em 0 2em; }
.abi-termlist { margin: 1.6em 0; }
.abi-termlist dt { font-weight: 700; margin-top: 1.15em; }
.abi-termlist dt a { color: var(--abi-sage-deep); text-decoration: none; }
.abi-termlist dt a:hover { text-decoration: underline; }
.abi-termlist dd { margin: .2em 0 0; color: var(--abi-ink-soft); font-size: .92rem; }
.abi-termlist__count { font-size: .76rem; font-weight: 400; color: var(--abi-ink-soft); margin-left: 6px; }
/* 記事一覧: 先頭記事を大きく（Editorial強弱） */
.abi-theme.archive .p-postList.-type-card { grid-template-columns: repeat(2, 1fr); display: grid; gap: 28px; }
.abi-theme.archive .p-postList.-type-card .p-postList__item:first-child { grid-column: 1 / -1; }
.abi-theme.archive .p-postList.-type-card .p-postList__item:first-child .p-postList__link { display: grid; grid-template-columns: 1.05fr 1fr; gap: 30px; align-items: center; }
.abi-theme.archive .p-postList.-type-card .p-postList__item:first-child .p-postList__title { font-family: var(--abi-serif); font-size: 1.35rem; line-height: 1.7; }

/* ── チップ（補助用途に残す） ──────────────── */
.abi-chips { display: flex; flex-wrap: wrap; gap: 9px; margin: 1.1em 0; }
.abi-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border: 1px solid var(--abi-line); border-radius: 999px;
  background: var(--abi-bg); color: var(--abi-ink); text-decoration: none;
  font-size: .92rem; line-height: 1; transition: border-color .2s, background .2s;
}
.abi-chip:hover, .abi-chip:focus-visible { border-color: var(--abi-sage); background: var(--abi-sage-soft); }
.abi-chip__icon { width: 21px; height: 21px; color: var(--abi-sage); }

/* ── 医師プロフィール ──────────────────────── */
.abi-doctor { background: var(--abi-ivory); border: 1px solid var(--abi-line); border-radius: var(--abi-radius); padding: 30px 30px 24px; margin: 1.4em 0; }
.abi-doctor__name { font-family: var(--abi-serif); font-size: 1.5rem; font-weight: 600; letter-spacing: .14em; color: var(--abi-ink); margin: 0 0 .6em; }
.abi-doctor__title { display: block; font-family: inherit; font-size: .8rem; font-weight: 600; letter-spacing: .08em; color: var(--abi-sage-deep); margin-top: .5em; }
.abi-doctor__career { width: 100%; margin-top: 1.2em; border-collapse: collapse; font-size: .92rem; }
.abi-doctor__career th { white-space: nowrap; text-align: left; vertical-align: top; color: var(--abi-sage-deep); font-weight: 700; padding: .55em 1.2em .55em 0; border-bottom: 1px solid var(--abi-line); width: 6em; }
.abi-doctor__career td { padding: .55em 0; border-bottom: 1px solid var(--abi-line); }

/* ── 汎用 ─────────────────────────────────── */
.abi-more-link { text-align: right; font-size: .9rem; margin: 1em 0 0; }
.abi-more-link a { color: var(--abi-sage-deep); text-decoration: none; letter-spacing: .04em; }
.abi-more-link a:hover { text-decoration: underline; }
.abi-h4 { font-weight: 700; margin: 1.2em 0 .3em; color: var(--abi-sage-deep); letter-spacing: .04em; }
.abi-findlinks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 1.2em 0; }

/* ── フッター ─────────────────────────────── */
.abi-theme .l-footer { border-top: 1px solid var(--abi-line); }
.abi-footnav { list-style: none; margin: 0; padding: 0; }
.abi-footnav li { margin: .55em 0; }
.abi-footnav a { text-decoration: none; font-size: .92rem; }
.abi-footnote { font-size: .9rem; line-height: 1.9; }

/* ── サイトマップ型フッター ─────────────────── */
.abi-footmap-wrap { background: var(--abi-ivory); border-top: 1px solid var(--abi-line); padding: 46px 0 30px; margin-top: 70px; }
.abi-footmap {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 32px;
  padding: 20px 0 8px; text-align: left;
}
@media (max-width: 840px) { .abi-footmap { grid-template-columns: repeat(2, 1fr); gap: 24px 20px; } }
.abi-footmap .abi-en { margin-bottom: .4em; }
.abi-footmap__ttl { font-weight: 700; font-size: .95rem; margin: 0 0 .8em; padding-bottom: .5em; border-bottom: 1px solid var(--abi-line); letter-spacing: .04em; }
.abi-footmap .abi-footnav li { margin: .5em 0; }
.abi-footmap .abi-footnav a { font-size: .88rem; color: var(--abi-ink-soft); text-decoration: none; transition: color .2s; }
.abi-footmap .abi-footnav a:hover { color: var(--abi-sage-deep); text-decoration: underline; }
.abi-footmap__clinic { border-top: 1px solid var(--abi-line); margin-top: 26px; padding: 18px 0 0; }
.abi-footmap__clinic p { font-size: .85rem; color: var(--abi-ink-soft); margin: 0; }
@media (max-width: 840px) { .abi-footmap { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .abi-footmap { grid-template-columns: 1fr 1fr; gap: 22px 20px; } }

/* ── 検索・404 ─────────────────────────────── */
.abi-theme.search .c-pageTitle, .abi-theme.error404 .c-pageTitle { font-family: var(--abi-serif); }
.abi-404 { text-align: center; padding: 30px 0 10px; }
.abi-404 .abi-en { display: inline-block; }
.abi-404 p { color: var(--abi-ink-soft); }

/* ============================================================
   v3（第4次改修）— 幅システム / 記事一覧根治 / サジェスト / FV機能化 / Motion
   ============================================================ */

/* 幅システム: TOP・一覧は1140px、記事本文は読みやすさ優先で900pxを維持 */
.abi-theme.home, .abi-theme.archive, .abi-theme.search, .abi-theme.page:not(.home) { --article_size: 1140px; }
.abi-theme.single { --article_size: 900px; }

/* ── 記事一覧の根治 ──
   原因: SWELLの .p-postList__item は自身に width:calc(33%…) を持つflex用の設計。
   ここにgridを被せると「広いトラック内の狭いカード」になる。→ grid管理下では item幅を必ずautoに戻す */
.abi-theme.archive .p-postList.-type-card,
.abi-theme.search .p-postList.-type-card {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 28px;
}
.abi-theme.archive .p-postList.-type-card .p-postList__item,
.abi-theme.search .p-postList.-type-card .p-postList__item {
  width: auto !important; max-width: none !important; margin: 0 !important;
}
.abi-theme.archive .p-postList.-type-card .p-postList__item:first-child { grid-column: 1 / -1; }
.abi-theme.archive .p-postList.-type-card .p-postList__item:first-child .p-postList__link {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 34px; align-items: center;
}
.abi-theme.archive .p-postList.-type-card .p-postList__item:first-child .p-postList__title {
  font-family: var(--abi-serif); font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.7; -webkit-line-clamp: 3;
}
.abi-theme.archive .p-postList__thumb, .abi-theme.search .p-postList__thumb { width: 100%; }
.abi-theme.archive .p-postList__thumb img, .abi-theme.search .p-postList__thumb img {
  width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; border-radius: 8px;
}
.abi-theme.archive .p-postList__title, .abi-theme.search .p-postList__title {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  line-height: 1.65; font-size: 1rem;
}
.abi-theme.archive .p-postList__excerpt, .abi-theme.search .p-postList__excerpt {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  font-size: .84rem; color: var(--abi-ink-soft);
}
.abi-theme.archive .p-postList__item:not(:first-child) .p-postList__excerpt { display: none; }
.abi-theme.archive .p-postList__meta, .abi-theme.search .p-postList__meta { font-size: .76rem; }

/* ── サジェスト ── */
.abi-hero2__search { position: relative; }
.abi-suggest {
  position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 6px); max-width: 460px;
  background: var(--abi-bg); border: 1px solid var(--abi-line); border-radius: 12px;
  box-shadow: 0 10px 30px rgba(50,55,54,.10); padding: 6px 0; display: none;
}
.abi-suggest.is-open { display: block; }
.abi-suggest__group { padding: 6px 0; }
.abi-suggest__group + .abi-suggest__group { border-top: 1px solid var(--abi-line); }
.abi-suggest__label {
  display: block; font-size: 10px; letter-spacing: .2em; color: var(--abi-sage);
  font-weight: 700; padding: 4px 18px 2px;
}
.abi-suggest a { display: block; padding: 7px 18px; color: var(--abi-ink); text-decoration: none; font-size: .92rem; }
.abi-suggest a:hover { background: var(--abi-ivory); }
.abi-suggest a small { color: var(--abi-ink-soft); margin-left: .6em; font-size: .75rem; }

/* ── FV v3: 右側を機能（Interactive Body Map）に ── */
.abi-hero2 { grid-template-columns: 1.08fr .92fr; min-height: 0; padding: 46px 0 40px; }
.abi-hero2__q { font-size: .95rem; font-weight: 700; letter-spacing: .06em; color: var(--abi-sage-deep); margin: 0 0 .5em; }
.abi-hero2__map { position: relative; }
.abi-hero2__map .abi-bodymap svg { max-height: 780px; }
.abi-hero2__map-label { text-align: center; margin-top: .2em; }
.abi-maphint { margin-top: 14px; text-align: center; }
.abi-maphint .abi-en { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 10px; letter-spacing: .24em; color: var(--abi-sage-deep); }
.abi-maphint .abi-en::before, .abi-maphint .abi-en::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .45; }
.abi-maphint p { margin: 7px 0 0; font-family: var(--abi-serif); font-weight: 600; font-size: 14px; letter-spacing: .12em; color: var(--abi-ink); display: inline-flex; align-items: center; gap: 9px; }
.abi-tapdot { position: relative; width: 13px; height: 13px; color: var(--abi-sage); flex: none; }
.abi-tapdot::before { content: ""; position: absolute; inset: 3.5px; border-radius: 50%; background: currentColor; }
.abi-tapdot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid currentColor; animation: abiTapPulse 2.2s ease-out infinite; }
@keyframes abiTapPulse { 0% { transform: scale(.7); opacity: .8; } 70% { transform: scale(2); opacity: 0; } 100% { transform: scale(2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .abi-tapdot::after { animation: none; opacity: .4; } }
.abi-finder { display: flex; flex-wrap: wrap; gap: 8px 8px; margin-top: 18px; }
.abi-finder a {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--abi-line); border-radius: 8px; padding: 8px 13px;
  font-size: .84rem; color: var(--abi-ink); text-decoration: none;
  transition: border-color .2s, background .2s;
}
.abi-finder a:hover { border-color: var(--abi-sage); background: var(--abi-sage-soft); }
.abi-finder a svg { width: 16px; height: 16px; color: var(--abi-sage); }
.abi-fvsym { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.abi-fvsym a {
  display: inline-flex; align-items: center; gap: 7px;
  border: 1px solid var(--abi-line); border-radius: 999px; padding: 8px 14px;
  font-size: .86rem; color: var(--abi-ink); text-decoration: none; background: var(--abi-bg);
  transition: border-color .2s, background .2s;
}
.abi-fvsym a:hover { border-color: var(--abi-sage); background: var(--abi-sage-soft); }
.abi-fvsym a svg { width: 19px; height: 19px; color: var(--abi-sage); transition: transform .2s; }
.abi-fvsym a:hover svg { transform: scale(1.12); }

/* ── Motion Design（意味のある控えめなモーション） ── */
@media (prefers-reduced-motion: no-preference) {
  @keyframes abiFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  .abi-hero2__copy > * { opacity: 0; animation: abiFadeUp .6s ease forwards; }
  .abi-hero2__copy > :nth-child(1) { animation-delay: 0s; }
  .abi-hero2__copy > :nth-child(2) { animation-delay: .09s; }
  .abi-hero2__copy > :nth-child(3) { animation-delay: .18s; }
  .abi-hero2__copy > :nth-child(4) { animation-delay: .27s; }
  .abi-hero2__copy > :nth-child(5) { animation-delay: .36s; }
  .abi-hero2__copy > :nth-child(6) { animation-delay: .45s; }
  .abi-hero2__copy > :nth-child(7) { animation-delay: .54s; }
  .abi-hero2__map { opacity: 0; animation: abiFadeUp .7s ease .25s forwards; }
  .abi-nav.is-entering .abi-nav__head, .abi-nav.is-entering .abi-nav__grid, .abi-nav.is-entering .abi-nav__result {
    animation: abiFadeUp .35s ease both;
  }
  .abi-symlist__icon { transition: transform .22s; }
  .abi-symlist__row:hover .abi-symlist__icon { transform: translateY(-2px) scale(1.06); }
  .p-postList__thumb img { transition: transform .35s ease; }
  .p-postList__link:hover .p-postList__thumb img { transform: scale(1.02); }
  .abi-card__more svg, .abi-more-link a { transition: transform .2s; }
  .abi-card:hover .abi-card__more svg { transform: translateX(5px); }
  .abi-more-link a:hover { transform: translateX(4px); display: inline-block; }
}

/* ── モバイル ─────────────────────────────── */

/* ============================================================
   v4 Design System — 見出しファミリー / 脱カード / Timeline / Motion Tokens
   原則: 削っても上質に見えるか。Typography・Spacing・Layoutの精度で品質を出す
   ============================================================ */

/* Living Skin canvas（FV背景・CLSゼロ） */
.abi-hero2 { position: relative; }
.abi-hero2 > * { position: relative; z-index: 1; }
.abi-skin-canvas {
  position: absolute; z-index: 0; inset: -30px -6vw -30px 0;
  width: calc(100% + 6vw); height: calc(100% + 60px);
  opacity: 0; transition: opacity 1.4s ease; pointer-events: none;
}
.abi-skin-canvas.is-on { opacity: 1; }

/* ── Heading Families ── */
.abi-h-index { display: flex; align-items: baseline; gap: 18px; margin: 0 0 1.2em; }
.abi-h-index__num {
  font-family: Avenir, 'Helvetica Neue', sans-serif; font-weight: 200;
  font-size: clamp(2.6rem, 5vw, 3.6rem); line-height: 1; color: var(--abi-line);
}
.abi-h-index__title { font-family: var(--abi-serif); font-weight: 600; font-size: clamp(1.2rem, 2.4vw, 1.55rem); letter-spacing: .08em; margin: 0; }
.abi-h-trust { margin: 0 0 1.6em; }
.abi-h-trust .abi-en { margin-bottom: 1.2em; }
.abi-h-trust__st {
  font-family: var(--abi-serif); font-weight: 600;
  font-size: clamp(1.5rem, 3.4vw, 2.3rem); line-height: 1.9; letter-spacing: .1em; margin: 0;
}
.abi-pagehero { padding: 30px 0 34px; }
.abi-pagehero .abi-search { margin-top: 22px; }

/* ── 脱カード: 医師プロフィール/CTAをフラット化 ── */
.abi-doctor { background: transparent; border: 0; border-top: 1px solid var(--abi-ink); border-radius: 0; padding: 30px 0 8px; }
.abi-cta { background: transparent; border: 0; border-top: 1px solid var(--abi-line); border-bottom: 1px solid var(--abi-line); border-radius: 0; padding: 34px 8px; }

/* ── Doctor Editorial Profile + Timeline ── */
.abi-profile { display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: 54px; align-items: start; margin: 1em 0 2em; }
.abi-profile__photo {
  aspect-ratio: 3 / 4; background: var(--abi-beige); border-radius: 4px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
  color: var(--abi-ink-soft); font-size: .78rem; letter-spacing: .18em;
}
.abi-profile__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.abi-profile__photo svg { width: 44px; height: 44px; color: var(--abi-sage); }
.abi-profile__name { font-family: var(--abi-serif); font-weight: 600; font-size: clamp(1.7rem, 3.4vw, 2.3rem); letter-spacing: .16em; margin: .2em 0 .4em; }
.abi-profile__cred { font-size: .9rem; color: var(--abi-sage-deep); font-weight: 600; letter-spacing: .06em; margin: 0 0 1.2em; }
.abi-profile__intro { color: var(--abi-ink-soft); line-height: 2.1; font-size: .97rem; }
.abi-timeline { margin: 1.4em 0 0; }
.abi-timeline__row { display: grid; grid-template-columns: 108px 1fr; gap: 26px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--abi-line); }
.abi-timeline__row:last-child { border-bottom: 0; }
.abi-timeline__year {
  font-family: Avenir, 'Helvetica Neue', sans-serif; font-weight: 200;
  font-size: 1.9rem; letter-spacing: .04em; color: #c9c2b2; line-height: 1;
  transition: color .5s;
}
.abi-timeline__row.is-now .abi-timeline__year { color: var(--abi-coral); }
.abi-timeline__body { font-size: .97rem; line-height: 1.9; }
.abi-timeline__body small { display: block; color: var(--abi-ink-soft); font-size: .82rem; margin-top: 2px; }


/* 固定ページ: 独自ヒーローがある場合はテーマのページタイトルを出さない（二重見出し回避） */
.l-mainContent:has(.post_content > .abi-pagehero) .c-pageTitle,
.l-mainContent:has(.post_content > .abi-journal) .c-pageTitle { display: none; }

/* 部位ページ: Body Map Hero */
.abi-maphero { max-width: 560px; margin: 0 auto; }
.abi-maphero .abi-bodymap svg { max-height: 720px; }

/* ── Progressive Disclosure（編集方針の 01-04） ── */
.abi-steps { margin: 2em 0; }
.abi-steps__item { display: grid; grid-template-columns: 88px 1fr; gap: 26px; padding: 26px 0; border-bottom: 1px solid var(--abi-line); }
.abi-steps__num { font-family: Avenir, 'Helvetica Neue', sans-serif; font-weight: 200; font-size: 2.1rem; color: var(--abi-line); line-height: 1; }
.abi-steps__ttl { font-family: var(--abi-serif); font-weight: 600; font-size: 1.1rem; letter-spacing: .08em; margin: 0 0 .5em; }
.abi-steps__item p { margin: 0; color: var(--abi-ink-soft); font-size: .95rem; line-height: 2; }

/* ── Seasonal Journal ── */
.abi-journal__head { padding: 26px 0 30px; }
.abi-journal__issue { font-family: Avenir, 'Helvetica Neue', sans-serif; font-weight: 200; font-size: clamp(2rem, 4.4vw, 3rem); letter-spacing: .14em; color: var(--abi-sage); margin: .2em 0 .4em; line-height: 1.1; }
.abi-journal__title { font-family: var(--abi-serif); font-weight: 600; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.85; letter-spacing: .1em; margin: 0; }
.abi-journal .abi-editorial { margin-top: 2em; }

/* ── 記事本文h2: 緑ティック廃止 → セリフ＋細罫線のみ ── */
.abi-theme.single .post_content h2 { border-bottom: 1px solid var(--abi-line); }
.abi-theme.single .post_content h2::before { content: none; }

/* ── Motion Tokens ── */
@media (prefers-reduced-motion: no-preference) {
  .abi-line-draw::after { content: ''; display: block; height: 1px; width: 100%; background: var(--abi-ink); transform: scaleX(0); transform-origin: left; transition: transform .8s cubic-bezier(.25,.1,.25,1); }
  .abi-line-draw.is-in::after { transform: scaleX(1); }
}

@media (max-width: 840px) {
  .abi-profile { grid-template-columns: 1fr; gap: 22px; }
  .abi-profile__photo { max-width: 220px; }
  .abi-timeline__row { grid-template-columns: 74px 1fr; gap: 16px; }
  .abi-timeline__year { font-size: 1.4rem; }
  .abi-steps__item { grid-template-columns: 60px 1fr; gap: 16px; }
  .abi-skin-canvas { display: none; }
}


@media (max-width: 840px) {
  .abi-hero2 { grid-template-columns: 1fr; gap: 26px; padding: 44px 0 36px; min-height: 0; }
  .abi-hero2__art { max-width: 320px; margin: 0 auto; order: -1; }
  .abi-bodysec { grid-template-columns: 1fr; gap: 26px; }
  .abi-bodymap svg { max-height: 480px; }
  .abi-feature { grid-template-columns: 1fr; gap: 20px; }
  .abi-editorial { grid-template-columns: 1fr; gap: 24px; }
  .abi-band { padding-top: 52px; padding-bottom: 54px; margin-top: 52px; }
  .abi-theme.archive .p-postList.-type-card { grid-template-columns: 1fr; }
  .abi-theme.archive .p-postList.-type-card .p-postList__item:first-child .p-postList__link { grid-template-columns: 1fr; }
}
@media (max-width: 840px) {
  /* 一覧: 1列。2本目以降は横型Compactカード（高速スキャン用） */
  .abi-theme.archive .p-postList.-type-card,
  .abi-theme.search .p-postList.-type-card { grid-template-columns: 1fr; gap: 0; }
  .abi-theme.archive .p-postList.-type-card .p-postList__item:first-child .p-postList__link { grid-template-columns: 1fr; gap: 14px; }
  .abi-theme.archive .p-postList.-type-card .p-postList__item:first-child { padding-bottom: 20px; border-bottom: 1px solid var(--abi-line); margin-bottom: 4px !important; }
  .abi-theme.archive .p-postList.-type-card .p-postList__item:not(:first-child) .p-postList__link,
  .abi-theme.search .p-postList.-type-card .p-postList__item .p-postList__link {
    display: grid; grid-template-columns: 118px 1fr; gap: 14px; align-items: center;
    padding: 14px 0; border-bottom: 1px solid var(--abi-line);
  }
  .abi-theme.archive .p-postList.-type-card .p-postList__item:not(:first-child) .p-postList__thumb img,
  .abi-theme.search .p-postList.-type-card .p-postList__thumb img { aspect-ratio: 4 / 3; border-radius: 6px; }
  .abi-theme.archive .p-postList.-type-card .p-postList__item:not(:first-child) .p-postList__title { font-size: .92rem; -webkit-line-clamp: 3; }
  .abi-theme.search .p-postList__excerpt { display: none; }
  .abi-hero2__map { max-width: 300px; margin: 0 auto; order: 2; }
}
@media (max-width: 600px) {
  .abi-nav__grid { grid-template-columns: 1fr 1fr; }
  .abi-nav__choice { padding: 15px 12px; font-size: .89rem; }
  .abi-symlist__row { flex-wrap: wrap; gap: 10px 14px; padding: 16px 4px; }
  .abi-symlist__name { min-width: 0; }
  .abi-symlist__desc { flex-basis: 100%; order: 3; }
  .abi-cards { grid-template-columns: 1fr; }
  .abi-chip { padding: 9px 13px; font-size: .89rem; }
  .abi-findlinks { grid-template-columns: 1fr; }
  .abi-dindex { gap: 30px; }
  .abi-search input { padding: 12px 16px; }
}


/* ══ v6: 公開前・最終品質改善 ══ */

/* THE ANSWER — 記事冒頭の答え（Editorial Component） */
.abi-answer { margin: 2.4em 0 2.4em; padding: 1.8em 0 2em; border-top: 1px solid var(--abi-ink); border-bottom: 1px solid var(--abi-line); }
.abi-answer .abi-en { color: var(--abi-sage); }
.abi-answer .abi-en::before { content: ''; display: inline-block; width: 22px; height: 2px; background: var(--abi-coral); margin-right: 10px; vertical-align: 3px; }
.abi-answer__ttl { font-family: var(--abi-serif); font-weight: 600; font-size: clamp(1.2rem, 2.2vw, 1.55rem); line-height: 2; letter-spacing: .06em; margin: .55em 0 0; color: var(--abi-ink); }

/* 記事ヘッダー重複除去: SWELL標準の日付バッジ・カテゴリ+日付行・アイキャッチ（タイトル入りカードのため本文では冗長） */
.c-postTitle__date, .p-articleMetas.-top { display: none; }
/* サムネイルは表示する（2026-08-28 オーナー指示で復活）。上下の余白だけ整える */
.p-articleThumb { margin-bottom: 1.6em; }

/* 記事h3: 下線バー廃止 → 太さと余白で階層（緑線ルールの全廃） */
.abi-theme .post_content h3 { border: none; background: none; padding: 0 0 .2em; margin-top: 2.4em; font-size: 1.1rem; font-weight: 700; letter-spacing: .05em; }
.abi-theme .post_content h3::before, .abi-theme .post_content h3::after { content: none !important; }

/* TOP: コンパクト症状グリッド（理解させるより選ばせる） */
.abi-symgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 56px; margin-top: 6px; }
.abi-symgrid a { display: grid; grid-template-columns: 26px 1fr auto 18px; align-items: center; gap: 14px; padding: 15px 2px; border-bottom: 1px solid var(--abi-line); color: var(--abi-ink); text-decoration: none; transition: background-color .25s; }
.abi-symgrid a:hover { background-color: rgba(122, 146, 132, .06); }
.abi-symgrid a > svg { width: 24px; height: 24px; fill: none; stroke: var(--abi-sage); stroke-width: 1.5; }
.abi-symgrid__name { font-weight: 600; font-size: .98rem; letter-spacing: .04em; }
.abi-symgrid__name small.abi-en { display: block; margin-top: 2px; font-size: .58rem; color: var(--abi-sage); }
.abi-symgrid__hint { font-size: .78rem; color: var(--abi-ink-soft); letter-spacing: .02em; }
.abi-symgrid__arrow { width: 14px; height: 14px; fill: none; stroke: var(--abi-ink-soft); stroke-width: 1.5; transition: transform .25s; }
.abi-symgrid a:hover .abi-symgrid__arrow { transform: translateX(4px); stroke: var(--abi-sage-deep); }

/* Timeline: Career Event の強弱（表を縦にしただけ、にしない） */
.abi-timeline__year { font-size: 1.3rem; color: #d3cdc0; }
.abi-timeline__row.is-key .abi-timeline__year { font-size: 2.1rem; color: #b5ac96; }
.abi-timeline__row.is-goal .abi-timeline__year { font-size: 2.1rem; color: var(--abi-sage); }
.abi-timeline__row.is-goal .abi-timeline__body { color: var(--abi-sage-deep); font-weight: 600; }
.abi-timeline__row.is-now .abi-timeline__year { color: var(--abi-coral); }

/* 検索結果: 関連テーマチップのカテゴリ小ラベル */
.abi-chip__cat { font-size: .6rem; color: var(--abi-sage); letter-spacing: .1em; margin-left: 7px; }

/* タームアーカイブ: 説明の枠ボックスをフラット化（カードに頼らない） */
.c-taxDesc, .p-termHead__desc, .term-description { border: none !important; background: transparent !important; padding: 0 !important; color: var(--abi-ink-soft); }

@media (max-width: 840px) {
  /* v8.5: SPは2列（縦長になりすぎないように）。補足文は非表示のため列定義からも外す */
  .abi-symgrid { grid-template-columns: 1fr 1fr; gap: 0 16px; }
  .abi-symgrid a { grid-template-columns: 20px 1fr; gap: 8px; padding: 13px 0; }
  .abi-symgrid a > svg { width: 19px; height: 19px; }
  .abi-symgrid__name { font-size: .84rem; letter-spacing: .02em; }
  .abi-symgrid__name small.abi-en { display: none; }
  .abi-symgrid__arrow { display: none; }
  .abi-symgrid__hint { display: none; }
  .abi-answer__ttl { line-height: 1.9; }
  .abi-timeline__row.is-key .abi-timeline__year, .abi-timeline__row.is-goal .abi-timeline__year { font-size: 1.6rem; }
}


/* v8.6: 記事内図版（写真・自作イラスト）と出典クレジット */
.abi-figure { margin: 30px 0; }
.abi-figure img, .abi-figure svg { width: 100%; height: auto; display: block; border-radius: 2px; border: 1px solid var(--abi-line); }
.abi-figure figcaption { margin-top: 9px; font-size: .8rem; color: var(--abi-ink-soft); letter-spacing: .03em; line-height: 1.7; }
.abi-figure__credit { display: block; margin-top: 2px; font-size: .68rem; opacity: .8; }
.abi-figure__credit a { color: inherit; text-decoration: underline; }
.abi-figure--illust img, .abi-figure--illust svg { border: none; background: var(--abi-ivory); padding: 8px; box-sizing: border-box; }
@media (max-width: 840px) { .abi-figure { margin: 24px 0; } }


/* v8.7: アビィの散歩（セッション初回のみ・reduced-motion時は出さない） */
.abi-stroll { position: fixed; left: -64px; bottom: 24px; z-index: 8999; width: 44px; height: 44px; pointer-events: none; animation: abiStrollWalk 8.5s linear forwards; }
.abi-stroll svg { width: 100%; height: 100%; display: block; animation: abiStrollWaddle .42s ease-in-out infinite; transform-origin: 50% 88%; }
.abi-stroll__legs { position: absolute; left: 12px; bottom: -1px; width: 18px; height: 8px; }
.abi-stroll__legs::before, .abi-stroll__legs::after { content: ""; position: absolute; bottom: 0; width: 2px; height: 8px; background: #0f6b47; border-radius: 1px; transform-origin: top center; }
.abi-stroll__legs::before { left: 3px; animation: abiStrollLegA .42s linear infinite; }
.abi-stroll__legs::after { left: 11px; animation: abiStrollLegB .42s linear infinite; }
.abi-stroll.is-leaving { animation-play-state: paused; opacity: 0; transition: opacity .45s; }
@keyframes abiStrollWalk { 0% { transform: translateX(0); } 100% { transform: translateX(calc(100vw - 108px)); } }
@keyframes abiStrollWaddle { 0%, 100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1.5px); } }
@keyframes abiStrollLegA { 0%, 100% { transform: rotate(18deg); } 50% { transform: rotate(-18deg); } }
@keyframes abiStrollLegB { 0%, 100% { transform: rotate(-18deg); } 50% { transform: rotate(18deg); } }
.abi-chat-launcher.is-greet { animation: abiGreetHop .8s ease; }
.abi-chat-launcher .abi-bird { transform-origin: 50% 90%; }
.abi-chat-launcher.is-empty .abi-bird { opacity: 0; transform: scale(0); }
.abi-chat-launcher.is-arrive .abi-bird { animation: abiBirdPop .5s cubic-bezier(.34, 1.56, .64, 1) both; }
@keyframes abiBirdPop { 0% { opacity: 0; transform: scale(0) translateY(5px); } 60% { opacity: 1; transform: scale(1.18); } 100% { opacity: 1; transform: scale(1); } }
.abi-stroll.is-jumping svg { animation: abiStrollJump .55s ease-in both; }
.abi-stroll.is-jumping .abi-stroll__legs { display: none; }
@keyframes abiStrollJump { 0% { transform: translate(0, 0) scale(1) rotate(0deg); opacity: 1; } 50% { transform: translate(18px, -50px) scale(.85) rotate(9deg); opacity: 1; } 100% { transform: translate(34px, -20px) scale(.3) rotate(16deg); opacity: 0; } }
@keyframes abiGreetHop { 0%, 100% { transform: translateY(0); } 25% { transform: translateY(-8px); } 45% { transform: translateY(0); } 62% { transform: translateY(-4px); } 78% { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .abi-stroll { display: none; } .abi-stroll.is-forced { display: block; } .abi-chat-launcher.is-greet { animation: none; } }
/* ランチャーの待機モーション: 12秒に1回、小さくぴょこっと跳ねる */
.abi-chat-launcher { animation: abiIdleHop 12s ease-in-out infinite; }
@keyframes abiIdleHop { 0%, 92%, 100% { transform: translateY(0); } 94% { transform: translateY(-5px); } 96% { transform: translateY(0); } 98% { transform: translateY(-2px); } }
@media (prefers-reduced-motion: reduce) { .abi-chat-launcher { animation: none; } }


/* v4.1.5: あび先生の本音（記事末の医師コメント・存在感重視） */
.abi-honne { position: relative; margin: 3.2em 0 2.6em; padding: 30px 28px 22px; background: var(--abi-ivory); border-top: 2px solid var(--abi-sage-deep); }
.abi-honne::before { content: "“"; position: absolute; top: 6px; right: 20px; font-family: Georgia, serif; font-size: 84px; line-height: 1; color: var(--abi-coral); opacity: .3; pointer-events: none; }
.abi-honne__head { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.abi-honne__photo { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; object-position: top; border: 2px solid #fff; box-shadow: 0 3px 12px rgba(42, 46, 45, .18); flex: none; }
.abi-honne .abi-en { color: var(--abi-coral); }
.abi-honne__title { font-family: var(--abi-serif); font-weight: 600; font-size: 1.2rem; letter-spacing: .1em; margin: 2px 0 0; color: var(--abi-ink); }
.abi-honne__body p { font-family: var(--abi-serif); font-weight: 500; font-size: .98rem; line-height: 2.15; letter-spacing: .03em; color: var(--abi-ink); margin: 0 0 1em; }
.abi-honne__sign { text-align: right; font-size: .8rem; color: var(--abi-ink-soft); letter-spacing: .06em; margin: 4px 0 0; }
.abi-honne__more { text-align: right; font-size: .8rem; margin: 8px 0 0; }
.abi-honne__more a { color: var(--abi-coral); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.abi-honne__more a svg { width: 13px; height: 13px; }
.abi-honne__more a:hover { text-decoration: underline; }
.abi-article-head__meta .abi-doclink { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 840px) { .abi-honne { padding: 24px 18px 18px; } .abi-honne__photo { width: 56px; height: 56px; } }

/* v4.1.3: 比較表の横スクロール（スマホ） */
.abi-tablewrap { overflow-x: auto; margin: 1.6em 0; -webkit-overflow-scrolling: touch; }
.abi-tablewrap table { min-width: 660px; margin: 0; }
.abi-tablewrap th { white-space: nowrap; }

/* v4.1.10: チャット未開封バッジ（赤い通知ドット） */
.abi-chat__badge { position: absolute; top: -3px; right: -2px; width: 13px; height: 13px; background: #e0442c; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.25); animation: abiBadgePulse 2.4s ease-in-out infinite; pointer-events: none; }
@keyframes abiBadgePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.25); } }
@media (prefers-reduced-motion: reduce) { .abi-chat__badge { animation: none; } }

/* v9.15: チャット表示中の背景オーバーレイ */
.abi-chat__backdrop { position: fixed; inset: 0; background: rgba(40, 45, 44, .48); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); z-index: 9000; opacity: 0; pointer-events: none; transition: opacity .3s; }
.abi-chat__backdrop.is-on { opacity: 1; pointer-events: auto; }

/* v9.13: 文書ページの見出し（.abi-section-title）を記事と同じEditorial様式に統一。
 * bodyにクラスが出力されない構成のため、クラス直指定＋!importantでSWELL既定を確実に上書きする */
h2.abi-section-title {
  border: 0 !important; border-bottom: 1px solid var(--abi-ink) !important;
  background: transparent !important; border-radius: 0 !important;
  font-family: var(--abi-serif) !important; font-weight: 600; letter-spacing: .07em;
  color: var(--abi-ink) !important; padding: 0 0 .5em !important; margin-top: 2.6em;
}
h2.abi-section-title::before { content: '' !important; display: block; width: 30px; height: 3px; background: var(--abi-sage); border-radius: 2px; margin-bottom: .55em; position: static !important; }
h2.abi-section-title::after { content: none !important; }

/* v9.8: ヘッダー上部バーのRSSアイコンを非表示（一般読者には不要） */
a.c-iconList__link[aria-label="rss"], li:has(> a.c-iconList__link[aria-label="rss"]) { display: none !important; }

/* v9.7: 入力欄の書体をサイトの明朝系に統一（ブラウザ既定フォント落ち対策） */
.abi-search input, .c-searchForm__s, .abi-chat__form input, .abi-chat__form textarea {
  font-family: var(--abi-serif); font-weight: 500; letter-spacing: .05em;
}
.abi-search input::placeholder, .c-searchForm__s::placeholder,
.abi-chat__form input::placeholder, .abi-chat__form textarea::placeholder {
  font-family: var(--abi-serif); font-weight: 500; color: #a9a294; letter-spacing: .08em; font-size: .93em; opacity: 1;
}

/* v9.6: タグライン「つくばの皮膚の相談室」の可視化（ヘッダー・ヒーロー・フッター） */
.c-headLogo__link { display: inline-flex !important; align-items: center; gap: 16px; }
/* ロゴ画像はJPワードマーク＋EN副題の2行構成のため、画像中央ではなくJP行に光学的に合わせて少し上げる */
.abi-tagline { font-family: var(--abi-serif); font-weight: 600; font-size: 12.5px; letter-spacing: .18em; color: var(--abi-sage-deep); padding-left: 16px; border-left: 1px solid var(--abi-line); white-space: nowrap; transform: translateY(-5px); }
@media (max-width: 840px) { .abi-tagline { display: none; } }
.abi-hero2__tagline { font-family: var(--abi-serif); font-weight: 600; font-size: 15px; letter-spacing: .3em; color: var(--abi-sage-deep); margin: 10px 0 8px; display: flex; align-items: center; gap: 12px; }
.abi-hero2__tagline::before { content: ""; width: 34px; height: 1px; background: var(--abi-sage-deep); opacity: .5; flex: none; }
.abi-footmap__tagline { font-family: var(--abi-serif); font-weight: 600; font-size: 15px; letter-spacing: .22em; color: var(--abi-sage-deep); margin: 0 0 6px; }

/* v6.1: 記事下のWPテーマ標準要素を整理（シェアボタン群・空の著者ボックス） */
.c-shareBtns, .l-articleBottom__section.-author { display: none; }
/* メタ行直後のTHE ANSWERは罫線を重ねない */
.abi-article-head + .abi-answer { border-top: none; padding-top: .2em; }

/* v6.2: ヘッダーロゴ（画像化） */
.c-headLogo img, .c-headLogo .custom-logo { max-height: 46px; width: auto; display: block; }
.c-headLogo { line-height: 1; }
@media (max-width: 840px) { .c-headLogo img, .c-headLogo .custom-logo { max-height: 34px; } }

/* ══ v7: SPメニュー（ドロワー）Editorial化 ══ */
.p-spMenu__inner { background: #FAF8F4 !important; width: min(84vw, 400px) !important; padding: 22px 26px 34px !important; box-shadow: -12px 0 40px rgba(42,46,45,.10); }
html[data-spmenu] .p-spMenu__inner { transition: transform .5s cubic-bezier(.22,1,.36,1) !important; }
.p-spMenu__overlay { background: rgba(42,46,45,.45) !important; }
.p-spMenu .c-widget__title.-spmenu { display: none; }
.p-spMenu__closeBtn .c-iconBtn { color: var(--abi-ink); }

.abi-spx-head { display: flex; align-items: center; gap: 10px; padding: 4px 0 16px; border-bottom: 1px solid var(--abi-ink); margin-bottom: 4px; }
.abi-spx-head img { display: block; }
.abi-spx-head .abi-en { color: var(--abi-sage-deep); letter-spacing: .26em; font-size: .66rem; }

.p-spMenu .c-spnav { margin: 0; }
.p-spMenu .c-spnav > li { border-bottom: 1px solid var(--abi-line); list-style: none; }
.p-spMenu .c-spnav > li > a {
  display: grid; grid-template-columns: 1fr 16px; align-items: center; row-gap: 1px;
  padding: 15px 2px 14px; color: var(--abi-ink); text-decoration: none;
  font-family: var(--abi-serif); font-weight: 600; font-size: 1.05rem; letter-spacing: .07em; line-height: 1.4;
}
.p-spMenu .c-spnav > li > a small.abi-en { grid-column: 1 / -1; font-size: .55rem; color: var(--abi-sage); letter-spacing: .2em; }
.p-spMenu .c-spnav > li > a::before, .p-spMenu .c-spnav > li > a::after { content: none !important; }
.p-spMenu .c-spnav > li > a .abi-spx__label { grid-row: 2; grid-column: 1; }
.p-spMenu .c-spnav > li > a svg { width: 15px; height: 15px; fill: none; stroke: var(--abi-ink-soft); stroke-width: 1.5; grid-row: 2; grid-column: 2; justify-self: end; align-self: center; transition: transform .25s; }
.p-spMenu .c-spnav > li > a:active svg, .p-spMenu .c-spnav > li > a:hover svg { transform: translateX(4px); stroke: var(--abi-sage-deep); }

.abi-spx { margin-top: 24px; }
.abi-spx__search input { width: 100%; }
.abi-spx__cta {
  display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 18px;
  padding: 14px 10px; background: var(--abi-ink); color: #fff !important; text-decoration: none;
  font-size: .9rem; letter-spacing: .1em; border-radius: 999px; transition: background-color .25s;
}
.abi-spx__cta svg { width: 14px; height: 14px; fill: none; stroke: #fff; stroke-width: 1.5; }
.abi-spx__cta:active, .abi-spx__cta:hover { background: var(--abi-sage-deep); }
.abi-spx__foot { margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--abi-line); display: flex; align-items: center; justify-content: space-between; }
.abi-spx__foot .abi-en { font-size: .56rem; color: var(--abi-sage); letter-spacing: .18em; }
.abi-spx__sns { display: flex; gap: 14px; }
.abi-spx__sns a { color: var(--abi-sage-deep); text-decoration: none; font-size: .78rem; letter-spacing: .08em; border-bottom: 1px solid var(--abi-line); }

/* 開いたときのステガー（reduced-motionでは即時表示） */
@media (prefers-reduced-motion: no-preference) {
  .p-spMenu .c-spnav > li, .abi-spx, .abi-spx-head {
    opacity: 0; transform: translateY(14px);
    transition: opacity .45s ease, transform .5s cubic-bezier(.22,1,.36,1);
  }
  .p-spMenu .c-spnav > li { transition-delay: calc(.1s + var(--i, 0) * .055s); }
  .abi-spx-head { transition-delay: .05s; }
  .abi-spx { transition-delay: .38s; }
  html[data-spmenu="opened"] .p-spMenu .c-spnav > li,
  html[data-spmenu="opened"] .abi-spx,
  html[data-spmenu="opened"] .abi-spx-head { opacity: 1; transform: none; }
}

/* ══ v8: タームアーカイブ見出しのEditorial化 ══ */
.p-termHead {
  border: none !important; background: transparent !important; padding: 0 !important;
  margin: 6px 0 4px; max-width: 720px;
  font-size: 1.02rem; line-height: 2.15; letter-spacing: .045em; color: var(--abi-ink-soft);
}
.abi-termmeta { margin: 2px 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--abi-line); }
.abi-termmeta .abi-en { color: var(--abi-sage); font-size: .6rem; letter-spacing: .22em; }
.abi-related-terms { margin-top: 20px; }

/* ══ v8: AIチャット「アビィ」 ══ */
.abi-chat-launcher {
  position: fixed; right: 22px; bottom: 22px; z-index: 9000;
  display: flex; align-items: center; gap: 8px;
  padding: 13px 20px 13px 16px; border: none; border-radius: 999px; cursor: pointer;
  background: var(--abi-ink); color: #fff; font-size: .82rem; letter-spacing: .12em;
  box-shadow: 0 8px 28px rgba(42,46,45,.25); transition: background-color .25s, transform .25s;
}
.abi-chat-launcher svg { width: 19px; height: 19px; }
.abi-chat-launcher:hover { background: var(--abi-sage-deep); transform: translateY(-2px); }
.abi-chat-launcher.is-hidden { display: none; }

.abi-chat {
  position: fixed; right: 22px; bottom: 22px; z-index: 9001;
  width: min(92vw, 380px); max-height: min(72vh, 620px);
  display: none; flex-direction: column;
  background: #FAF8F4; border: 1px solid var(--abi-line);
  box-shadow: 0 18px 60px rgba(42,46,45,.22);
  border-radius: 18px; overflow: hidden;
}
.abi-chat.is-open { display: flex; animation: abiChatIn .35s cubic-bezier(.22,1,.36,1); }
@keyframes abiChatIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .abi-chat.is-open { animation: none; } }

.abi-chat__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px 12px; border-bottom: 1px solid var(--abi-ink); }
.abi-chat__head .abi-en { color: var(--abi-sage); font-size: .58rem; letter-spacing: .22em; }
.abi-chat__head p { margin: 2px 0 0; font-family: var(--abi-serif); font-weight: 600; font-size: 1rem; letter-spacing: .08em; }
.abi-chat__close { border: none; background: none; font-size: 1.3rem; line-height: 1; cursor: pointer; color: var(--abi-ink-soft); padding: 4px 6px; }
.abi-chat__note { padding: 9px 18px; font-size: .68rem; line-height: 1.7; color: var(--abi-ink-soft); background: rgba(122,146,132,.08); }
.abi-chat__log { flex: 1; overflow-y: auto; padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; min-height: 220px; }
.abi-chat__msg { max-width: 88%; padding: 10px 14px; font-size: .86rem; line-height: 1.9; letter-spacing: .02em; }
.abi-chat__msg.-ai { align-self: flex-start; background: #fff; border: 1px solid var(--abi-line); color: var(--abi-ink); }
.abi-chat__msg.-me { align-self: flex-end; background: var(--abi-sage-deep); color: #fff; }
.abi-chat__arts { margin-top: 10px; display: flex; flex-direction: column; }
.abi-chat__arts a {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 9px 2px; border-top: 1px solid var(--abi-line);
  color: var(--abi-sage-deep); font-size: .8rem; line-height: 1.5; text-decoration: none;
}
.abi-chat__arts a svg { width: 13px; height: 13px; flex: none; }
.abi-chat__dots { display: inline-flex; gap: 4px; padding: 4px 2px; }
.abi-chat__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--abi-sage); animation: abiDot 1s infinite; }
.abi-chat__dots i:nth-child(2) { animation-delay: .16s; }
.abi-chat__dots i:nth-child(3) { animation-delay: .32s; }
@keyframes abiDot { 0%, 60%, 100% { opacity: .3; transform: none; } 30% { opacity: 1; transform: translateY(-3px); } }
.abi-chat__form { display: flex; border-top: 1px solid var(--abi-line); background: #fff; }
.abi-chat__form input { flex: 1; border: none; padding: 13px 16px; font-size: 16px; background: transparent; outline: none; min-width: 0; }
.abi-chat__form button { border: none; background: var(--abi-sage-deep); margin: 7px; border-radius: 999px; width: 42px; height: 42px; flex: none; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #fff; }
.abi-chat__form button svg { width: 18px; height: 18px; }

@media (max-width: 840px) {
  .abi-chat { top: 0; right: 0; bottom: 0; left: 0; width: 100vw; height: 100dvh; max-height: none; border: none; border-radius: 0; }
  .abi-chat__form { padding-bottom: env(safe-area-inset-bottom); }
  .abi-chat__log { min-height: 0; }
  .abi-chat-launcher { right: 16px; bottom: 16px; padding: 12px 16px; }
  html.abi-chat-open, html.abi-chat-open body { overflow: hidden; }
}

/* v8.1: ページトップ等の固定ボタン群をチャットランチャーの上へ退避（重なり解消） */
.p-fixBtnWrap { bottom: 92px !important; right: 20px !important; }
@media (max-width: 840px) { .p-fixBtnWrap { bottom: 86px !important; right: 14px !important; } }
/* チャット展開中は隠す */
html.abi-chat-open .p-fixBtnWrap { display: none; }

/* ══ v9: 検索モーダルEditorial化・アビィ鳥 ══ */
.p-searchModal .c-overlay { background: rgba(42,46,45,.55) !important; }
.p-searchModal__inner { background: #FAF8F4 !important; max-width: 560px !important; width: min(92vw,560px); padding: 34px 34px 28px !important; border: none !important; box-shadow: 0 18px 60px rgba(42,46,45,.25); }
.abi-smx-head { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--abi-ink); }
.abi-smx-head .abi-en { color: var(--abi-sage); font-size: .6rem; letter-spacing: .24em; }
.abi-smx-head p { margin: 4px 0 0; font-family: var(--abi-serif); font-weight: 600; font-size: 1.15rem; letter-spacing: .06em; }
.p-searchModal .c-searchForm, .p-searchModal form { margin: 0; }
.p-searchModal input[type="search"], .p-searchModal .c-searchForm__input {
  border: 1px solid var(--abi-ink) !important; border-radius: 999px !important;
  background: #fff !important; padding: 13px 20px !important; font-size: 16px !important;
}
.p-searchModal button[type="submit"], .p-searchModal .c-searchForm__submit { background: var(--abi-ink) !important; border-radius: 999px !important; color:#fff !important; }
.abi-smx-hot { margin-top: 16px; font-size: .82rem; line-height: 2.1; }
.abi-smx-hot__label { color: var(--abi-ink-soft); margin-right: .9em; }
.abi-smx-hot a { display: inline-block; margin: 0 .9em .1em 0; color: var(--abi-sage-deep); text-decoration: none; border-bottom: 1px solid var(--abi-line); }

.p-searchModal .c-modal__close { color: var(--abi-ink-soft) !important; }

.abi-bird { width: 30px; height: 30px; flex: none; }
.abi-chat-launcher .abi-bird { width: 26px; height: 26px; }
.abi-chat-launcher { background: #FAF8F4; color: var(--abi-ink); border: 1px solid var(--abi-ink); }
.abi-chat-launcher:hover { background: #fff; color: var(--abi-ink); }
.abi-chat__who { display: flex; align-items: center; gap: 10px; }

/* v4.1.11: サポート（お問い合わせ）/ AIチャット の2ボタン構成 */
.abi-chat-launcher { background: var(--abi-sage-deep); color: #fff; border: 1px solid var(--abi-sage-deep); }
.abi-chat-launcher:hover { background: #0b5a3c; color: #fff; }
.abi-support-btn { position: fixed; bottom: 22px; right: 190px; z-index: 8999; display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--abi-ink); border: 1px solid var(--abi-line); border-radius: 999px; padding: 12px 18px; font-size: .8rem; letter-spacing: .08em; text-decoration: none; box-shadow: 0 6px 24px rgba(42, 46, 45, .16); transition: transform .25s, border-color .25s, color .25s; }
.abi-support-btn:hover { transform: translateY(-2px); border-color: var(--abi-sage); color: var(--abi-sage-deep); }
.abi-support-q { width: 19px; height: 19px; border-radius: 50%; background: var(--abi-sage-deep); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex: none; }
@media (max-width: 840px) { .abi-support-btn { bottom: 16px; padding: 11px 12px; } .abi-support-lbl { display: none; } }

/* v4.1.12: ボタン高さ統一＋お問い合わせミニパネル */
.abi-chat-launcher, .abi-support-btn { height: 48px; box-sizing: border-box; padding-top: 0; padding-bottom: 0; cursor: pointer; }
.abi-support-btn { font-family: inherit; }
.abi-support-panel { position: fixed; right: 22px; bottom: 84px; z-index: 9002; width: min(88vw, 340px); background: #FAF8F4; border: 1px solid var(--abi-line); border-radius: 18px; box-shadow: 0 18px 60px rgba(42, 46, 45, .22); padding: 20px 20px 16px; display: none; }
.abi-support-panel.is-open { display: block; animation: abiChatIn .3s cubic-bezier(.22, 1, .36, 1); }
.abi-support-panel__head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 10px; }
.abi-support-panel__ttl { font-family: var(--abi-serif); font-weight: 600; font-size: 1.05rem; letter-spacing: .08em; margin: 0; color: var(--abi-ink); }
.abi-support-panel__sub { font-size: .74rem; color: var(--abi-ink-soft); margin: 3px 0 0; letter-spacing: .04em; }
.abi-support-panel__close { background: none; border: none; cursor: pointer; font-size: 15px; color: var(--abi-ink-soft); padding: 4px; }
.abi-support-panel__txt { font-size: .85rem; line-height: 1.9; color: var(--abi-ink); margin: 0 0 14px; }
.abi-support-panel__cta { display: block; text-align: center; background: var(--abi-sage-deep); color: #fff; text-decoration: none; border-radius: 999px; padding: 13px 0; font-size: .9rem; letter-spacing: .1em; transition: background-color .25s; }
.abi-support-panel__cta:hover { background: #0b5a3c; color: #fff; }
.abi-support-panel__note { font-size: .7rem; color: var(--abi-ink-soft); line-height: 1.7; margin: 10px 0 12px; }
.abi-support-panel__links { border-top: 1px solid var(--abi-line); }
.abi-support-panel__links a { display: flex; justify-content: space-between; align-items: center; padding: 11px 2px; font-size: .84rem; color: var(--abi-ink); text-decoration: none; border-bottom: 1px solid var(--abi-line); }
.abi-support-panel__links a::after { content: "→"; color: var(--abi-sage); }
.abi-support-panel__links a:hover { color: var(--abi-sage-deep); }
@media (max-width: 840px) { .abi-support-panel { right: 12px; left: 12px; width: auto; bottom: 76px; } }

/* ── 開業お知らせ登録帯（TOP・2026-09-05 高級感リデザイン） ── */
.abi-notifyband { background: #0f6b47; padding: 72px 24px; }
.abi-notify { max-width: 620px; margin: 0 auto; text-align: center; border: 1px solid rgba(255,255,255,.28); outline: 1px solid rgba(255,255,255,.10); outline-offset: 5px; padding: 52px 36px 44px; }
.abi-notify__label { display: inline-flex; align-items: center; gap: 14px; color: #a2ceb8; letter-spacing: .30em; font-size: 11px; }
.abi-notify__label::before, .abi-notify__label::after { content: ""; display: block; width: 34px; height: 1px; background: rgba(255,255,255,.35); }
.abi-notify__title { color: #fff; font-family: "Shippori Mincho B1","Yu Mincho","Hiragino Mincho ProN",serif; font-size: 26px; letter-spacing: .10em; margin: 18px 0 14px; font-weight: 600; }
.abi-notify__lead { color: #cfe3d8; font-size: 13px; line-height: 2.0; margin: 0 auto; max-width: 30em; }
.abi-notify__btn { display: inline-block; margin-top: 28px; background: transparent; border: 1px solid rgba(255,255,255,.6); color: #fff !important; text-decoration: none; padding: 15px 64px; font-family: "Shippori Mincho B1","Yu Mincho","Hiragino Mincho ProN",serif; font-size: 14px; letter-spacing: .28em; text-indent: .28em; transition: background .25s, color .25s; }
.abi-notify__btn:hover { background: #fff; color: #0f6b47 !important; }
.abi-notify__note { color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: .08em; margin: 14px 0 0; }
.abi-nw { white-space: nowrap; }
.abi-notify__lead .abi-ib { display: inline-block; }
.abi-notify__note::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #c9714f; margin: 0 8px 1px 0; vertical-align: middle; }
@media (max-width: 840px) {
  .abi-notifyband { padding: 48px 18px; }
  .abi-notify { padding: 38px 22px 34px; }
  .abi-notify__title { font-size: 21px; }
  .abi-notify__btn { display: block; padding: 15px 0; }
}

/* ── 院長の想いエッセイ（/clinic/vision/・v2026-10-06） ── */
.abi-essay { max-width: 680px; margin: 0 auto; font-size: 1.05rem; line-height: 2.15; }
.abi-essay p { margin: 0 0 1.7em; }
.abi-essay__intro { font-size: .88rem; color: var(--abi-text-soft); border-left: 3px solid var(--abi-line); padding: 2px 0 2px 14px; margin-bottom: 3em; line-height: 1.9; }
.abi-essay__open { margin: 2.2em 0 2.6em; }
.abi-essay__open p { font-size: clamp(1.25rem, 3.6vw, 1.5rem); font-weight: 700; line-height: 2; color: var(--abi-sage-deep); margin: 0; }
.abi-essay h2 { margin: 3.2em 0 1.4em; padding: 0 0 .5em; font-size: 1.18rem; color: var(--abi-sage-deep); border-bottom: 2px solid var(--abi-sage-soft); border-left: none; background: none; }
.abi-essay__pull { margin: 2.4em 0; padding: 1.4em 1.5em; background: var(--abi-ivory); border: none; border-radius: 12px; text-align: center; }
.abi-essay__pull p { font-size: 1.12rem; font-weight: 700; color: var(--abi-sage-deep); margin: 0; line-height: 2; }
.abi-essay__close { margin: 3em 0 2.5em; text-align: center; }
.abi-essay__close p { font-size: clamp(1.3rem, 4vw, 1.6rem); font-weight: 700; line-height: 2; color: var(--abi-sage-deep); margin: 0 0 .6em; }
.abi-essay__close .abi-essay__close-sub { font-size: 1.05rem; color: var(--abi-text); font-weight: 600; }
.abi-essay__sign { text-align: right; margin: 2.5em 0 0; line-height: 1.9; }
.abi-essay__sign strong { font-size: 1.15rem; display: block; }
.abi-essay__sign span { font-size: .85rem; color: var(--abi-text-soft); display: block; }
.abi-essay__profile { display: flex; gap: 18px; align-items: flex-start; background: var(--abi-ivory); border: 1px solid var(--abi-line); border-radius: var(--abi-radius); padding: 20px 22px; margin: 3em 0 2em; }
.abi-essay__profile img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; flex: none; }
.abi-essay__profile p { font-size: .9rem; line-height: 1.95; margin: 0; color: var(--abi-text); }
.abi-essay__profile .abi-essay__profile-name { font-weight: 700; margin-bottom: .3em; font-size: .98rem; }

/* ── TOP: 院長の想いバンド ── */
.abi-vision-band { display: flex; align-items: center; gap: 20px; background: linear-gradient(135deg, var(--abi-sage-soft), var(--abi-ivory)); border: 1px solid var(--abi-line); border-radius: 16px; padding: 22px 26px; margin: 2em 0; text-decoration: none; color: var(--abi-text); transition: box-shadow .25s, transform .25s; }
.abi-vision-band:hover { box-shadow: var(--abi-shadow); transform: translateY(-2px); }
.abi-vision-band img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; }
.abi-vision-band__label { font-size: .78rem; color: var(--abi-sage-deep); letter-spacing: .08em; display: block; margin-bottom: .3em; }
.abi-vision-band__quote { font-size: 1.08rem; font-weight: 700; line-height: 1.8; color: var(--abi-sage-deep); display: block; }
.abi-vision-band__more { margin-left: auto; flex: none; font-size: .85rem; color: var(--abi-sage-deep); display: inline-flex; align-items: center; gap: 4px; }
.abi-vision-band__more svg { width: 14px; height: 14px; }
@media (max-width: 600px) {
  .abi-vision-band { flex-wrap: wrap; padding: 18px; gap: 14px; }
  .abi-vision-band__more { margin-left: 0; width: 100%; justify-content: flex-end; }
  .abi-essay { font-size: 1rem; }
}
