@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.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
*/

/* H2本体（名前部分）の文字色をメインカラーに */
.post_content h2.is-style-section_ttl {
    color: var(--color_main);
}

/* 注釈（smallタグ）の文字色を通常の黒に戻す */
.post_content h2.is-style-section_ttl small {
    color: var(--color_text);
}

/* 下線の調整 */
.post_content h2.is-style-section_ttl::after {
    height: 1px;
    background-color: var(--color_main);
}

/* ===== 経歴タイムライン（共通デフォルト＝従来のグレー枠デザイン）
   ※院長紹介ページ等、トップ以外はこちら。トップだけ下で日本地図調に上書き ===== */
.noda-timeline {
    position: relative;
    border-top: 3px solid var(--color_main);
    border-bottom: 3px solid var(--color_main);
    padding: 3em 0;
    margin-top: 2em;
    background-color: #f9f9f9;
}
.noda-timeline::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 6em;
    width: 1px;
    background-color: var(--color_main);
    opacity: 0.6;
}
.timeline-item {
    display: flex;
    position: relative;
    margin-bottom: 2em;
}
.timeline-item:last-child {
    margin-bottom: 0;
}
.timeline-item::after {
    content: "";
    position: absolute;
    left: calc(6em - 4px);
    top: 0.6em;
    width: 9px;
    height: 9px;
    background-color: var(--color_main);
    border-radius: 50%;
    z-index: 1;
}
.timeline-date {
    width: 6em;
    text-align: right;
    padding-right: 2em;
    font-weight: bold;
    color: #444;
    line-height: 1.4;
    flex-shrink: 0;
}
.timeline-date.multi-date {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.date-line {
    display: block;
    width: 1px;
    height: 10px;
    background-color: var(--color_main);
    margin: 2px 1.2em 2px 0;
    opacity: 0.6;
}
.timeline-content {
    flex: 1;
    padding-left: 2em;
    padding-right: 1em;
    line-height: 1.8;
}
@media (max-width: 600px) {
    .noda-timeline::before { left: 4.5em; }
    .timeline-item::after { left: calc(4.5em - 4px); }
    .timeline-date { width: 4.5em; padding-right: 1.5em; font-size: 0.9em; }
    .timeline-content { padding-left: 1.5em; font-size: 0.95em; }
}

/* ===== トップ限定：タイムライン背景を地図画像＋白文字に上書き ===== */
.home .noda-timeline {
    border: 0;
    border-radius: 0;
    padding: 2.6em 2.2em 2.2em;
    overflow: hidden;
    background-color: #a5cdd9;
    background-image:
        linear-gradient(rgba(146, 194, 208, .42), rgba(146, 194, 208, .42)),
        url(images/index2.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
}
.home .noda-timeline::before {
    top: 2.6em;
    bottom: 2.2em;
    left: calc(2.2em + 6em);
    background-color: #d3e7ec;
    opacity: 1;
}
.home .timeline-item {
    margin-bottom: 0.9em;
}
.home .timeline-item::after {
    top: 0.45em;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .35);
}
.home .timeline-date {
    padding-right: 1.6em;
    font-weight: 500;
    color: #fff;
    line-height: 1.5;
    white-space: nowrap;
}
.home .date-line {
    background-color: rgba(255, 255, 255, .75);
    margin: 3px 1.1em 3px 0;
    opacity: 1;
}
.home .timeline-content {
    padding-left: 1.6em;
    padding-right: 0.5em;
    line-height: 1.5;
    color: #fff;
}
@media (max-width: 600px) {
    .home .noda-timeline { padding: 2em 1.2em; }
    .home .noda-timeline::before { top: 2em; bottom: 2em; left: calc(1.2em + 4.5em); }
    .home .timeline-item::after { left: calc(4.5em - 4px); }
    .home .timeline-date { width: 4.5em; padding-right: 1.2em; font-size: 0.9em; }
    .home .timeline-content { padding-left: 1.2em; font-size: 0.92em; }
}

/* 文字サイズ調整用 */
.u-fz-s { font-size: 0.85em; }
.u-text-gray { color: #666; }

/* ============================================
   ヘッダー（横型 -series）
============================================ */

/* ヘッダーを画面幅いっぱいに（追従ヘッダーも同様） */
.l-header__inner.l-container,
.l-header__barInner.l-container,
.l-fixHeader__inner.l-container {
    max-width: 100%;
    padding-left: 24px;
    padding-right: 24px;
}
@media (max-width: 959px) {
    .l-header__inner.l-container,
    .l-header__barInner.l-container {
        padding-left: 6px;
        padding-right: 6px;
    }
}
/* 追従ヘッダー：メインヘッダー同様に縦積み（ロゴ上／メニュー下全幅）でメニューを1行に */
@media (min-width: 960px) {
    .l-fixHeader.-parallel .l-fixHeader__inner { flex-wrap: wrap; align-items: center; }
    .l-fixHeader.-parallel .l-fixHeader__logo { margin-right: auto; }
    .l-fixHeader.-parallel .l-fixHeader__gnav { width: 100%; margin-left: 0; }
    .l-fixHeader .c-gnav { justify-content: center; min-height: 0; }
    .l-fixHeader .l-fixHeader__gnav .c-gnav > li > a { padding: 8px 12px; }
    .l-fixHeader .l-fixHeader__gnav { padding-bottom: 14px; }
    /* 追従ヘッダーのキャッチ(H1相当)＋CTA（電話・住所・WEB受付） */
    .l-fixHeader__logo { display: flex; flex-direction: column; align-items: flex-start; }
    .l-fixHeader__logo .noda-site-h1 { margin: 0 0 9px; font-size: 12px; font-weight: normal; line-height: 1.4; color: #666; }
    .l-fixHeader .w-header { width: auto; order: 0; }
    /* 追従ヘッダーとコンテンツの境目に影で区切りを付ける */
    .l-fixHeader { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.10); }
}

/* SPヘッダー：旧サイト調（ブランド色背景＋白ロゴ＋白ハンバーガー） */
@media (max-width: 959px) {
    .l-header__inner { background: #92c2d0; }
    .l-header__logo .c-headLogo__img { display: none; }
    .l-header__logo .c-headLogo__link {
        width: 190px;
        height: 100%;
        padding: 0;
        background: url(images/logo-sp.svg) left center / contain no-repeat;
    }
    .l-header__menuBtn .c-iconBtn__icon,
    .l-header__menuBtn .c-iconBtn__label { color: #fff; }
}

/* SP：ヘッダー追従OFF時、ハンバーガーMENUだけ右上に固定追従（旧サイト準拠）
   ヘッダー本体（ロゴ・SNS・3ボタン）は普通に流れて消える */
@media (max-width: 959px) {
    .l-header__menuBtn {
        position: fixed;
        top: 22px; /* キャッチコピー帯（約22px）の真下＝ロゴ/SNS帯の上端に合わせる */
        right: 0;
        z-index: 9999;
        height: var(--logo_size_sp); /* ロゴ/SNS帯と同じ縦幅（48px）。下のはみ出しを解消 */
        background: #92c2d0;
    }
    .l-header__menuBtn .c-iconBtn,
    .l-header__menuBtn .c-iconBtn__icon,
    .l-header__menuBtn .c-iconBtn__label { color: #fff; }
}

/* SPフッター固定メニュー：お電話／WEB受付／アクセス＝旧 #pf_down 準拠。スクロール400px超で表示 */
.noda-footer-fixmenu { display: none; }
@media (max-width: 959px) {
    .noda-footer-fixmenu {
        display: block;
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 80px;
        z-index: 60;
        background: #92c2d0;
        border-top: 1px solid #eee;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.4s ease, visibility 0.4s ease;
    }
    .noda-footer-fixmenu.is-visible { opacity: 1; visibility: visible; }
    /* バー表示中だけ本文下に余白を足し、フッターがバーに隠れないようにする */
    body.noda-ffm-active { padding-bottom: 80px; }
    /* ハンバーガーメニュー（SPドロワー）：最下部の項目がフッター固定バーに隠れないよう下部に余白 */
    .p-spMenu__inner { padding-bottom: 92px; }
    .noda-footer-fixmenu ul {
        display: flex;
        height: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .noda-footer-fixmenu li { flex: 1; }
    .noda-footer-fixmenu a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        color: #fff;
        text-decoration: none;
    }
    .noda-footer-fixmenu .noda-ffm__sub { font-size: 12px; line-height: 1.3; }
    .noda-footer-fixmenu .noda-ffm__main { display: inline-flex; align-items: center; margin-top: 5px; }
    .noda-footer-fixmenu .noda-ffm__main img { width: 24px; height: auto; margin-right: 3px; }
    .noda-footer-fixmenu .noda-ffm__main span { font-weight: bold; font-size: 16px; }
    .noda-footer-fixmenu .noda-ffm__main .is-web { color: #FFEF6C; }
}

/* SPヘッダー：ロゴ横にSNSアイコン（Instagram / YouTube）＝旧サイト準拠
   -parallel はロゴが width:100% で1行を占有するため、アイコンは絶対配置で
   ヘッダー右端（ハンバーガーの手前）に置く（.l-header__inner は position:relative） */
.noda-head-sns { display: none; }
@media (max-width: 959px) {
    .noda-head-sns {
        display: flex;
        align-items: center;
        gap: 9px;
        position: absolute;
        top: 50%;
        right: calc(var(--logo_size_sp, 46px) + 14px);
        transform: translateY(-50%);
        z-index: 10;
    }
    .noda-head-sns__link { display: block; line-height: 0; }
    .noda-head-sns__link img { display: block; height: 26px; width: auto; }
}

/* SP上部ナビ：3ボタン（診察案内／WEB受付／アクセス）＝旧 .pf_down2 準拠。ヘッダー直下・追従しない */
.noda-sp-topnav { display: none; }
@media (max-width: 959px) {
    .noda-sp-topnav { display: block; }
    .noda-sp-topnav ul {
        display: flex;
        height: 50px;
        margin: 0;
        padding: 0;
        list-style: none;
        position: relative;
        z-index: 10;
        box-shadow: 0 3px 5px rgba(54, 54, 54, 0.43);
    }
    .noda-sp-topnav li {
        width: 30%;
        margin: 0;
        padding: 10px 0;
        position: relative;
        background-color: #cae5ee;
    }
    .noda-sp-topnav li::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        width: 1px;
        height: 35px;
        margin: auto;
        background-color: #92c2d0;
    }
    .noda-sp-topnav li:last-child { width: 40%; }
    .noda-sp-topnav li:last-child::after { display: none; }
    .noda-sp-topnav a {
        display: flex;
        height: 100%;
        justify-content: center;
        align-items: center;
        color: #333;
        text-decoration: none;
    }
    .noda-sp-topnav img { width: 22px; height: 22px; margin-right: 6px; }
    .noda-sp-topnav p { margin: 0; font-size: 10px; font-weight: bold; text-align: center; line-height: 1.4; }
    .noda-sp-topnav p span { font-size: 12px; }
}

/* PCロゴを左寄せ */
@media (min-width: 960px) {
    .l-header .l-header__logo { text-align: left; padding-left: 16px; padding-top: 25px; padding-bottom: 34px; }
}

/* ヘッダー右上CTA：ロゴと横並び（メニューは下段のまま） */
@media (min-width: 960px) {
    .l-header.-parallel .l-header__logo { width: auto; }
    .l-header.-parallel .w-header { width: auto; margin: 0 0 0 auto; }

    .noda-hcta { display: flex; align-items: center; gap: 16px; }
    .noda-hcta__info { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
    .noda-hcta__access { color: #555; font-size: 13px; line-height: 1.4; }
    .noda-hcta__access:hover { color: #92c2d0; }
    .noda-hcta__tel { display: inline-flex; align-items: center; gap: 8px; color: #3C6B83; font-size: 24px; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; }
    .noda-hcta__tel:hover { color: #3C6B83; }
    .noda-hcta__tel::before {
        content: "";
        width: 26px;
        height: 26px;
        flex: none;
        background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233C6B83'><path d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/></svg>") center/contain no-repeat;
    }
    .noda-hcta__btn {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        background: #3C6B83;
        color: #fff;
        font-weight: 700;
        font-size: 16px;
        line-height: 1;
        padding: 18px 30px;
        border-radius: 6px;
        white-space: nowrap;
    }
    .noda-hcta__btn::before {
        content: "";
        width: 19px;
        height: 19px;
        flex: none;
        background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/></svg>") center/contain no-repeat;
    }
    .noda-hcta__btn::after {
        content: "";
        width: 8px;
        height: 8px;
        flex: none;
        margin-left: 4px;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        transform: rotate(45deg);
    }
    .noda-hcta__btn:hover { opacity: 0.85; color: #fff; }
}

/* グローバルメニュー：項目間に区切り｜ */
@media (min-width: 960px) {
    .c-gnav { flex-wrap: wrap; align-content: center; min-height: 84px; }
    .l-header__gnav, .l-header__gnav .c-gnav { height: auto; }
    .l-header__gnav { position: relative; }
    .l-header__gnav::before {
        content: "";
        position: absolute;
        top: 0;
        left: -24px;
        right: -24px;
        border-top: 1px solid #e5e5e5;
    }
    .c-gnav > li { display: flex; align-items: center; }
    .c-gnav > li + li::before { content: "｜"; color: #cbd5d8; }
    .l-header .l-header__gnav .c-gnav > li > a {
        padding-top: 9px;
        padding-bottom: 9px;
        padding-left: 12px;
        padding-right: 12px;
    }
    .c-gnav > li.menu-item-has-children > a .ttl::after {
        content: "";
        display: inline-block;
        width: 6px;
        height: 6px;
        margin-left: 7px;
        border-right: 1.5px solid #92c2d0;
        border-bottom: 1.5px solid #92c2d0;
        transform: translateY(-2px) rotate(45deg);
        vertical-align: middle;
    }
    .c-gnav .sub-menu a::before { color: #92c2d0; }
    .c-gnav .sub-menu a:hover { background-color: rgba(146, 194, 208, 0.2); }
    .c-gnav .sub-menu,
    .c-gnav .sub-menu::before { background-color: #fff; }
}

/* ロゴ上のテキストH1（旧サイト同様・PCのみ表示） */
.l-header__logo .noda-site-h1 {
    width: 100%;
    margin: 0 0 9px;
    font-size: 12px;
    font-weight: normal;
    line-height: 1.4;
    color: #666;
}
@media (max-width: 959px) {
    .l-header__logo .noda-site-h1 { display: none; }
}

/* キャッチ帯：PC非表示／SPのみ白背景＋#92c2d0文字・中央 */
@media (min-width: 960px) {
    .l-header .l-header__bar { display: none !important; }
}
@media (max-width: 959px) {
    .l-header .l-header__bar.pc_ { display: block !important; background: #fff; }
    .l-header__bar .c-catchphrase {
        width: 100%;
        margin-right: 0;
        color: #92c2d0;
        text-align: center;
    }
}

/* トップMV：キャッチコピー（縦書き・右上） */
.home .p-mainVisual__textLayer {
    align-items: flex-end;
    justify-content: flex-start;
    box-sizing: border-box;
    padding-top: 36px;
    padding-right: 8%;
}
.home .p-mainVisual__slideTitle {
    writing-mode: vertical-rl;
    height: 100%;
    text-align: start;
    letter-spacing: 0.15em;
    line-height: 1.6;
    font-family: "Zen Old Mincho", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", serif;
    font-weight: 500;
    text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
}
@media (min-width: 960px) {
    .home .p-mainVisual__textLayer {
        max-width: none;
        width: 100%;
        padding-top: 100px;
        padding-right: 12%;
    }
    .home .p-mainVisual__slideTitle {
        font-size: clamp(23px, 2.7vw - 3px, 36px);
    }
}

/* ============================================
   トップ画像エリア：下部に帯デザイン（高さ調整版）
============================================ */

/* 1. 元の画像を表示させる */
#top_title_area .l-topTitleArea__img, 
#top_title_area.c-filterLayer::before {
    display: block !important;
}
#top_title_area {
    background-image: none !important;
    background-color: transparent !important;
}

/* 2. 画像の表示方法を調整（高さを抑えてトリミング） */
#top_title_area .l-topTitleArea__img {
    height: 100% !important;
    object-fit: cover;
}

/* 3. エリア全体の高さと配置設定 */
#top_title_area {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
    
    /* ▼▼ ここの数値を変更して高さを調整します ▼▼ */
    height: 300px !important;
    min-height: auto !important;
}

/* 4. テキストが入る「帯（バー）」のデザイン */
#top_title_area .l-topTitleArea__body {
    width: 100%;
    max-width: 100% !important;
    background-color: var(--color_main);
    opacity: 0.9;
    padding: 1.0em 5%;
    text-align: left;
    margin-bottom: 0;
}

/* 5. タイトル文字のデザイン */
.l-topTitleArea__body .c-pageTitle {
    color: #fff;
    font-size: 2.0rem;
    line-height: 1;
    margin: 0;
    text-shadow: none;
}

/* スマホでの調整 */
@media (max-width: 600px) {
    #top_title_area {
        height: 200px !important;
    }
    .l-topTitleArea__body .c-pageTitle {
        font-size: 1.6rem;
    }
}

/* ---------------------------------------
   医師紹介リストのデザイン
--------------------------------------- */

/* 全体の枠組み */
.doctor-list-container {
    margin-top: 2em;
    border-top: 3px solid var(--color_main);
}

/* 導入文 */
.doctor-intro {
    padding: 1.5em 0;
    font-size: 0.95em;
    text-align: center;
}

/* 各医師の行（ボーダー区切り） */
.doctor-row {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 2px solid var(--color_main);
    padding: 2em 1em;
    align-items: flex-start;
}

/* 左カラム：名前エリア */
.doctor-name {
    width: 25%;
    font-size: 1.25em;
    font-weight: bold;
    line-height: 1.4;
    padding-right: 1em;
    flex-shrink: 0;
}

/* 役職（副院長など） */
.doctor-name small {
    font-size: 0.7em;
    font-weight: normal;
    margin-left: 0.3em;
}

/* Instagramアイコン */
.doc-insta-btn {
    display: inline-block;
    color: #C13584;
    font-size: 1.2em;
    margin-left: 0.3em;
    vertical-align: middle;
}

/* 右カラム：詳細エリア */
.doctor-info {
    width: 75%;
}

/* 資格（専門医など） */
.doctor-cert {
    font-weight: bold;
    margin-bottom: 1em;
    line-height: 1.5;
}

/* 経歴リスト（年表スタイル） */
.doctor-history {
    margin: 0;
    padding: 0;
}

.hist-row {
    display: flex;
    margin-bottom: 0.4em;
    line-height: 1.5;
    font-size: 0.95em;
}

/* 年号 */
.hist-row dt {
    width: 4.5em;
    flex-shrink: 0;
    font-weight: normal;
}

/* 経歴内容 */
.hist-row dd {
    margin: 0;
    padding-left: 1em;
    flex: 1;
}

/* スマホ表示の調整（縦並びにする） */
@media (max-width: 600px) {
    .doctor-row {
        display: block;
        padding: 1.5em 0;
    }
    .doctor-name {
        width: 100%;
        margin-bottom: 0.8em;
        border-left: 4px solid var(--color_main);
        padding-left: 0.8em;
    }
    .doctor-info {
        width: 100%;
    }
}

/* 院長紹介：写真に院長名を重ねる（対象画像に追加クラス noda-doctor-photo ＋キャプション） */
.post_content .wp-block-image.noda-doctor-photo { position: relative; }
.post_content .wp-block-image.noda-doctor-photo figcaption {
    position: absolute;
    left: 28px;
    bottom: 30px;
    right: auto;
    max-width: 90%;
    margin: 0;
    padding: 0;
    z-index: 2;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    line-height: 1.35;
    text-align: left; /* WP標準の text-align:center を解除 */
    text-shadow: 1px 2px 3px #808080;
    opacity: 1; /* SWELLの figcaption opacity:.8 を打ち消す */
}
.post_content .wp-block-image.noda-doctor-photo figcaption strong,
.post_content .wp-block-image.noda-doctor-photo figcaption b {
    display: inline-block;
    margin-top: 2px;
    font-size: 42px;
    font-weight: bold;
    line-height: 1.1;
}

/* SP：院長写真2枚が縦積みになったときの上下スキマをなくす */
@media (max-width: 599px) {
    .post_content .swell-block-columns:has(.noda-doctor-photo) .swell-block-columns__inner {
        gap: 0 !important;
        row-gap: 0 !important;
    }
    .post_content .swell-block-columns:has(.noda-doctor-photo) .swell-block-column {
        margin-bottom: 0 !important;
    }
}

/* 学歴・資格：白背景の各項目の縦幅を詰める（WP標準 padding:1.25em を縮小） */
.p-blogParts p.has-white-background-color.has-background {
    padding-top: 0.55em;
    padding-bottom: 0.55em;
}

/* 学歴・資格：項目同士の縦の間隔（行間）を詰める */
.p-blogParts .swell-block-columns:has(p.has-white-background-color) .swell-block-columns__inner {
    row-gap: 0 !important;
}
.p-blogParts .swell-block-columns:has(p.has-white-background-color) .swell-block-column {
    margin-bottom: 13px !important;
}

/* 略歴：項目間の行間を詰める（院長紹介パーツ内のみ。既定 2em → 0.9em） */
.p-blogParts .timeline-item {
    margin-bottom: 0.9em;
}

/* 略歴：日付(左)20% / 内容(右)80%。年は改行させない。縦線・ドットも20%へ移動（PC/SP共通） */
.p-blogParts .timeline-date {
    width: 20%;
    line-height: 1.8;
    white-space: nowrap;
}
.p-blogParts .noda-timeline::before {
    left: 20%;
}
.p-blogParts .timeline-item::after {
    left: calc(20% - 4px);
}
/* 略歴：SPはフォントをさらに小さく（院長紹介パーツ内のみ） */
@media (max-width: 600px) {
    .p-blogParts .timeline-date { font-size: 0.78em; }
    .p-blogParts .timeline-content { font-size: 0.8em; }
}

/* 学歴・資格／略歴の見出し(h3.section_ttl)をトップpageのセクション見出しと同サイズに（30px/22px） */
.p-blogParts h3.is-style-section_ttl {
    font-size: 30px;
    line-height: 1.35;
}
@media (max-width: 599px) {
    .p-blogParts h3.is-style-section_ttl {
        font-size: 22px;
    }
}

/* ---------------------------------------
   パンくずリストの位置をヘッダータイトルに合わせる
--------------------------------------- */
#breadcrumb .p-breadcrumb__list.l-container {
    max-width: 100% !important;
    width: 100%;
    padding-left: 5%;
    padding-right: 5%;
}

/* スマホ表示の調整（ヘッダーと揃える） */
@media (max-width: 600px) {
    #breadcrumb .p-breadcrumb__list.l-container {
        padding-left: 5%; 
        padding-right: 5%;
    }
}

/* --- 診療時間表 --- */
.f-table table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 2px;
    margin: 0;
    border: 0;
}
.f-table th,
.f-table td {
    text-align: center;
    border: 0;
    font-size: 14px;
    font-weight: normal;
}
/* ヘッダー行（受付時間＋曜日）：ブランド色 */
.f-table thead th {
    background: #92c2d0;
    color: #fff;
    padding: 14px 2px;
}
.f-table thead th:first-child { width: 29%; }
/* データ行（時間ラベル＋○）：薄グレー */
.f-table tbody th,
.f-table td {
    background: #f5f5f4;
    color: #555;
    padding: 10px 2px;
}
@media (max-width: 599px) {
    .f-table th,
    .f-table td { font-size: 12px; }
    .f-table thead th:first-child { width: auto; }
}

/* 表最終行の注意書き（結合セル）を左揃え */
.f-table td[colspan] {
    text-align: left;
    padding: 12px;
    line-height: 1.7;
}

/* --- フッター（左＝ロゴ＋情報／右＝メニュー＋コピーライト） --- */
.noda-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px 40px;
    padding: 36px 3% 40px;
}
.noda-footer__l {
    display: flex;
    align-items: center;
    gap: 22px;
    flex: 1 1 auto;
    min-width: 0;
}
.noda-footer__logo {
    flex: 0 0 auto;
}
.noda-footer__logo img {
    width: 340px;
    height: auto;
    display: block;
}
.noda-footer__info {
    font-size: 14px;
    color: #555;
    line-height: 1.8;
}
.noda-footer__info p {
    margin: 0;
}
.noda-footer__info .nf-tel a {
    font-size: 16px;
    color: #333;
    font-weight: bold;
}
.noda-footer__info .nf-sep {
    margin: 0 10px;
    color: #c4c4c4;
}
.noda-footer__info .nf-br-sp {
    display: none;
}
.noda-footer__r {
    flex: 0 0 auto;
    margin-left: auto;
    text-align: right;
}
.noda-footer__nav {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 16px;
}
.noda-footer__nav a {
    font-size: 12px;
    color: #555;
}
.noda-footer__nav a:hover {
    color: var(--color_main);
}
.noda-footer__copy {
    margin: 0;
    font-size: 12px;
    color: #555;
    line-height: 1.8;
}
.noda-footer__copy .nf-copy-en {
    white-space: nowrap;
}
@media (max-width: 768px) {
    .noda-footer {
        flex-direction: column;
        text-align: center;
        gap: 14px;
        padding: 24px 5% 28px;
    }
    .noda-footer__l {
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }
    .noda-footer__logo img {
        width: 240px;
    }
    .noda-footer__info {
        font-size: 12px;
        line-height: 1.8;
    }
    .noda-footer__info .nf-br-sp {
        display: inline;
    }
    .noda-footer__info .nf-sep {
        display: none;
    }
    .noda-footer__r {
        margin-left: 0;
        text-align: center;
    }
    .noda-footer__nav {
        justify-content: center;
    }
}

/* --- SWELL標準フッター（コピーライト）の調整 --- */
.l-footer {
    background-color: #f5f5f4;
    padding-top: 0;
}
.l-footer__foot {
    border-top: none;
    padding-top: 12px;
    background: transparent;
    margin-top: 0;
}
.copyright {
    color: #999;
    font-size: 11px;
}

/* --- フッターメニュー修正版（表示復活＆線調整） --- */

/* 1. SWELLデフォルトの線（aタグの左右）を確実に消す */
#footer .l-footer__nav a {
    border: none !important;
}

/* 2. 擬似要素（::before, ::after）だけを非表示にする */
#footer .l-footer__nav li::before,
#footer .l-footer__nav li::after {
    content: none !important;
    display: none !important;
}

/* 3. li自体は「表示」させる設定（ここを修正しました） */
#footer .l-footer__nav li {
    display: block !important;
    border: none !important;
}

/* --- ここから新しいデザイン --- */

/* 4. メニュー全体の配置 */
#footer .l-footer__nav {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* 5. 項目の間隔 & 新しい区切り線 */
#footer .l-footer__nav li {
    position: relative;
    margin: 0;
    padding: 0 1.5em !important;
    line-height: 1;
    
    /* 薄いグレーの右線を設定 */
    border-right: 1px solid #ddd !important;
}

/* 6. 最後の項目の右線だけ消す */
#footer .l-footer__nav li:last-child {
    border-right: none !important;
}

/* 7. 文字のデザイン */
#footer .l-footer__nav a {
    color: #666 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    display: inline-block;
    padding: 0 !important;
}

/* ホバー時 */
#footer .l-footer__nav a:hover {
    color: #92c2d0 !important;
}

/* 8. スマホ表示の調整 */
@media screen and (max-width: 600px) {
    #footer .l-footer__nav {
        margin-bottom: 15px !important;
    }
    #footer .l-footer__nav li {
        padding: 0 1em !important;
    }
    #footer .l-footer__nav a {
        font-size: 12px !important;
    }
}

/* ==============================================
   移動させた著者情報（この記事を書いた人）のデザイン調整
   ============================================== */

/* 1. 全体の枠・配置のリセットと調整 */
.l-articleBottom__section.-author.is-moved-to-top {
    margin: 60px 0 40px;
    padding: 0;
    border: none;
    background: none;
}

/* 2. 見出し「この記事を書いた人」のデザイン */
.l-articleBottom__section.-author.is-moved-to-top .c-secTitle {
    border: none;
    border-bottom: 2px solid var(--color_main);
    padding: 0 0 10px;
    margin-bottom: 25px;
    font-size: 18px;
    font-weight: 700;
    color: #455a64;
    line-height: 1.4;
}

/* 3. プロフィールボックス（カード風デザイン） */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox {
    background: #f8f9fa;
    border: 1px solid #e7ebec;
    border-radius: 6px;
    padding: 28px 32px;
    box-shadow: none;
}

/* 4. 左側エリア（写真＋名前＋肩書き）の幅調整 */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__l {
    /* 肩書きが変に改行されないよう幅を確保 */
    flex: 0 0 auto;
    width: auto;
    min-width: 200px;
    margin-right: 30px;
    text-align: center;
}

/* アバター写真：素直な円形（細い薄グレーの縁のみ） */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__l .avatar {
    border-radius: 50%;
    border: 1px solid #e6e6e6;
    box-shadow: none;
}

/* 5. 名前と肩書きの調整 */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__name {
    font-size: 19px;
    color: #40525a;
    font-weight: bold;
    margin-top: 12px;
    display: block;
    letter-spacing: .02em;
}

.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__position {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #7b8f96;
    line-height: 1.5;
    word-break: keep-all;
    overflow-wrap: normal;
}

/* 6. 右側（自己紹介文）の調整 */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__desc {
    font-size: 14px;
    line-height: 1.85;
    margin-top: 0;
    color: #555;
}

/* 7. SNSアイコンの「・」を完全に消す */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__iconList {
    margin: 15px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__iconList li {
    list-style: none !important;
    margin: 0 10px 0 0 !important;
    padding: 0 !important;
    display: inline-block;
}

/* 記事内リストの装飾（中黒など）を強制削除 */
.l-articleBottom__section.-author.is-moved-to-top .p-authorBox__iconList li::before {
    content: none !important;
    display: none !important;
}

/* 8. スマホ表示（レスポンシブ）対応 */
@media screen and (max-width: 599px) {
    .l-articleBottom__section.-author.is-moved-to-top {
        margin: 40px 0;
    }
    
    .l-articleBottom__section.-author.is-moved-to-top .p-authorBox {
        padding: 20px;
        flex-direction: column;
        align-items: center;
    }

    .l-articleBottom__section.-author.is-moved-to-top .p-authorBox__l {
        width: 100%;
        margin-right: 0;
        margin-bottom: 20px;
        min-width: 0;
    }
    
    .l-articleBottom__section.-author.is-moved-to-top .p-authorBox__desc {
        font-size: 13.5px;
        text-align: left;
    }
}

/* ==============================================
   投稿ページのタイトル（h1）デザイン
   ============================================== */
.single .p-articleHead.c-postTitle {
    position: relative;
    padding-bottom: 18px;
    margin-bottom: 20px;
    border-bottom: 1px solid #e5e5e5;
}
/* タイトル下線にブランド色のアクセント帯（左寄せ短め） */
.single .p-articleHead.c-postTitle::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 72px;
    height: 3px;
    border-radius: 2px;
    background: var(--color_main);
}
.single .c-postTitle__ttl {
    font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    font-size: 27px;
    line-height: 1.55;
    font-weight: 700;
    color: #40525a;
    letter-spacing: .02em;
}
@media screen and (max-width: 599px) {
    .single .p-articleHead.c-postTitle {
        padding-bottom: 14px;
        margin-bottom: 16px;
    }
    .single .c-postTitle__ttl {
        font-size: 21px;
        line-height: 1.5;
    }
}

/* 記事本文内のH2-H4を一括でブルーグレーに */
.post_content h2,
.post_content h3,
.post_content h4 {
    color: #455a64;
}

/* 料金表 th カスタマイズ */
.post_content .wp-block-table.price-table th {
    background-color: var(--color_main) !important;
    color: #fff !important;
    font-weight: bold;
    border-color: #fff !important;
    padding-top: 1em !important;
    padding-bottom: 1em !important;
}

/* colspanの見出し行 */
.post_content .wp-block-table.price-table th[colspan] {
    background-color: var(--color_main) !important;
    color: #fff !important;
    border-color: #fff !important;
    padding-top: 1em !important;
    padding-bottom: 1em !important;
}

/* 料金表 td カスタマイズ */
.post_content .wp-block-table.price-table td {
    background-color: #f5f5f5 !important;
    color: #354043;
    border-color: #fff !important;
    padding-top: 1em !important;
    padding-bottom: 1em !important;
}

/* テーブル全体の罫線も白に */
.post_content .wp-block-table.price-table,
.post_content .wp-block-table.price-table table {
    border-color: #fff !important;
}

.price-table td,
.price-table th {
    padding-left: 1.5em;
    padding-right: 1.5em;
}

/* ============================================
   院長紹介（blog_parts id=225）冒頭の隙間ゼロ2カラム画像
   ※ .post_content 内かつ「--swl-clmn-mrgn--x:0rem」の
     SWELLカラムだけにマッチ。通常の2カラムには影響しない。
   ============================================ */

/* 1. コンテンツの幅制限を解除し、高さを強制的に揃える */
.post_content .swell-block-columns[style*="--swl-clmn-mrgn--x:0rem"] .swell-block-columns__inner {
    width: 100%;
    max-width: 100% !important;
    align-items: stretch !important;
}

/* 2. カラム自体も高さを確保できるようにする */
.post_content .swell-block-columns[style*="--swl-clmn-mrgn--x:0rem"] .swell-block-column {
    display: flex;
    flex-direction: column;
}

/* 3. 画像の枠（figure）を高さ・横幅100%にする */
.post_content .swell-block-columns[style*="--swl-clmn-mrgn--x:0rem"] .wp-block-image {
    width: 100%;
    height: 100%;
    margin: 0;
    display: flex;
}

/* 4. 画像本体（img）を引き伸ばしてトリミング */
.post_content .swell-block-columns[style*="--swl-clmn-mrgn--x:0rem"] .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    vertical-align: bottom;
    border-radius: 0 !important;
}

/* ============================================
   情報セクション（禁忌・副作用・注意事項・未承認医薬品等）
   旧 swell_meta_css に各ページで重複していた CSS を集約。
   見出しが h3 でも h4 でも効くようにタグ名を外したセレクタを使用。
   ============================================ */

/* 1. ベースのエリア設定 */
.post_content .rosacea-info-section {
    margin-top: 40px;
    font-size: 1rem;
}
.post_content .rosacea-info-section ul {
    margin: 1em 0;
    padding-left: 1.5em !important;
    list-style: disc !important;
}
.post_content .rosacea-info-section li {
    margin-bottom: 0.5em;
    list-style: inherit !important;
}
.post_content .rosacea-info-section li::before {
    content: none !important;
}

/* 2. 副作用テーブル */
.rosacea-table-wrap {
    overflow-x: auto;
    margin-bottom: 2em;
}
.post_content table.rosacea-table {
    width: 100%;
    border-collapse: collapse;
    border: none !important;
    margin: 0 0 1em !important;
    border-top: 3px solid #92c2d0 !important;
    border-bottom: 3px solid #92c2d0 !important;
    display: table;
}
.post_content table.rosacea-table th,
.post_content table.rosacea-table td {
    padding: 1em !important;
    border: none !important;
    border-bottom: 1px solid #ddd !important;
    font-size: 0.95em;
    vertical-align: middle;
    background: transparent !important;
}
.post_content table.rosacea-table th {
    background-color: #f7fbfd !important;
    width: 30%;
    font-weight: bold;
    color: #333;
    text-align: left;
    white-space: nowrap;
}
@media (max-width: 600px) {
    .post_content table.rosacea-table th,
    .post_content table.rosacea-table td {
        display: block;
        width: 100%;
        border-bottom: none !important;
        white-space: normal;
    }
    .post_content table.rosacea-table td {
        padding-top: 0.5em !important;
        border-bottom: 1px solid #ddd !important;
    }
}

/* 3. 禁忌アラートボックス（赤い枠） */
.post_content .rosacea-alert-box {
    background-color: #fff9f9;
    border: 2px solid #eecaca;
    padding: 1.5em;
    border-radius: 4px;
    margin-bottom: 3em;
}
.post_content .rosacea-alert-box .alert-title {
    color: #d04f4f !important;
    font-size: 1.1em !important;
    margin: 0 0 0.8em 0 !important;
    padding: 0 !important;
    text-indent: 0 !important;
    background: none !important;
    border: none !important;
    display: flex;
    align-items: center;
}
.post_content .rosacea-alert-box .alert-title::before {
    content: '!' !important;
    font-family: inherit !important;
    display: inline-block;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    background: #d04f4f;
    color: #fff;
    text-align: center;
    line-height: 24px;
    border-radius: 50%;
    margin-right: 12px !important;
    font-size: 16px;
    font-weight: bold;
    border: none !important;
    position: static !important;
}
.post_content .rosacea-alert-box .alert-title::after {
    content: none !important;
    display: none !important;
}

/* 4. 治療別注意点ボックス */
.post_content .rosacea-treatment-box {
    background: #fff;
    border: 1px solid #ddd;
    border-top: 4px solid #92c2d0;
    padding: 1.5em;
    margin-bottom: 2em;
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}
.post_content .rosacea-treatment-box.is-caution {
    border-top-color: #f09f4d;
}
.post_content .rosacea-treatment-box .treatment-name {
    font-size: 1.2em !important;
    margin: 0 0 1em 0 !important;
    padding: 0 0 0.5em 0 !important;
    border: none !important;
    border-bottom: 1px dashed #eee !important;
    background: none !important;
    color: #333 !important;
}
.post_content .rosacea-treatment-box .treatment-name::before,
.post_content .rosacea-treatment-box .treatment-name::after {
    content: none !important;
    display: none !important;
}

/* 5. 未承認医薬品等の情報（グレー枠） */
.post_content .rosacea-legal-info {
    font-size: 0.85em;
    color: #555;
    background: #f9f9f9;
    padding: 20px;
    border-radius: 4px;
    margin-top: 1em;
}
.legal-block {
    margin-bottom: 2em;
    border-bottom: 1px solid #eee;
    padding-bottom: 1.5em;
}
.legal-block:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
}
.post_content .rosacea-legal-info .legal-title {
    font-size: 1.1em !important;
    margin: 0 0 1em 0 !important;
    padding: 0 0 0 10px !important;
    background: none !important;
    border: none !important;
    border-left: 4px solid #ccc !important;
    color: #333 !important;
}
.post_content .rosacea-legal-info .legal-title::before,
.post_content .rosacea-legal-info .legal-title::after {
    content: none !important;
    display: none !important;
}

/* dl, dt, dd の調整 */
.legal-block dl {
    display: block;
    margin: 0;
}
.legal-block dt {
    font-weight: bold;
    color: #333;
    margin-top: 1.2em;
    margin-bottom: 0.3em;
    float: none !important;
    width: auto !important;
    clear: both;
}
.legal-block dt:first-child {
    margin-top: 0;
}
.legal-block dd {
    margin: 0;
    margin-left: 1em;
    line-height: 1.6;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}

/* ============================================
   トップページ
   ============================================ */

/* セクション見出しの英語サブ（日本語大＋英語小・灰uppercase） */
.post_content h2.is-style-section_ttl small {
    display: block;
    margin-top: 6px;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #bfbfbf !important;
    font-weight: normal;
}
@media (max-width: 599px) {
    .post_content h2.is-style-section_ttl small {
        font-size: 16px;
        line-height: 22px;
    }
}

/* セクション見出し（is-style-section_ttl）のサイズ＝全ページ共通 */
.post_content h2.is-style-section_ttl {
    font-size: 30px;
    line-height: 1.35;
}
@media (max-width: 599px) {
    .post_content h2.is-style-section_ttl {
        font-size: 22px;
    }
}

/* 見出しに Zen Kaku Gothic New（モダン角ゴ）＝全ページ共通 */
.post_content h2,
.post_content h3,
.post_content h4 {
    font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

/* 診療内容・治療・病気のリンク一覧 → カード型バー（旧 chancecontain 風） */
.home-link-list {
    list-style: none !important;
    margin: 1.5em 0 0 !important;
    padding: 0 !important;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
@media (min-width: 768px) {
    .home-link-list {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
}
.home-link-list li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.home-link-list li::before {
    content: none !important;
    display: none !important;
}
.home-link-list li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5em;
    background: #fff;
    border: 1px solid #e3e3e3;
    color: #555;
    text-decoration: none;
    font-weight: bold;
    line-height: 1.5;
    padding: 16px 20px;
    border-radius: 4px;
    transition: background 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}
/* 右端のシェブロン矢印 */
.home-link-list li a::after {
    content: "";
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--color_main);
    border-right: 2px solid var(--color_main);
    transform: rotate(45deg);
    margin-left: 0.5em;
}
.home-link-list li a:hover {
    background: var(--color_main);
    color: #fff;
    border-color: var(--color_main);
}
.home-link-list li a:hover::after {
    border-top-color: #fff;
    border-right-color: #fff;
}

/* 診療内容・主な病気セクションのグレー背景
   （full-wideブロックに追加CSSクラス「sec-gray」を付けると適用） */
.swell-block-fullWide.sec-gray {
    background-color: #f5f5f4;
}

/* ============================================
   営業カレンダー [clinic_calendar]
   ============================================ */
.clinic-calendar { font-size: 14px; }
.cc-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.cc-title { font-weight: bold; font-size: 1.15em; }
.cc-prev, .cc-next {
    background-color: var(--color_main);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 7px auto;
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
    font-size: 0;
}
.cc-prev { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M6.5 1L1.5 6L6.5 11' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.cc-next { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M1.5 1L6.5 6L1.5 11' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.cc-prev:hover, .cc-next:hover { background-color: #6e929c; }
.cc-prev:disabled, .cc-next:disabled { opacity: .3; cursor: default; }
.cc-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cc-table th, .cc-table td { border: 1px solid #e5e5e5; text-align: center; }
.cc-table th { background: #f5f5f4; font-weight: normal; font-size: 0.85em; padding: 6px 0; }
.cc-table th.cc-w0 { color: #d93025; }
.cc-table th.cc-w6 { color: #1a73e8; }
.cc-table td { height: 4.6em; vertical-align: top; padding: 7px 2px; }
.cc-num { font-size: 0.95em; }
.cc-closed { background: #fdeeee; }
.cc-closed .cc-num { color: #d93025; font-weight: bold; }
.cc-mark { display: block; font-size: 0.65em; color: #d93025; line-height: 1.3; }
/* 診察日には○を表示（白だと分かりにくいため） */
.cc-day:not(.cc-closed)::after {
    content: "○";
    display: block;
    font-size: 0.78em;
    color: var(--color_main);
    line-height: 1.3;
    margin-top: 1px;
}
.cc-today { outline: 2px solid var(--color_main); outline-offset: -2px; }
.cc-empty { background: #fafafa; }
.cc-legend {
    margin-top: 12px;
    font-size: 1em;
    display: flex;
    justify-content: center;
    gap: 1em;
    color: #555;
}
.cc-legend span {
    display: inline-flex;
    align-items: center;
    border: 1px solid #dadada;
    border-radius: 4px;
    padding: 8px 16px;
}
.cc-lg-closed { background: #fdeeee; }
.cc-legend span::before {
    margin-right: 5px;
    font-weight: bold;
}
.cc-lg-open::before { content: "○"; color: var(--color_main); }
.cc-lg-closed::before { content: "休"; color: #d93025; }
.cc-loading { color: #999; padding: 20px 0; text-align: center; }

/* 「more」リンク */
.home .swell-block-fullWide__inner > p.has-text-align-right {
    margin: 20px 0 0 !important;
    line-height: 1;
}
.home .swell-block-fullWide__inner > p.has-text-align-right a {
    display: inline-flex;
    align-items: center;
    color: var(--color_main);
    font-weight: bold;
    font-size: 14px;
    letter-spacing: 0.04em;
    text-decoration: none;
}
.home .swell-block-fullWide__inner > p.has-text-align-right a:hover {
    opacity: 0.85;
}
/* ●の中に＞ の円形アイコン（自動付与） */
.home .swell-block-fullWide__inner > p.has-text-align-right a::after {
    content: "";
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-left: 6px;
    border-radius: 50%;
    background-color: var(--color_main);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M1.5 1L6.5 6L1.5 11' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 6px auto;
}
.home .swell-block-fullWide__inner > p.has-text-align-right a:hover::after {
    background-color: #6e929c;
}
/* 復旧で生じた空段落（入れ子pの外側）を隠す */
.home-link-list + p:empty {
    display: none !important;
}
@media (max-width: 599px) {
    .home .swell-block-fullWide__inner > p.has-text-align-right a { font-size: 12px; }
    .home .swell-block-fullWide__inner > p.has-text-align-right a::after { width: 16px; height: 16px; background-size: 5px auto; }
}

/* 当院の診療方針ボックス（旧 c_246 風：太字＋PC/SPで文字サイズ可変）
   トップの背景ボックス(wp-block-group.has-background)のみ対象 */
.home .wp-block-group.has-background {
    padding: 28px 32px;
    border-radius: 4px;
}
.home .wp-block-group.has-background p {
    margin: 0;
    color: #555;
    font-weight: bold;
    font-size: 19px;
    line-height: 1.7;
    letter-spacing: 1px;
}
.home .wp-block-group.has-background p + p {
    margin-top: 0.6em;
}
@media (max-width: 599px) {
    .home .wp-block-group.has-background {
        padding: 20px 18px;
    }
    .home .wp-block-group.has-background p {
        font-size: 15px;
        line-height: 1.7;
        letter-spacing: 0.5px;
    }
}

/* トピックス（お知らせ）ボックス：旧 c_246_3 風 グレー箱＋区切り線 */
.topics-box {
    background: #f5f5f4;
    padding: 10px 28px 28px;
    border-radius: 4px;
}
.topics-box p {
    margin: 0;
    padding: 18px 0;
    border-bottom: 1px solid #e0e0e0;
    line-height: 1.85;
    font-size: 15px;
    color: #555;
}
/* 「お知らせ」見出し（先頭）と最終行は区切り線なし */
.topics-box p:first-child,
.topics-box p:last-child {
    border-bottom: none;
}
/* 見出し直下は線が無いぶん余白を詰める */
.topics-box p:first-child {
    padding-bottom: 2px;
}
.topics-box p:empty {
    display: none;
}
/* お知らせ自動表示（ショートコードのspan）も段落行と同じ体裁に */
.topics-box .clinic-today-status,
.topics-box .clinic-acne-weekend,
.topics-box .clinic-doctor-absence,
.topics-box .clinic-temporary-notice {
    display: block;
    margin: 0;
    padding: 18px 0;
    border-bottom: 1px solid #e0e0e0;
    line-height: 1.85;
    font-size: 15px;
    color: #555;
}
.topics-box a {
    color: #6292a0;
}
.topics-box a:hover {
    color: var(--color_main);
}

/* doctorsfile 実績ボックス（緑枠／左:画像25% 右:2リンク75%）。グレー箱の中にも置ける */
.home .doctorsfile-box {
    --swl-clmn-mrgn--x: 0;
    --swl-clmn-mrgn--y: 0;
    border: 2px solid #288e3a;
    background: #fff;
    border-radius: 4px;
    overflow: hidden;
    margin: 14px 0 0;
}
.home .doctorsfile-box .swell-block-column:nth-child(2) { padding: 12px 16px; }
/* PC・タブレットは横並び28:72（SPは縦積み） */
@media (min-width: 600px) {
    .home .doctorsfile-box .swell-block-columns__inner { flex-wrap: nowrap; align-items: center; }
    .home .doctorsfile-box .swell-block-column:first-child { width: 28%; flex: 0 0 28%; }
    .home .doctorsfile-box .swell-block-column:nth-child(2) { width: 72%; flex: 0 0 72%; }
}
/* SPは旧サイト同様：縦積み・枠なし・画像80%中央・リンク11px（1行に収める） */
@media (max-width: 599px) {
    .home .doctorsfile-box { border: 0; }
    .home .doctorsfile-box .swell-block-column:first-child { width: 80%; margin: 0 auto; padding: 8px 0; }
    .home .doctorsfile-box .swell-block-column:nth-child(2) { padding: 8px 6px; }
    .home .doctorsfile-box .swell-block-column p { font-size: 11px; letter-spacing: -0.02em; }
}
.home .doctorsfile-box img { display: block; width: 100%; height: auto; }
.home .doctorsfile-box p { margin: 0; padding: 0; border-bottom: none; line-height: 2; font-size: 15px; color: #555; }
.home .doctorsfile-box a { color: #6292a0; text-decoration: underline; }
.home .doctorsfile-box a:hover { color: var(--color_main); }

@media (max-width: 599px) {
    .topics-box {
        padding: 6px 18px;
    }
    .topics-box p {
        padding: 14px 0;
        font-size: 14px;
        line-height: 1.8;
    }
}

/* 採用募集の強調行（旧 recruit_top 風：白箱＋▶アイコン）
   対象の段落に追加CSSクラス「recruit-notice」を付けると適用される */
.recruit-notice {
    position: relative;
    background: #fff !important;
    border: none !important;
    border-radius: 4px;
    margin: 14px 0 !important;
    padding: 16px 22px 16px 40px !important;
    color: #555;
    font-size: 15px;
    line-height: 1.8;
}
.recruit-notice::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 24px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px 0 6px 9px;
    border-color: transparent transparent transparent var(--color_main);
}
.recruit-notice a {
    color: #6292a0;
    text-decoration: underline;
}

/* 院長挨拶（白背景＋左にブランドカラーの縦ライン＝メッセージ風） */
.greeting-box {
    background: #fff;
    border-left: 4px solid var(--color_main);
    padding: 12px 16px 12px 30px;
}
.greeting-box p {
    margin: 0 0 1.1em;
    color: #555;
    font-size: 16px;
    line-height: 1.95;
}
.greeting-box p:last-child {
    margin-bottom: 0;
}
.greeting-box a {
    color: #6292a0;
    text-decoration: underline;
}
.greeting-box a:hover {
    color: var(--color_main);
}
@media (max-width: 599px) {
    .greeting-box {
        padding: 8px 4px 8px 20px;
    }
    .greeting-box p {
        font-size: 14px;
        line-height: 1.9;
    }
    /* SP本文フォントを旧サイト基準(約14px)に */
    .home .post_content { font-size: 14px; }
    .home .instagram_top_div { font-size: 13px; }
}
/* 院長挨拶の写真（greeting-box を含むカラム内の画像を :has() で対象化。
   写真カラムにクラスが無くても効く） */
.wp-block-columns:has(.greeting-box) img {
    border-radius: 16px;
    width: 100%;
    height: auto;
}
@media (max-width: 599px) {
    /* スマホで縦積み時、写真が大きくなりすぎないよう制限 */
    .wp-block-columns:has(.greeting-box) figure.wp-block-image {
        max-width: 240px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* 院長挨拶セクションだけコンテンツ幅を広げる（SWELL既定1000px → 1160px）
   greeting-box を含む full-wide inner（＝院長挨拶セクション）のみを :has() で対象化。
   :has()未対応の古いブラウザでは既定1000pxのまま＝実害なし */
.home .swell-block-fullWide__inner:has(.greeting-box),
.home .swell-block-fullWide__inner:has(.clinic-calendar),
.home .swell-block-fullWide__inner:has(.noda-timeline),
.home .swell-block-fullWide__inner:has(.access-overlay),
.home .swell-block-fullWide.access-section > .swell-block-fullWide__inner,
.home .swell-block-fullWide.mentor-section > .swell-block-fullWide__inner {
    --container_size: 1280px;
}
.swell-block-fullWide.access-section > .swell-block-fullWide__inner {
    --container_size: 1280px;
}

/* お世話になった先生方：H2の上下ラインを外す */
.home .mentor-section h2.wp-block-heading {
    border-top: 0;
    border-bottom: 0;
    padding-top: 0;
    padding-bottom: 0.5em;
}

/* お世話になった先生方：ロゴギャラリー（高さ統一・枠なし・院名は上） */
.home .mentor-section .wp-block-gallery {
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
}
.home .mentor-section .wp-block-gallery figure.wp-block-image {
    background: none;
    border: 0;
    padding: 12px 0;
    flex-grow: 0;
}
.home .mentor-section .wp-block-gallery figure.wp-block-image:has(figcaption)::before {
    content: none;
}
.home .mentor-section .wp-block-gallery figure.wp-block-image > a,
.home .mentor-section .wp-block-gallery figure.wp-block-image > div {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 90px;
    padding: 0;
}
/* 全ロゴを同じ幅にそろえる（幅固定・高さ自動） */
.home .mentor-section .wp-block-gallery figure.wp-block-image img {
    width: 280px !important;
    height: auto !important;
    max-width: 100%;
    object-fit: contain !important;
}
/* 院名キャプションを画像の上に */
.home .mentor-section .wp-block-gallery figure.wp-block-image figcaption {
    position: static;
    order: -1;
    flex: 0 0 auto;
    background: none;
    color: #555;
    text-shadow: none;
    margin: 0 0 10px;
    padding: 0;
    font-size: 14px;
    text-align: center;
}
.home .mentor-section .wp-block-gallery figure.wp-block-image:hover img {
    opacity: .7;
}

/* キャッチコピー：PC=｜区切り1行／SP=改行2行 */
.pc-pipe br { display: none; }
@media (max-width: 768px) {
    .pc-pipe { font-size: 0; }
    .pc-pipe br { display: inline; }
}

/* 住所・最寄り駅／診療時間カラムを 40:60 に（PC・タブレット。SPは縦積みのまま） */
.access-section .swell-block-columns__inner > .swell-block-column:first-child {
    --clmn-w--pc: 40%;
    --clmn-w--tab: 40%;
}
.access-section .swell-block-columns__inner > .swell-block-column:nth-child(2) {
    --clmn-w--pc: 60%;
    --clmn-w--tab: 60%;
}

/* 最寄り駅リスト：ビュレットなし */
.access-section .swell-block-column ul.wp-block-list {
    list-style: none;
    padding-left: 0;
}

/* 院長紹介・経歴の行：カラムをぴったり密着＆写真をタイムラインの高さに揃える
   （タイムラインを含む wp-block-columns＝経歴｜写真 の行だけを対象化） */
.home .wp-block-columns:has(.noda-timeline) {
    --wp-column-gap: 0;
    align-items: stretch !important;
}
.home .wp-block-columns:has(.noda-timeline) > .wp-block-column {
    align-self: stretch;
    margin: 0;
}
/* 写真側カラム：画像を縦いっぱいに伸ばしてタイムラインと同じ高さに */
.home .wp-block-columns:has(.noda-timeline) > .wp-block-column:has(.wp-block-image) {
    display: flex;
    flex-direction: column;
}
.home .wp-block-columns:has(.noda-timeline) .wp-block-image {
    flex: 1 1 auto;
    margin: 0;
    border-radius: 0;
}
.home .wp-block-columns:has(.noda-timeline) .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}

/* 経歴写真（ID20）のキャプションを院長名として左下に白文字オーバーレイ */
.home .wp-block-image:has(img.wp-image-20) { position: relative; }
.home .wp-block-image:has(img.wp-image-20) figcaption {
    position: absolute;
    left: 28px;
    bottom: 30px;
    right: auto;
    max-width: 90%;
    margin: 0;
    padding: 0;
    z-index: 2;
    text-align: left;
    color: #fff;
    opacity: 1;
    font-weight: bold;
    font-size: 20px;
    line-height: 1.35;
    text-shadow: 1px 2px 3px #808080;
}
.home .wp-block-image:has(img.wp-image-20) figcaption strong {
    display: inline-block;
    margin-top: 2px;
    font-size: 42px;
    font-weight: bold;
    line-height: 1.1;
}

/* 経歴行（上）と 学歴・資格行（下）の縦スキマを詰めてピッタリくっつける */
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:has(.noda-timeline) {
    margin-bottom: 0 !important;
}
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:has(.noda-timeline) + .wp-block-columns {
    margin-top: 0 !important;
    --wp-column-gap: 0;
    align-items: stretch !important;
}

/* ===== 学歴・資格の行（タイムラインを含まない方の wp-block-columns）===== */
/* 両カラムを行の高さいっぱいに伸ばし、写真を左ボックスと縦幅を揃える */
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column {
    align-self: stretch;
}
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child {
    display: flex;
    align-items: stretch;
    gap: 1.4em;
    margin: 0;
    padding: 2.6em 2.2em;
    background-color: #fff;
    background-image: url(images/index5.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}
/* 縦書きタイトル「学歴・資格」＋ 旧 index7.png の縦フレーム装飾 */
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > h3 {
    writing-mode: vertical-rl;
    display: grid;
    place-content: center;
    flex-shrink: 0;
    align-self: center;
    width: 56px;
    margin: 0;
    padding: 2.4em 0;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 0.1em;
    color: #92c2d0;
    border: none;
    background: url(images/index7.png) no-repeat center center;
    background-size: 100% 100%;
}
/* SWELL h3 の擬似要素（左の縦棒・下線等）を消す */
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > h3::before,
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > h3::after {
    content: none !important;
    display: none !important;
}
/* リスト（・なし・横並び・縦中央） */
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > ul {
    flex: 1;
    align-self: center;
    margin: 0;
    padding: 0;
    list-style: none;
}
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > ul li {
    list-style: none;
    margin: 0 0 0.38em;
    padding: 0;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
}
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > ul li:last-child {
    margin-bottom: 0;
}
/* 写真カラム：学歴箱の高さにフィット（経歴行と同じ扱い） */
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:has(.wp-block-image) {
    display: flex;
    flex-direction: column;
    margin: 0;
}
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:has(.wp-block-image) .wp-block-image {
    flex: 1 1 auto;
    margin: 0;
    border-radius: 0;
}
.home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:has(.wp-block-image) .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}
@media (max-width: 600px) {
    .home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child {
        padding: 1.6em 1.2em;
        gap: 1em;
    }
    .home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > h3 {
        align-self: flex-start;
        width: 48px;
        font-size: 20px;
        padding: 0.8em 0;
    }
    .home .swell-block-fullWide__inner:has(.noda-timeline) > .wp-block-columns:not(:has(.noda-timeline)) > .wp-block-column:first-child > ul li {
        font-size: 14px;
    }
}

/* ===== アクセス：マップ上に「診療受付時間」ボックスを重ねる =====
   前提のブロック構成（エディタ側）:
     .access-overlay（相対配置の親）├─ .access-map（マップ）└─ .access-hours（重ねるボックス） */
.home .access-overlay { position: relative; }
.home .access-overlay .access-map { margin: 0; }
.home .access-overlay .access-map iframe { display: block; width: 100%; }

/* 診療受付時間ボックス：マップ右上に絶対配置で重ねる */
.home .access-overlay .access-hours {
    position: absolute;
    top: 56px;
    right: 8%;
    width: min(470px, 92%);
    margin: 0;
    padding: 24px 30px 14px;
    background: rgba(146, 194, 208, .88);
    color: #fff;
    z-index: 2;
    box-sizing: border-box;
    border-radius: 12px;
}
/* タイトル「診療受付時間」（アイコンはSWELLインラインアイコンを手動挿入）
   ※SWELLグループは内側ラッパーがあるため子孫セレクタで指定 */
.home .access-overlay .access-hours h3 {
    margin: 0 0 12px;
    padding: 0;
    border: none;
    font-size: 30px;
    font-weight: bold;
    line-height: 1.3;
    color: #fff;
}
/* SWELL標準h3の装飾（::before の下線バー／::after）を両方消す。
   ::before を消さないと既存のSWELLスタイル（見出し下のカラーバー）が残る */
.home .access-overlay .access-hours h3::before,
.home .access-overlay .access-hours h3::after { content: none; display: none; }
/* 各行＝白文字・行下に半透明の区切り線。p でも リスト項目でも効く */
.home .access-overlay .access-hours ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.home .access-overlay .access-hours p,
.home .access-overlay .access-hours li {
    margin: 0;
    padding: 9px 0;
    font-size: 18px;
    line-height: 1.55;
    color: #fff;
    list-style: none;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
}
.home .access-overlay .access-hours p:last-child,
.home .access-overlay .access-hours li:last-child { border-bottom: 0; }

/* スマホ：重ねをやめてマップ下に通常配置 */
@media (max-width: 600px) {
    .home .access-overlay .access-hours {
        position: static;
        width: 100%;
        margin-top: 16px;
        right: auto;
        top: auto;
        padding: 16px 18px 8px;
        border-radius: 0;
    }
    .home .access-overlay .access-hours h3 {
        font-size: 20px;
        margin-bottom: 8px;
    }
    .home .access-overlay .access-hours p,
    .home .access-overlay .access-hours li {
        font-size: 15px;
        padding: 7px 0;
    }
}

/* 診療案内（リッチカラム）の英語テキストの行間を広く
   ※カレンダーには<p>が無いので英語段落だけに効く */
.home .swell-block-columns:has(.clinic-calendar) p {
    line-height: 2.0;
}

/* 担当医師テーブル：午前/午後を均等にするだけ（罫線・色など他のスタイルは当てない） */
.home .wp-block-table.is-all-centered table {
    table-layout: fixed;
}
.home .wp-block-table.is-all-centered thead th:first-child {
    width: 5em;
}

/* コラム（最新投稿リスト）を「日付＋タイトル」一覧に（トップ限定） */
.home .wp-block-latest-posts__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: none;
}
.home .wp-block-latest-posts__list > li:first-child {
    border-top: none;
}
.home .wp-block-latest-posts__list > li {
    display: flex;
    align-items: baseline;
    gap: 2.5em;
    margin: 0;
    padding: 15px 6px;
    border-bottom: 1px solid #e0e0e0;
    line-height: 1.6;
    font-size: 14px;
}
.home .wp-block-latest-posts__list > li:last-child {
    border-bottom: none;
}
.home .wp-block-latest-posts__post-date {
    order: -1;
    flex-shrink: 0;
    width: 5.5em;
    color: #888;
    font-size: 0.88em;
}
.home .wp-block-latest-posts__post-title {
    flex: 1;
    color: #6292a0;
    text-decoration: none;
}
.home .wp-block-latest-posts__post-title:hover {
    color: var(--color_main);
    text-decoration: underline;
}
@media (max-width: 599px) {
    .home .wp-block-latest-posts__list > li {
        gap: 1.4em;
        padding: 12px 2px;
    }
    .home .wp-block-latest-posts__post-date {
        width: auto;
        white-space: nowrap;
        font-size: 0.8em;
    }
}

/* メディア掲載表 */
.home .wp-block-table.is-style-simple:not(.min_width30_) table {
    width: 100%;
    border: none;
}
.home .wp-block-table.is-style-simple:not(.min_width30_) td {
    border: none !important;
    border-bottom: 1px solid #e0e0e0 !important;
    padding: 14px 8px;
    vertical-align: top;
    line-height: 1.6;
    font-size: 14px;
}
/* 日付列（左）：内容幅に縮め、右に余白でタイトルと間隔を確保 */
.home .wp-block-table.is-style-simple:not(.min_width30_) td:first-child {
    width: 1%;
    white-space: nowrap;
    padding-right: 2.5em;
    color: #888;
    font-size: 12px;
}
.home .wp-block-table.is-style-simple:not(.min_width30_) tr:last-child td {
    border-bottom: none !important;
}
/* リンク色 */
.home .wp-block-table.is-style-simple:not(.min_width30_) td a {
    color: #6292a0;
    text-decoration: none;
}
.home .wp-block-table.is-style-simple:not(.min_width30_) td a:hover {
    color: var(--color_main);
    text-decoration: underline;
}
@media (max-width: 599px) {
    .home .wp-block-table.is-style-simple:not(.min_width30_) td {
        padding: 12px 4px;
    }
    .home .wp-block-table.is-style-simple:not(.min_width30_) td:first-child {
        width: 5.5em;
        font-size: 11px;
    }
}

.page-id-167 .swell-block-columns__inner,
.noda-dis-grid .swell-block-columns__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 0;
}
.page-id-167 .swell-block-columns .swell-block-column,
.noda-dis-grid .swell-block-column {
    display: flex;
    flex-direction: column;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid #e3eef1;
    border-radius: 0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .04);
    transition: box-shadow .2s ease, transform .2s ease;
}
.page-id-167 .swell-block-columns .swell-block-column:hover,
.noda-dis-grid .swell-block-column:hover {
    box-shadow: 0 6px 16px rgba(146, 194, 208, .28);
    transform: translateY(-2px);
}
.page-id-167 .swell-block-columns .swell-block-button,
.noda-dis-grid .swell-block-button {
    margin: 0;
    --the-width: 100% !important;
}
.page-id-167 .swell-block-columns .swell-block-button__link,
.noda-dis-grid .swell-block-button .swell-block-button__link {
    width: 100%;
    justify-content: space-between;
    padding: .9em 1em;
    font-weight: 700;
    color: #fff;
    background: var(--color_main);
    border: none;
    border-radius: 8px;
}
.page-id-167 .swell-block-columns .swell-block-button__link:hover,
.noda-dis-grid .swell-block-button .swell-block-button__link:hover {
    background: var(--color_main_dark);
    opacity: 1;
}
.page-id-167 .swell-block-columns .swell-block-button__link .__icon,
.noda-dis-grid .swell-block-button .swell-block-button__link .__icon {
    color: #fff;
}
.noda-dis-grid .swell-block-button .swell-block-button__link .__icon.-right {
    margin-left: auto;
}

.noda-dis-sub {
    margin: 10px 2px 0;
    color: #777;
    font-size: 12px;
    line-height: 1.7;
    letter-spacing: .02em;
}

@media (max-width: 599px) {
    .page-id-167 .swell-block-columns__inner,
    .noda-dis-grid .swell-block-columns__inner {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

.noda-text-panel {
    background: rgba(255, 255, 255, .7);
    padding: 32px 48px;
    border-radius: 6px;
}
@media (max-width: 599px) {
    .noda-text-panel {
        padding: 20px 16px;
    }
}

.c-pageTitle__subTitle.noda-page-en {
    display: inline;
    margin-left: .5em;
    vertical-align: baseline;
    top: 0;
    padding-block: 0;
    line-height: 1;
    font-style: normal;
    font-weight: 400;
    font-size: 15px;
    letter-spacing: .08em;
    color: #fff;
    opacity: .5;
    text-transform: uppercase;
}

.page-id-146 .wp-block-media-text__media img,
.noda-cattop .wp-block-media-text__media img {
    border-radius: 12px;
}

.noda-cattop .wp-block-media-text__media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.noda-cattop .wp-block-media-text__content {
    align-self: stretch;
    display: flex;
    flex-direction: column;
}
.noda-cattop .wp-block-media-text__content > .swell-block-button {
    margin: auto 0 0 auto;
}

.noda-cattop .swell-block-fullWide__inner:has(.noda-feature-grid) {
    --container_size: 1160px !important;
}
.noda-cattop .noda-feature-grid .swell-block-columns__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 0;
    counter-reset: nfeat;
}
.noda-cattop .noda-feature-grid .swell-block-column {
    counter-increment: nfeat;
    position: relative;
    width: auto;
    max-width: none;
    margin: 0;
    background: #fff;
    border: 1px solid #e3eef1;
    border-radius: 10px;
    padding: 42px 24px 26px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .04);
}
.noda-cattop .noda-feature-grid .swell-block-column::before {
    content: counter(nfeat, decimal-leading-zero);
    position: absolute;
    top: -20px;
    left: 24px;
    width: 46px;
    height: 46px;
    display: grid;
    place-content: center;
    background: var(--color_main);
    color: #fff;
    border-radius: 50%;
    font-size: 17px;
    font-weight: 700;
    box-shadow: 0 3px 8px rgba(60, 107, 131, .25);
}
.noda-cattop .noda-feature-grid h3.wp-block-heading {
    margin: 4px 0 12px;
    font-size: 17px !important;
    line-height: 1.5;
    letter-spacing: 0;
    color: #33474f;
}
.noda-cattop .noda-feature-grid p {
    font-size: 14px;
    line-height: 1.85;
    color: #555;
}
@media (max-width: 899px) {
    .noda-cattop .noda-feature-grid .swell-block-columns__inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

/* 関連コラムへのテキストリンク（枠付き・小さめシェブロン・全疾患ページ共通） */
.noda-rel-links,
.noda-treat-links,
.noda-page-links {
    list-style: none;
    margin: 1.3em 0 0;
    padding: 14px 22px 16px;
    background: #f6fafb;
    border: 1px solid #e3eef1;
    border-radius: 8px;
}
.noda-treat-links {
    margin-bottom: 1.8em;
}
.noda-rel-links::before {
    content: "関連コラム";
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--color_main);
    margin-bottom: .5em;
}
.noda-treat-links::before {
    content: "治療方法";
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--color_main);
    margin-bottom: .5em;
}
.noda-page-links::before {
    content: "関連ページ";
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--color_main);
    margin-bottom: .5em;
}
.noda-rel-links li,
.noda-treat-links li,
.noda-page-links li {
    position: relative;
    padding-left: 1.1em;
    margin: .4em 0;
    line-height: 1.55;
}
.noda-rel-links li::before,
.noda-treat-links li::before,
.noda-page-links li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    width: 5px;
    height: 5px;
    border-top: 2px solid var(--color_main);
    border-right: 2px solid var(--color_main);
    transform: rotate(45deg);
}
.noda-rel-links a,
.noda-treat-links a,
.noda-page-links a {
    color: #555;
    text-decoration: none;
    font-size: 14px;
}
.noda-rel-links a:hover,
.noda-treat-links a:hover,
.noda-page-links a:hover {
    color: var(--color_main);
    text-decoration: underline;
}

/* 解説記事一覧（SWELL投稿リスト simple）：日付なし・タイトル色をトップのコラム一覧に合わせる */
body:not(.home) .l-mainContent .p-postList.-type-simple .p-postList__meta {
    display: none;
}
body:not(.home) .l-mainContent .p-postList.-type-simple .p-postList__title {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    color: #6292a0;
}

/* 投稿下部「関連記事」＝カテゴリトップのシンプル一覧に合わせる（サムネ・日付なし、青いタイトル行） */
.p-relatedPosts {
    gap: 0 !important;
    display: block;
}
.p-relatedPosts .p-postList__item {
    width: 100% !important;
    margin: 0 !important;
    display: block;
}
/* カードレイアウト用に隠れていた7・8番目もリストでは表示 */
.p-relatedPosts .p-postList__item:nth-child(7),
.p-relatedPosts .p-postList__item:nth-child(8) {
    display: block;
}
.p-relatedPosts .p-postList__thumb,
.p-relatedPosts .p-postList__meta {
    display: none !important;
}
.p-relatedPosts .p-postList__link {
    display: block;
    padding: 11px 4px;
    border-top: 1px solid #ececec;
}
.p-relatedPosts .p-postList__item:last-child .p-postList__link {
    border-bottom: 1px solid #ececec;
}
.p-relatedPosts .p-postList__body {
    padding: 0;
}
.p-relatedPosts .p-postList__title {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    color: #6292a0;
    margin: 0;
}
.p-relatedPosts .p-postList__link:hover .p-postList__title {
    text-decoration: underline;
}

/* よくみる病気：ボタンの「＞」アイコンを右端に揃える */
.page-id-324 .swell-block-button .swell-block-button__link[data-has-icon] {
    justify-content: space-between;
}
.page-id-324 .swell-block-button__link .__icon.-right {
    margin-left: auto;
}

/* /access/ をトップと同じ幅・配分に */
.page-id-1582 .swell-block-fullWide__inner.l-container {
    --container_size: 1280px;
}
.page-id-1582 .swell-block-fullWide:has(.pc-pipe) .swell-block-columns__inner > .swell-block-column:first-child {
    --clmn-w--pc: 40%;
    --clmn-w--tab: 40%;
}
.page-id-1582 .swell-block-fullWide:has(.pc-pipe) .swell-block-columns__inner > .swell-block-column:nth-child(2) {
    --clmn-w--pc: 60%;
    --clmn-w--tab: 60%;
}
.page-id-1582 .swell-block-fullWide:has(.pc-pipe) .swell-block-column ul.wp-block-list {
    list-style: none;
    padding-left: 0;
}

/* ===== WEB予約ページ（/web/）旧サイト準拠UI ===== */
.bk-news {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff8e1;
    border-radius: 6px;
    padding: 16px 20px;
    margin: 18px 0 24px;
    font-size: 16px;
    color: #333;
    line-height: 1.75;
}
.bk-news-body { flex: 1; }
.bk-news-tag {
    flex-shrink: 0;
    background: #f39c12;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    padding: 3px 10px;
    border-radius: 3px;
    letter-spacing: .5px;
}
.bk-news strong { color: #c0392b; font-weight: bold; }

.bk-q {
    background: #fff;
    border: 1px solid #4892a3;
    border-radius: 8px;
    padding: 18px 24px;
    text-align: center;
    margin: 18px 0 6px;
}
.bk-q .bk-q-text { font-size: 17px; font-weight: bold; color: #333; }
.bk-q .bk-q-hint { font-size: 12px; color: #888; margin-top: 4px; }
.bk-arrow { text-align: center; color: #c8d8de; font-size: 18px; margin: 6px 0 14px; }

.bk-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; }
.bk-card {
    background: #fff;
    border: 1px solid #d8e3e8;
    border-radius: 10px;
    padding: 30px 32px;
    text-align: center;
    display: flex;
    flex-direction: column;
}
.bk-card .bk-cta { margin-top: auto; }
.bk-badge {
    display: inline-block;
    font-size: 14px;
    padding: 5px 14px;
    border-radius: 4px;
    margin-bottom: 12px;
    font-weight: bold;
    letter-spacing: .5px;
    line-height: 1.6;
}
.bk-badge .em, .bk-c-title .em { color: #c00; }
.bk-badge.g { background: #e6f2e9; color: #2f8a4a; }
.bk-badge.b { background: #e6f1f5; color: #4892a3; }
.bk-c-title { font-size: 22px; font-weight: bold; color: #222; margin-bottom: 8px; line-height: 1.5; }
.bk-c-desc { font-size: 15px; color: #555; line-height: 1.75; text-align: left; }
.bk-c-desc .note { color: #222; font-weight: bold; }
.bk-c-desc a { color: #1a0dab; text-decoration: underline; }
.bk-c-ex { font-size: 12px; color: #999; margin: 10px 0 14px; line-height: 1.65; text-align: left; }

.bk-cta {
    display: inline-block;
    font-size: 15px;
    font-weight: bold;
    padding: 13px 30px;
    border-radius: 6px;
    text-decoration: none;
    color: #fff !important;
    margin-top: 14px;
    margin-right: 8px;
    transition: opacity .2s;
}
.bk-cta:hover { opacity: .85; color: #fff !important; text-decoration: none; }
.bk-cta.g { background: #2f8a4a; }
.bk-cta.b { background: #4892a3; }
.bk-cta.gray { background: #888; }

.bk-times { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 14px 0; }
.bk-times h3 { margin-bottom: 14px; font-size: 16px; font-weight: bold; color: #333; padding: 0; border: 0; }
.bk-times h3::before, .bk-times h3::after { content: none !important; }
.bk-times .span02, .bk-times strong { color: #c00; font-weight: bold; }
.bk-times table.web_reserve_table { border-collapse: collapse; width: 100%; table-layout: fixed; }
.bk-times table.web_reserve_table th:first-child { width: 20%; }
.bk-times table.web_reserve_table th:nth-child(2),
.bk-times table.web_reserve_table th:nth-child(3) { width: 40%; }
.bk-times table.web_reserve_table th,
.bk-times table.web_reserve_table td {
    border: 1px solid #d8e3e8;
    padding: 14px 12px;
    text-align: center;
    font-size: 14px;
}
.bk-times table.web_reserve_table th { background: #f4f8fa; font-weight: bold; color: #333; }

.bk-note {
    background: #fef6e6;
    border-radius: 6px;
    padding: 16px 18px;
    font-size: 15px;
    color: #8a6914;
    line-height: 1.85;
    margin: 14px 0;
    text-align: center;
}
.bk-note a { color: #1a0dab; font-weight: bold; text-decoration: underline; font-size: 18px; }

.bk-acc { border: 1px solid #d8e3e8; border-radius: 6px; margin-bottom: 8px; overflow: hidden; }
.bk-acc-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    cursor: pointer;
    background: #f4f8fa;
    user-select: none;
    transition: background .15s;
}
.bk-acc-head:hover { background: #e8eff2; }
.bk-acc-label { font-size: 16px; font-weight: bold; color: #333; line-height: 1.5; }
.bk-acc-arrow { font-size: 13px; color: #888; transition: transform .25s; }
.bk-acc.open .bk-acc-arrow { transform: rotate(180deg); }
.bk-acc-body { display: none; padding: 16px 20px; font-size: 15px; color: #555; line-height: 1.9; background: #fff; }
.bk-acc.open .bk-acc-body { display: block; }
.bk-acc-body strong { font-weight: bold; color: #333; }
.bk-acc-body a { color: #1a0dab; text-decoration: underline; }

.bk-divider { height: 1px; background: #e0e0e0; margin: 28px 0; }

/* WEB予約：お電話セクションの前にだけ区切り線（線と文字の間隔広め） */
.page-id-77 .post_content > .swell-block-fullWide:last-child > .swell-block-fullWide__inner {
    border-top: 1px solid #e0e0e0;
    padding-top: 40px;
}

@media screen and (max-width: 767px) {
    .bk-cards { grid-template-columns: 1fr; }
    .bk-times { grid-template-columns: 1fr; gap: 8px; margin-bottom: 28px; }
    .bk-cta { display: block; margin-right: 0; text-align: center; }
}

/* メインビジュアル左端の英語対応テキスト */
#main_visual { position: relative; }
.noda-mv-en {
    position: absolute;
    left: 24px;
    bottom: 24px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .45);
    line-height: 1.5;
    pointer-events: none;
}
.noda-mv-en__icon {
    flex-shrink: 0;
    width: 2.4em;
    height: 2.4em;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .45));
}
.noda-mv-en__en { display: block; font-size: 15px; font-weight: bold; letter-spacing: .04em; }
.noda-mv-en__ja { display: block; font-size: 11px; }
@media (max-width: 767px) {
    .noda-mv-en { left: 16px; bottom: 14px; }
    .noda-mv-en__en { font-size: 12px; }
    .noda-mv-en__ja { font-size: 10px; }
}

/* 施術ページ冒頭：ストライプ → 落ち着いた枠カードに */
.l-mainContent .is-style-bg_stripe {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .05);
    padding: 28px 32px;
    color: #555;
}
.l-mainContent .is-style-bg_stripe > :last-child { margin-bottom: 0; }
@media (max-width: 599px) {
    .l-mainContent .is-style-bg_stripe { padding: 20px 18px; }
}

/* グローバルナビ ホバー/現在地の背景をメインカラーの薄色に（文字は黒のまま） */
.c-gnav > li:hover > a,
.c-gnav > .-current > a {
    background: rgba(146, 194, 208, 0.12);
    color: #333;
    border-radius: 3px;
}

/* ===== よくある質問（FAQ）アコーディオン＋サイト調デザイン ===== */
/* JS適用済みアイテム(.is-acc)のみ開閉。未適用時は中身が見える＝no-JS/SEO安全 */

/* カード化：白カード＋淡いブランド枠＋角丸＋やわらかい影 */
.swell-block-faq__item.is-acc {
    background-color: #fff;
    border: 1px solid #e3edf0;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 16px;
    box-shadow: 0 2px 10px rgba(60, 107, 131, 0.05);
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}
.swell-block-faq__item.is-acc + .swell-block-faq__item.is-acc {
    margin-top: 0; /* SWELL既定の item間 margin-top を打ち消し（カードのmargin-bottomで統一） */
}
.swell-block-faq__item.is-acc:hover {
    box-shadow: 0 4px 16px rgba(60, 107, 131, 0.10);
    border-color: #cfe0e6;
}

/* 質問（トグル） */
.swell-block-faq__item.is-acc .faq_q {
    position: relative;
    cursor: pointer;
    user-select: none;
    margin: 0;
    padding: 19px 52px 19px 60px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.65;
    color: #33474f;
    background-color: transparent;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.swell-block-faq__item.is-acc .faq_q:hover {
    background-color: rgba(146, 194, 208, 0.07);
}
.swell-block-faq__item.is-acc.is-open .faq_q {
    color: #3c6b83;
}
/* Q バッジ＝ブランド色の塗り円・白文字（col-text の outline を上書き） */
.swell-block-faq .swell-block-faq__item.is-acc .faq_q::before {
    content: "Q";
    position: absolute;
    top: 50%;
    left: 16px;
    bottom: auto;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    border-radius: 50%;
    background-color: #92c2d0;
    color: #fff;
    box-shadow: none;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-size: 15px;
}
/* 開閉シェブロン（右） */
.swell-block-faq__item.is-acc .faq_q::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    width: 9px;
    height: 9px;
    margin-top: -7px;
    border-right: 2px solid #92c2d0;
    border-bottom: 2px solid #92c2d0;
    transform: rotate(45deg);
    transition: transform 0.3s ease;
}
.swell-block-faq__item.is-acc.is-open .faq_q::after {
    transform: rotate(225deg);
    margin-top: -2px;
}

/* 回答：初期は閉じる（高さ0）。is-openで開く。淡いブランドトーン背景で区別 */
.swell-block-faq__item.is-acc .faq_a {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-rows: 0fr;
    margin: 0;
    padding: 0 30px 0 60px;
    background-color: #f6fafb;
    line-height: 1.9;
    color: #555;
    font-size: 15px;
    transition: grid-template-rows 0.32s ease, padding 0.32s ease;
}
.swell-block-faq__item.is-acc.is-open .faq_a {
    grid-template-rows: 1fr;
    padding-top: 18px;
    padding-bottom: 20px;
}
.swell-block-faq__item.is-acc .faq_a .noda-faq-a__body {
    min-height: 0;
    overflow: hidden;
}
.swell-block-faq__item.is-acc .faq_a .noda-faq-a__body > :first-child {
    margin-top: 0;
}
.swell-block-faq__item.is-acc .faq_a .noda-faq-a__body > :last-child {
    margin-bottom: 0;
}
/* A バッジ＝淡いブランド地に深い差し色（col-text の outline を上書き） */
.swell-block-faq .swell-block-faq__item.is-acc .faq_a::before {
    content: "A";
    position: absolute;
    top: 18px;
    left: 16px;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    border-radius: 50%;
    background-color: #e3eff3;
    color: #3c6b83;
    box-shadow: none;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-size: 15px;
}

/* スマホ */
@media (max-width: 600px) {
    .swell-block-faq__item.is-acc .faq_q {
        padding: 16px 44px 16px 52px;
        font-size: 15px;
    }
    .swell-block-faq .swell-block-faq__item.is-acc .faq_q::before,
    .swell-block-faq .swell-block-faq__item.is-acc .faq_a::before {
        width: 26px;
        height: 26px;
        line-height: 26px;
        left: 13px;
        font-size: 13px;
    }
    .swell-block-faq__item.is-acc .faq_q::after {
        right: 16px;
    }
    .swell-block-faq__item.is-acc .faq_a {
        padding-left: 52px;
        padding-right: 18px;
        font-size: 14.5px;
    }
    .swell-block-faq__item.is-acc.is-open .faq_a {
        padding-top: 14px;
        padding-bottom: 16px;
    }
    .swell-block-faq .swell-block-faq__item.is-acc .faq_a::before {
        top: 14px;
    }
}

/* 投稿下部：子カテゴリトップ／親カテゴリへの縦リンク */
.noda-post-catnav {
    margin: 2.5em 0 1em;
}
.noda-post-catnav__ttl {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--color_main);
    margin: 0 0 .6em;
}
.noda-post-catnav__link {
    display: flex;
    align-items: center;
    padding: 14px 18px;
    margin-bottom: 10px;
    background: #f6fafb;
    border: 1px solid #e3eef1;
    border-radius: 8px;
    text-decoration: none;
    color: #333;
    transition: background .2s;
}
.noda-post-catnav__link:hover {
    background: #eef7fa;
}
.noda-post-catnav__name {
    font-weight: 700;
    font-size: 15px;
}
.noda-post-catnav__sub {
    font-size: 12px;
    color: #999;
    margin-left: .8em;
}
.noda-post-catnav__link::after {
    content: "";
    margin-left: auto;
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--color_main);
    border-right: 2px solid var(--color_main);
    transform: rotate(45deg);
}
