@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ（認定ホメオパス・ホメオパシーセンター検索）
    Version: 1.1.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================================
   認定ホメオパス／ホメオパシーセンター検索  —  デザイン定義
   すべて .hc 名前空間に閉じる（SWELL 本体と衝突させない）
   ========================================================================== */

.hc {
    --hc-ink:      #22282b;
    --hc-ink-soft: #55606a;
    --hc-muted:    #7c868e;
    --hc-line:     #e4e1d9;
    --hc-line-2:   #f0eee8;
    --hc-bg:       #f7f5f0;
    --hc-card:     #ffffff;
    --hc-gold:     #b8912e;

    /* セクション固有色（各ページで上書き） */
    --hc-key:      #1d5c56;
    --hc-key-d:    #12403c;
    --hc-key-l:    #e8f1ef;

    color: var(--hc-ink);
    line-height: 1.85;
    font-feature-settings: "palt" 1;
}

.hc *,
.hc *::before,
.hc *::after { box-sizing: border-box; }

.hc a { text-decoration: none; }
.hc[id] { scroll-margin-top: calc(var(--swl-offset_y, 0px) + 1em); }

/* SWELL の本文既定装飾（見出しの背景・リストのインデント）を .hc 内では無効化する。
   打ち消しの詳細度が (0,1,1) なので、上書きしたいコンポーネント側は .hc を前置する。 */
.hc h2,
.hc h3,
.hc h4 {
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    color: inherit;
    font-size: inherit;
    font-weight: 700;
    line-height: 1.5;
}
.hc h2::before, .hc h2::after,
.hc h3::before, .hc h3::after,
.hc h4::before, .hc h4::after { content: none; }
.hc ul,
.hc ol { margin: 0; padding: 0; list-style: none; }


/* ページ別キーカラー ------------------------------------------------------ */
.hc--homoeopath { --hc-key: #1d5c56; --hc-key-d: #12403c; --hc-key-l: #e7f1ef; }
.hc--animal     { --hc-key: #4f7a35; --hc-key-d: #375524; --hc-key-l: #edf3e6; }
.hc--center     { --hc-key: #1f4e79; --hc-key-d: #143654; --hc-key-l: #e8eff6; }
.hc--home       { --hc-key: #1d5c56; --hc-key-d: #12403c; --hc-key-l: #e7f1ef; }

/* ヒーロー ---------------------------------------------------------------- */
.hc-hero {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    padding: 3.2em 2em 2.6em;
    margin: 0 0 2.4em;
    color: #fff;
    background:
        radial-gradient(120% 140% at 88% 8%, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 55%),
        linear-gradient(135deg, var(--hc-key) 0%, var(--hc-key-d) 100%);
}
.hc-hero::after {
    content: "";
    position: absolute;
    right: -70px; bottom: -110px;
    width: 300px; height: 300px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    pointer-events: none;
}
.hc-hero__eyebrow {
    display: inline-block;
    font-size: .78em;
    letter-spacing: .16em;
    padding: .32em 1em;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 999px;
    margin: 0 0 1.1em;
}
.hc-hero__title {
    font-size: clamp(1.7em, 4.4vw, 2.5em);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: .02em;
    margin: 0 0 .5em;
    color: #fff;
}
.hc-hero__lead {
    margin: 0;
    max-width: 46em;
    font-size: 1.02em;
    color: rgba(255,255,255,.92);
}
.hc-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6em 2.6em;
    margin: 1.9em 0 0;
    padding: 1.3em 0 0;
    border-top: 1px solid rgba(255,255,255,.22);
}
.hc-stat__num {
    display: block;
    font-size: 1.9em;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .01em;
}
.hc-stat__num small { font-size: .5em; font-weight: 600; margin-left: .25em; }
.hc-stat__label {
    display: block;
    font-size: .82em;
    letter-spacing: .08em;
    color: rgba(255,255,255,.82);
    margin-top: .35em;
}

/* ポータル（トップページのカード） ---------------------------------------- */
.hc-portal {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.4em;
    margin: 0 0 3em;
}
.hc-pcard {
    display: flex;
    flex-direction: column;
    position: relative;
    padding: 1.9em 1.7em 1.6em;
    background: var(--hc-card);
    border: 1px solid var(--hc-line);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(30,40,50,.04);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hc-pcard::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%; height: 4px;
    border-radius: 12px 12px 0 0;
    background: var(--hc-pc, #1d5c56);
}
.hc-pcard:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(30,45,60,.10);
    border-color: var(--hc-pc, #1d5c56);
}
.hc-pcard__n {
    font-size: .72em;
    font-weight: 700;
    letter-spacing: .18em;
    color: var(--hc-pc, #1d5c56);
    margin: 0 0 .7em;
}
.hc .hc-pcard__t {
    font-size: 1.28em;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 .5em;
    color: var(--hc-ink);
}
.hc-pcard__d {
    font-size: .93em;
    color: var(--hc-ink-soft);
    margin: 0 0 1.3em;
    flex: 1;
}
.hc-pcard__meta {
    font-size: .82em;
    color: var(--hc-muted);
    margin: 0 0 1.1em;
    padding-top: .9em;
    border-top: 1px dashed var(--hc-line);
}
.hc-pcard__meta b {
    font-size: 1.5em;
    color: var(--hc-pc, #1d5c56);
    margin-right: .2em;
}
.hc-pcard__go {
    align-self: flex-start;
    font-size: .92em;
    font-weight: 700;
    color: var(--hc-pc, #1d5c56);
}
.hc-pcard__go::after { content: " →"; }

/* 本文ブロック ------------------------------------------------------------ */
.hc-section { margin: 0 0 2.6em; }
.hc .hc-h2 {
    font-size: 1.3em;
    font-weight: 700;
    letter-spacing: .04em;
    margin: 0 0 1em;
    padding: 0 0 .55em;
    border-bottom: 2px solid var(--hc-key);
    color: var(--hc-ink);
}
.hc-lead { font-size: 1em; color: var(--hc-ink-soft); margin: 0 0 1.4em; }

.hc-note {
    display: flex;
    gap: .8em;
    padding: 1.1em 1.3em;
    background: var(--hc-key-l);
    border-left: 3px solid var(--hc-key);
    border-radius: 0 8px 8px 0;
    font-size: .92em;
    color: var(--hc-ink-soft);
    margin: 0 0 2em;
}
.hc-note b { color: var(--hc-key-d); }
.hc-note a { color: var(--hc-key-d); font-weight: 700; text-decoration: underline; }

/* 検索ツールバー（sticky） ------------------------------------------------ */
.hc-toolbar {
    position: sticky;
    /* SWELL の追従ヘッダー高（--swl-offset_y）の下に貼り付ける */
    top: var(--swl-offset_y, 0px);
    z-index: 30;
    padding: .9em 0 .8em;
    margin: 0 0 1.4em;
    /* スクロール中の再描画が乱れる環境があるため半透明ぼかしは使わない */
    background: #f7f5f0;
    box-shadow: 0 6px 10px -8px rgba(30,45,60,.28);
    border-bottom: 1px solid var(--hc-line);
}
.hc-search { position: relative; }
.hc-search__input {
    width: 100%;
    padding: .82em 3em .82em 2.9em;
    font-size: 1em;
    line-height: 1.4;
    color: var(--hc-ink);
    background: #fff;
    border: 1.5px solid var(--hc-line);
    border-radius: 999px;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
    -webkit-appearance: none;
}
.hc-search__input::placeholder { color: #a8b0b6; }
.hc-search__input:focus {
    border-color: var(--hc-key);
    box-shadow: 0 0 0 3px var(--hc-key-l);
}
.hc-search__icon {
    position: absolute;
    left: 1.05em; top: 50%;
    transform: translateY(-50%);
    width: 1.05em; height: 1.05em;
    stroke: var(--hc-muted);
    fill: none;
    stroke-width: 2;
    pointer-events: none;
}
.hc-search__clear {
    position: absolute;
    right: .5em; top: 50%;
    transform: translateY(-50%);
    width: 2em; height: 2em;
    border: 0;
    border-radius: 50%;
    background: #eceae4;
    color: var(--hc-ink-soft);
    font-size: 1em;
    line-height: 1;
    cursor: pointer;
    display: none;
}
.hc-search__clear:hover { background: #e0ddd5; }
.hc-search.is-filled .hc-search__clear { display: block; }

.hc-count {
    margin: .75em .2em 0;
    font-size: .86em;
    color: var(--hc-muted);
}
.hc-count b { color: var(--hc-key-d); font-size: 1.25em; margin: 0 .12em; }

/* インデックス（50音・地方チップ） ---------------------------------------- */
.hc .hc-index {
    display: flex;
    flex-wrap: wrap;
    gap: .45em;
    margin: 0 0 2em;
    padding: 0;
    list-style: none;
}
.hc .hc-index li { margin: 0; }
.hc .hc-index a {
    display: block;
    padding: .42em 1em;
    font-size: .9em;
    font-weight: 600;
    color: var(--hc-key-d);
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 999px;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.hc .hc-index a:hover {
    background: var(--hc-key);
    border-color: var(--hc-key);
    color: #fff;
}

/* グループ（行／地域／地方） ---------------------------------------------- */
.hc-group {
    scroll-margin-top: calc(var(--swl-offset_y, 0px) + 11em);
    margin: 0 0 1.9em;
    background: var(--hc-card);
    border: 1px solid var(--hc-line);
    border-radius: 12px;
    overflow: hidden;
}
.hc-group__head {
    display: flex;
    align-items: baseline;
    gap: .8em;
    padding: .85em 1.3em;
    background: var(--hc-key-l);
    border-bottom: 1px solid var(--hc-line);
}
.hc .hc-group__title {
    font-size: 1.06em;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--hc-key-d);
    margin: 0;
}
.hc-group__count {
    font-size: .78em;
    color: var(--hc-muted);
    margin-left: auto;
}
.hc-group__body { padding: 1.15em 1.3em 1.35em; }

/* かな小見出し */
.hc .hc-kana {
    display: flex;
    align-items: center;
    gap: .7em;
    margin: 0 0 .7em;
    font-size: .88em;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--hc-key);
}

.hc .hc-kana::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--hc-line-2);
}

/* 名前・県名チップ -------------------------------------------------------- */
.hc-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: .5em .6em;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hc-list--wide { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.hc-list li { margin: 0; }

.hc-item {
    display: flex;
    align-items: center;
    gap: .55em;
    padding: .52em .85em;
    font-size: .95em;
    color: var(--hc-ink);
    background: #fff;
    border: 1px solid var(--hc-line-2);
    border-radius: 8px;
    transition: background .14s ease, border-color .14s ease, color .14s ease, transform .14s ease;
}
.hc-item:hover {
    background: var(--hc-key-l);
    border-color: var(--hc-key);
    color: var(--hc-key-d);
    transform: translateX(2px);
}
.hc-item::before {
    content: "";
    flex: none;
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--hc-key);
    opacity: .5;
}
.hc-item--none {
    color: var(--hc-muted);
    background: #fafafa;
    border-style: dashed;
    cursor: default;
}
.hc-item--none:hover {
    background: #fafafa;
    border-color: var(--hc-line);
    color: var(--hc-muted);
    transform: none;
}
.hc-item--none::before { background: #c9cdd1; }
.hc-item--chair {
    background: linear-gradient(135deg, var(--hc-key) 0%, var(--hc-key-d) 100%);
    border-color: var(--hc-key-d);
    color: #fff;
    font-weight: 700;
}
.hc-item--chair::before { background: var(--hc-gold); opacity: 1; }
.hc-item--chair:hover { color: #fff; transform: translateX(2px); }

.hc-item__badge {
    margin-left: auto;
    font-size: .72em;
    font-weight: 700;
    letter-spacing: .06em;
    padding: .1em .55em;
    border-radius: 999px;
    background: rgba(255,255,255,.22);
}

/* 検索ヒット時のハイライト */
.hc-item mark {
    background: #fff2c2;
    color: inherit;
    padding: 0 .1em;
    border-radius: 2px;
}

/* 空状態 */
.hc-empty {
    display: none;
    padding: 3em 1em;
    text-align: center;
    color: var(--hc-muted);
    background: #fff;
    border: 1px dashed var(--hc-line);
    border-radius: 12px;
}
.hc.is-empty .hc-empty { display: block; }
.hc-group[hidden],
.hc-sub[hidden],
.hc-list li[hidden] { display: none !important; }

.hc-sub { margin: 0 0 1.25em; }
.hc-sub:last-child { margin-bottom: 0; }

/* ページ末尾のナビ -------------------------------------------------------- */
.hc-foot {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 1em;
    margin: 3em 0 0;
    padding: 1.8em 0 0;
    border-top: 1px solid var(--hc-line);
}
.hc-foot a {
    display: block;
    padding: 1.1em 1.3em;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
    font-weight: 700;
    color: var(--hc-ink);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.hc-foot a:hover {
    border-color: var(--hc-key);
    box-shadow: 0 6px 18px rgba(30,45,60,.08);
}
.hc-foot span {
    display: block;
    font-size: .76em;
    font-weight: 600;
    letter-spacing: .12em;
    color: var(--hc-muted);
    margin-bottom: .3em;
}

/* ページトップへ */
.hc-totop {
    display: inline-block;
    margin: .9em 0 0;
    font-size: .82em;
    color: var(--hc-muted);
}
.hc-totop:hover { color: var(--hc-key); }

/* スマホ ------------------------------------------------------------------ */
@media (max-width: 600px) {
    .hc-hero { padding: 2.3em 1.4em 2em; border-radius: 10px; }
    .hc-hero__stats { gap: 1.1em 1.8em; }
    .hc-stat__num { font-size: 1.55em; }
    .hc-group__body { padding: 1em 1em 1.15em; }
    .hc-group__head { padding: .75em 1em; }
    .hc-list { grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)); gap: .4em .45em; }
    .hc-item { font-size: .88em; padding: .5em .7em; }
    .hc .hc-index a { padding: .38em .85em; font-size: .85em; }
}

/* 印刷 -------------------------------------------------------------------- */
@media print {
    .hc-toolbar, .hc-index, .hc-foot, .hc-totop { display: none !important; }
    .hc-hero { color: #000; background: none; border: 1px solid #999; }
    .hc-hero__title { color: #000; }
    .hc-group { break-inside: avoid; }
}

/* ==========================================================================
   詳細ページ（ホメオパス／センター／都道府県）
   ========================================================================== */

/* 名刺ブロック（ページタイトルの直下に置く補助情報） -------------------- */
.hc-idcard {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .6em 1.1em;
    padding: 1.15em 1.4em;
    margin: 0 0 1.9em;
    background: var(--hc-key-l);
    border-left: 3px solid var(--hc-key);
    border-radius: 0 10px 10px 0;
}
.hc-idcard__eyebrow {
    flex: none;
    margin: 0;
    font-size: .74em;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--hc-key-d);
    padding: .28em .9em;
    background: #fff;
    border: 1px solid var(--hc-key);
    border-radius: 999px;
}
.hc-idcard__yomi {
    margin: 0;
    font-size: 1.02em;
    color: var(--hc-key-d);
    letter-spacing: .04em;
}
.hc-idcard__yomi span {
    display: inline-block;
    margin-left: .8em;
    font-size: .8em;
    letter-spacing: .08em;
    color: var(--hc-muted);
}
.hc-idcard__quals {
    flex: 1 1 100%;
    display: flex;
    flex-wrap: wrap;
    gap: .4em .5em;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hc-idcard__quals li {
    margin: 0;
    padding: .26em .8em;
    font-size: .84em;
    font-weight: 600;
    color: var(--hc-key-d);
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 6px;
}
.hc-idcard__tags { margin: 0; }

.hc .hc-tag,
a.hc-tag {
    display: inline-block;
    padding: .26em .95em;
    font-size: .86em;
    font-weight: 700;
    color: #fff;
    background: var(--hc-key);
    border-radius: 999px;
}
.hc .hc-tag:hover { background: var(--hc-key-d); }

/* 本文セクション ---------------------------------------------------------- */
.hc-block { margin: 0 0 1.9em; }
.hc .hc-block__ttl {
    font-size: 1.02em;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--hc-key-d);
    margin: 0 0 .7em;
    padding: 0 0 .45em;
    border-bottom: 1px solid var(--hc-line);
}
.hc-block__body { font-size: .97em; }
.hc-block__body p { margin: 0 0 .7em; }
.hc-block__body p:last-child { margin-bottom: 0; }
.hc-block__body ul { margin: 0; padding: 0; list-style: none; }
.hc-block__body ul li {
    position: relative;
    margin: 0 0 .35em;
    padding-left: 1.1em;
}
.hc-block__body ul li::before {
    content: "";
    position: absolute;
    left: .1em; top: .72em;
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--hc-key);
    opacity: .55;
}
.hc-block__body a { color: var(--hc-key-d); text-decoration: underline; }
.hc-block__body a:hover { color: var(--hc-key); }

/* 表 --------------------------------------------------------------------- */
.hc-tablewrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 0 1.9em;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
    background: #fff;
}
.hc-def,
.hc-sched {
    width: 100%;
    border-collapse: collapse;
    font-size: .94em;
}
.hc-def { table-layout: fixed; }
.hc-def th,
.hc-def td {
    padding: .78em 1.1em;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--hc-line-2);
}
.hc-def tr:last-child th,
.hc-def tr:last-child td { border-bottom: 0; }
.hc-def th {
    width: 12em;
    white-space: nowrap;
    font-weight: 700;
    color: var(--hc-key-d);
    background: var(--hc-key-l);
}
.hc-def td a { color: var(--hc-key-d); text-decoration: underline; word-break: break-all; }

/* 営業日・時間マトリクス */
.hc-sched-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.hc-sched { min-width: 460px; font-size: .88em; }
/* SWELL の th/td 左寄せを上書きして、曜日・人/動物・○を中央に揃える */
.hc .hc-sched th,
.hc .hc-sched td {
    text-align: center;
    vertical-align: middle;
}
.hc-def td.hc-def__wide { padding: .6em .7em; }
.hc-sched th,
.hc-sched td {
    padding: .5em .3em;
    border: 1px solid var(--hc-line-2);
    font-weight: 400;
}
.hc-sched thead th {
    background: var(--hc-key-l);
    color: var(--hc-key-d);
    font-weight: 700;
}
.hc-sched .hc-sched__sub {
    background: #fafaf7;
    font-size: .78em;
    color: var(--hc-muted);
}
.hc-sched tbody th {
    background: var(--hc-key-l);
    color: var(--hc-key-d);
    font-weight: 700;
    white-space: nowrap;
}
.hc-sched td.on {
    background: var(--hc-key-l);
    color: var(--hc-key-d);
    font-weight: 700;
}

/* 相談方法チップ ---------------------------------------------------------- */
.hc .hc-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .45em .5em;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hc .hc-chips li {
    margin: 0;
    padding: .35em 1em;
    font-size: .9em;
    font-weight: 600;
    color: var(--hc-key-d);
    background: var(--hc-key-l);
    border: 1px solid var(--hc-key);
    border-radius: 999px;
}

/* センターカード（都道府県ページ） ---------------------------------------- */
.hc-card.hc-item {
    display: block;
    padding: .95em 1.15em;
    margin: 0 0 .6em;
    background: #fff;
    border: 1px solid var(--hc-line-2);
    border-radius: 9px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.hc-card.hc-item::before { content: none; }
.hc-card.hc-item:hover {
    background: #fff;
    transform: none;
    border-color: var(--hc-key);
    box-shadow: 0 5px 16px rgba(30,45,60,.07);
}
.hc-card__name {
    font-size: 1.02em;
    font-weight: 700;
    color: var(--hc-key-d);
}
a.hc-card__name:hover { text-decoration: underline; }
.hc-ico {
    display: inline-block;
    margin-left: .5em;
    padding: .1em .6em;
    font-size: .7em;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--hc-key-d);
    background: var(--hc-key-l);
    border-radius: 4px;
    vertical-align: middle;
}
.hc-card__ppl { margin: .4em 0 0; font-size: .9em; }
.hc-card__ppl a { color: var(--hc-ink); text-decoration: underline; }
.hc-card__ppl a:hover { color: var(--hc-key); }
.hc-card__ppl a + a,
.hc-card__ppl a + span,
.hc-card__ppl span + a,
.hc-card__ppl span + span { margin-left: .8em; }
.hc-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .2em 1.2em;
    margin: .45em 0 0;
    font-size: .86em;
    color: var(--hc-muted);
}
.hc-card__meta a { color: var(--hc-muted); text-decoration: underline; }
.hc-card__tel { white-space: nowrap; }

.hc-inline-note {
    margin: .7em 0 0;
    padding: .7em 1em;
    font-size: .88em;
    color: var(--hc-ink-soft);
    background: #fbf9f4;
    border: 1px dashed var(--hc-line);
    border-radius: 8px;
}

@media (max-width: 600px) {
    .hc-idcard { padding: 1em 1.1em; }
    .hc-def th { width: 6.8em; white-space: normal; padding: .6em .7em; }
    .hc-def td { padding: .6em .7em; }
    .hc-card__meta { gap: .15em .8em; }
}

/* 写真（元サイトから移設した人物写真・センター写真） ---------------------- */
.hc-head {
    display: flex;
    align-items: flex-start;
    gap: 1.2em;
    margin: 0 0 1.9em;
}
.hc-head .hc-idcard { flex: 1 1 auto; margin: 0; }

.hc-portrait {
    flex: none;
    width: 158px;
    margin: 0;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(30,45,60,.06);
}
.hc-portrait__img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 5px;
}

.hc-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: .9em;
    margin: 0 0 1.9em;
}
.hc-shot {
    margin: 0;
    padding: 7px;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(30,45,60,.06);
}
.hc-shot img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 240px;
    height: auto;
    border-radius: 5px;
}

@media (max-width: 600px) {
    .hc-head { display: block; }
    .hc-portrait {
        width: 132px;
        margin: 0 0 1em;
    }
    .hc-shot img { max-height: 190px; }
}

/* 資格・認定番号のチップ（センター詳細の「認定番号」欄） ------------------ */
.hc .hc-quals {
    display: flex;
    flex-wrap: wrap;
    gap: .4em .5em;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hc .hc-quals li {
    margin: 0;
    padding: .22em .75em;
    font-size: .88em;
    font-weight: 600;
    color: var(--hc-key-d);
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 6px;
}

/* センターカードの担当者（センター長／所属ホメオパス） -------------------- */
.hc-card__person { display: inline-block; margin: 0 1.1em .15em 0; }
.hc-role {
    display: inline-block;
    margin-right: .4em;
    padding: .05em .5em;
    font-size: .74em;
    font-weight: 700;
    color: var(--hc-key-d);
    background: var(--hc-key-l);
    border-radius: 3px;
    vertical-align: .1em;
}

/* センター詳細：氏名の横に認定番号を並べる（センター長／所属ホメオパス欄） */
.hc-person {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45em 1.2em;
}
.hc-person__name { flex: 0 0 8.5em; }
.hc-person .hc-quals { flex: 1 1 14em; }
@media (max-width: 600px) {
    .hc-person__name { flex-basis: 100%; }
}

/* ==========================================================================
   記事（ブロック）版 ── 2026-09 固定ページから投稿へ移行
   本文はコアブロックで組んであるので、見た目はクラス名で固定ページ時代に合わせる
   ========================================================================== */

/* クラシックテーマではグループの子要素が .wp-block-group__inner-container に入る。
   囲みを透過させ、名刺ブロックの横並び・ギャラリー等のレイアウトを子要素に直接効かせる */
.hc .wp-block-group > .wp-block-group__inner-container { display: contents; }

/* グループブロックの子要素の余白（テーマの block gap）を打ち消す */
.hc .wp-block-group > * { margin-block-start: 0; }
.hc .wp-block-group.hc-idcard > *,
.hc .wp-block-group.hc-idcard > .wp-block-group__inner-container > *,
.hc .wp-block-group.hc-hero > .wp-block-group__inner-container > p,
.hc .wp-block-group.hc-hero > p,
.hc .wp-block-group.hc-note > .wp-block-group__inner-container > p,
.hc .wp-block-group.hc-note > p { margin: 0; }

/* 名刺ブロック（写真＋よみ・認定番号） */
.hc .wp-block-group.hc-head {
    display: flex;
    align-items: flex-start;
    gap: 1.2em;
    margin: 0 0 1.9em;
}
.hc .wp-block-group.hc-head > .hc-idcard { flex: 1 1 auto; margin: 0; }
.hc .wp-block-image.hc-portrait {
    flex: none;
    width: 158px;
    margin: 0;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(30,45,60,.06);
}
.hc .wp-block-image.hc-portrait img { display: block; width: 100%; height: auto; border-radius: 5px; }
.hc .hc-idcard__yomi em {
    font-style: normal;
    margin-left: .8em;
    font-size: .8em;
    letter-spacing: .08em;
    color: var(--hc-muted);
}
.hc .wp-block-list.hc-idcard__quals li::before { content: none; }

/* 写真ギャラリー */
.hc .wp-block-group.hc-gallery { display: flex; flex-wrap: wrap; gap: .9em; margin: 0 0 1.9em; }
.hc .wp-block-image.hc-shot {
    margin: 0;
    padding: 7px;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(30,45,60,.06);
}
.hc .wp-block-image.hc-shot img { display: block; width: auto; max-width: 100%; max-height: 240px; height: auto; border-radius: 5px; }

/* 見出し・本文 */
.hc--post .hc-block__ttl { margin-top: 1.9em; }
.hc--post > .hc-head + .hc-block__ttl,
.hc--post > .hc-idcard + .hc-block__ttl,
.hc--post > .wp-block-table + .hc-block__ttl { margin-top: 0; }
.hc--post > p { margin: 0 0 .7em; font-size: .97em; }
.hc--post > p a { color: var(--hc-key-d); text-decoration: underline; }
.hc--post > .wp-block-list { margin: 0 0 .9em; font-size: .97em; }
.hc--post > .wp-block-list li { position: relative; margin: 0 0 .35em; padding-left: 1.1em; }
.hc--post > .wp-block-list li::before {
    content: "";
    position: absolute;
    left: .1em; top: .72em;
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--hc-key);
    opacity: .55;
}
.hc--post > .wp-block-list li a { color: var(--hc-key-d); text-decoration: underline; }

/* 表（基本情報 → 営業日・時間 → 続き を1枚の表に見せる） */
.hc .wp-block-table.hc-def,
.hc .wp-block-table.hc-sched {
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 10px;
}
.hc .wp-block-table.hc-def:has(+ .hc-sched),
.hc .wp-block-table.hc-sched:has(+ .hc-def) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.hc .hc-def + .wp-block-table.hc-sched,
.hc .hc-sched + .wp-block-table.hc-def { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
.hc .wp-block-table.hc-def:not(:has(+ .hc-sched)),
.hc .wp-block-table.hc-sched:not(:has(+ .hc-def)) { margin-bottom: 1.9em; }

.hc .wp-block-table.hc-def table,
.hc .wp-block-table.hc-sched table {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: .94em;
}
.hc .wp-block-table.hc-def th,
.hc .wp-block-table.hc-def td {
    padding: .78em 1.1em;
    text-align: left;
    vertical-align: top;
    border: 0;
    border-bottom: 1px solid var(--hc-line-2);
    background: transparent;
    color: inherit;
    font-weight: 400;
}
.hc .wp-block-table.hc-def tr:last-child th,
.hc .wp-block-table.hc-def tr:last-child td { border-bottom: 0; }
.hc .wp-block-table.hc-def th,
/* SWELL の「表の各行の先頭セルは幅 auto」(.wp-block-table > table tr > :first-child) より強くする */
.hc .wp-block-table.hc-def > table tr > th:first-child {
    width: 12em;
    font-weight: 700;
    color: var(--hc-key-d);
    background: var(--hc-key-l);
}
.hc .wp-block-table.hc-def td a { color: var(--hc-key-d); text-decoration: underline; word-break: break-all; }

/* センター長／所属ホメオパス：名前の横に認定番号（code で囲んだ部分）を並べ、折り返しても番号の列に揃える */
.hc .wp-block-table.hc-def td:has(> :is(a, strong):first-child + code) {
    padding-left: calc(1.1em + 9em);
    text-indent: -9em;
}
.hc .wp-block-table.hc-def td:has(> :is(a, strong):first-child + code) > :is(a, strong):first-child {
    display: inline-block;
    width: 9em;
    padding-right: .6em;
    text-indent: 0;
    vertical-align: top;
    font-weight: 400;
}
.hc .wp-block-table.hc-def td > code {
    display: inline-block;
    margin: .1em .5em .35em 0;
    padding: .22em .75em;
    text-indent: 0;
    font-family: inherit;
    font-size: .88em;
    font-weight: 600;
    line-height: 1.5;
    color: var(--hc-key-d);
    background: #fff;
    border: 1px solid var(--hc-line);
    border-radius: 6px;
    white-space: nowrap;
}
/* 相談方法（先頭から code が並ぶ欄）はピル型 */
.hc .wp-block-table.hc-def td:has(> code:first-child) > code {
    padding: .35em 1em;
    font-size: .9em;
    background: var(--hc-key-l);
    border-color: var(--hc-key);
    border-radius: 999px;
}

/* 営業日・時間マトリクス */
.hc .wp-block-table.hc-sched table { min-width: 640px; font-size: .88em; }
.hc .wp-block-table.hc-sched th,
.hc .wp-block-table.hc-sched td {
    padding: .5em .3em;
    text-align: center;
    vertical-align: middle;
    border: 1px solid var(--hc-line-2);
    background: transparent;
    font-weight: 400;
    color: inherit;
}
.hc .wp-block-table.hc-sched tr:first-child > th:first-child {
    width: 12em;
    padding: .78em 1.1em;
    text-align: left;
    vertical-align: top;
    font-size: 1.07em;
    border-left: 0;
    border-top: 0;
    border-bottom: 0;
}
.hc .wp-block-table.hc-sched tr:first-child > th:nth-child(2) { width: 4.2em; }
.hc .wp-block-table.hc-sched tr:first-child > th,
.hc .wp-block-table.hc-sched tr:nth-child(n+3) > th {
    background: var(--hc-key-l);
    color: var(--hc-key-d);
    font-weight: 700;
}
.hc .wp-block-table.hc-sched tr:nth-child(2) > td {
    background: #fafaf7;
    font-size: .78em;
    color: var(--hc-muted);
}
.hc .wp-block-table.hc-sched tr:nth-child(n+3) > td:not(:empty) {
    background: var(--hc-key-l);
    color: var(--hc-key-d);
    font-weight: 700;
}
.hc .wp-block-table.hc-sched tr > :last-child { border-right: 0; }
.hc .wp-block-table.hc-sched tr:first-child > * { border-top: 0; }
.hc .wp-block-table.hc-sched tr:last-child > * { border-bottom: 0; }

/* 固定ページ（一覧）のヒーロー・注記をグループブロックで組んだ場合 */
.hc .wp-block-group.hc-hero .hc-hero__title { font-size: clamp(1.7em, 4.4vw, 2.5em); }
.hc .wp-block-group.hc-note { align-items: flex-start; }
.hc .wp-block-group.hc-note::before { content: "\2139"; flex: none; }
.hc .wp-block-group.hc-note a { color: var(--hc-key-d); font-weight: 700; text-decoration: underline; }

@media (max-width: 600px) {
    .hc .wp-block-group.hc-head { display: block; }
    .hc .wp-block-image.hc-portrait { width: 132px; margin: 0 0 1em; }
    .hc .wp-block-image.hc-shot img { max-height: 190px; }
    .hc .wp-block-table.hc-def th,
    .hc .wp-block-table.hc-def > table tr > th:first-child { width: 6.8em; padding: .6em .7em; }
    .hc .wp-block-table.hc-def td > code { white-space: normal; max-width: 100%; }
    .hc .wp-block-table.hc-def td { padding: .6em .7em; }
    .hc .wp-block-table.hc-def td:has(> :is(a, strong):first-child + code) { padding-left: .7em; text-indent: 0; }
    .hc .wp-block-table.hc-def td:has(> :is(a, strong):first-child + code) > :is(a, strong):first-child { display: block; width: auto; margin-bottom: .3em; }
    .hc .wp-block-table.hc-sched tr:first-child > th:first-child { width: 6.8em; padding: .6em .7em; }
}
