@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ - 糖尿病と肥満症のクリニック五反田院
    Version: 2.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
*/

/* =============================================================
 *  GDC = Gotanda Diabetes Clinic — クリニックリブランディング v2
 *
 *  デザインモチーフ: yokohama-mental-clinic.jp
 *  方針:
 *   - 緑系プライマリ ＋ 白基調
 *   - ボーダーは最小限（特に左ボーダーは使わない）
 *   - カードはソフトシャドウのみで分離
 *   - 大きめの余白、丸み、清潔感
 * ============================================================= */

:root {
    --gdc-primary:        #4a7c59;   /* 落ち着いた医療緑 */
    --gdc-primary-dark:   #2f5d3a;
    --gdc-primary-darker: #1f3d26;
    --gdc-primary-light:  #e7f2ec;
    --gdc-primary-bg:     #f4faf6;

    --gdc-accent:         #c19a4b;   /* CTA / アクセント */
    --gdc-accent-dark:    #9a7836;

    --gdc-text:           #2d3748;
    --gdc-text-muted:     #64748b;
    --gdc-text-light:     #94a3b8;

    --gdc-bg:             #ffffff;
    --gdc-bg-soft:        #f8faf9;
    --gdc-border-soft:    #e6ece8;

    --gdc-shadow-sm:      0 1px 2px rgba(15, 35, 22, 0.04);
    --gdc-shadow:         0 4px 16px rgba(15, 35, 22, 0.06);
    --gdc-shadow-lg:      0 12px 32px rgba(15, 35, 22, 0.10);

    --gdc-radius-sm:      6px;
    --gdc-radius:         12px;
    --gdc-radius-lg:      20px;

    --gdc-container:      1100px;

    --gdc-font:
        -apple-system, BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN", "Hiragino Sans",
        "Yu Gothic", "YuGothic", "Meiryo",
        "Helvetica Neue", Arial, sans-serif;
}

/* =============================================================
 *  GLOBAL TYPOGRAPHY (entry-content / post_content)
 * ============================================================= */
body,
.l-content,
.post_content,
.entry-content,
.p-postList {
    font-family: var(--gdc-font);
    color: var(--gdc-text);
}

.post_content,
.entry-content {
    font-size: 16px;
    line-height: 1.95;
    letter-spacing: 0.02em;
}

/* =============================================================
 *  SWELL 既定の .c-pageTitle 装飾（オレンジアクセント等）を完全リセット
 *  特に [data-style="b_bottom"] の float:left と border-bottom:orange
 * ============================================================= */
.c-pageTitle,
.c-pageTitle[data-style],
.c-pageTitle[data-style="b_bottom"],
body .c-pageTitle[data-style="b_bottom"],
.c-pageTitle *,
.c-pageTitle::before,
.c-pageTitle::after,
.c-pageTitle > *::before,
.c-pageTitle > *::after {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}
.c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner,
body .c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner,
.c-pageTitle .c-pageTitle__inner {
    float: none !important;
    border: none !important;
    border-bottom: none !important;
    margin-bottom: 0 !important;
    padding: 0 0 26px !important;
    background: none !important;
    background-color: transparent !important;
}
/* トップタイトルエリア（ページタイトル背景） */
.l-topTitleArea,
.l-topTitleArea::before,
.l-topTitleArea::after {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
}

/* =============================================================
 *  コラム/記事 H1（.c-pageTitle）— 強い存在感のクリニック大見出し
 *  薄緑の帯背景 + 上下の装飾線 + センター揃えで圧倒的な視認性
 * ============================================================= */
.c-pageTitle,
body .c-pageTitle {
    margin: 0 0 56px !important;
    padding: 72px 16px 64px !important;
    text-align: center !important;
    background: linear-gradient(180deg, var(--gdc-primary-bg) 0%, #ffffff 100%) !important;
    background-color: var(--gdc-primary-bg) !important;
    border: none !important;
    border-top: 1px solid var(--gdc-border-soft) !important;
    border-bottom: 1px solid var(--gdc-border-soft) !important;
    position: relative !important;
    font-weight: 700 !important;
    color: var(--gdc-primary-darker) !important;
    font-size: 38px !important;
    line-height: 1.45 !important;
    letter-spacing: 0.06em !important;
}
/* 上部装飾：小さいドット */
.c-pageTitle::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 36px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 8px !important;
    height: 8px !important;
    background: var(--gdc-primary) !important;
    border-radius: 50% !important;
    box-shadow: -20px 0 0 var(--gdc-primary-light), 20px 0 0 var(--gdc-primary-light) !important;
}
.c-pageTitle::after {
    display: none !important;
    content: none !important;
}
.c-pageTitle .c-pageTitle__inner {
    position: relative;
    display: inline-block;
    padding: 0 0 26px !important;
    background: none !important;
    color: var(--gdc-primary-darker) !important;
}
/* タイトル直下の二重線：太い緑 + 細いグレー */
.c-pageTitle .c-pageTitle__inner::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 6px !important;
    transform: translateX(-50%) !important;
    width: 200px !important;
    height: 1px !important;
    background: var(--gdc-border-soft) !important;
    display: block !important;
}
.c-pageTitle .c-pageTitle__inner::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 0 !important;
    transform: translateX(-50%) !important;
    width: 72px !important;
    height: 4px !important;
    background: var(--gdc-primary) !important;
    border-radius: 2px !important;
    display: block !important;
}
@media (max-width: 768px) {
    .c-pageTitle,
    body .c-pageTitle {
        font-size: 24px !important;
        padding: 48px 16px 40px !important;
        margin-bottom: 36px !important;
        letter-spacing: 0.04em !important;
    }
    .c-pageTitle::before {
        top: 24px !important;
        width: 6px !important;
        height: 6px !important;
        box-shadow: -16px 0 0 var(--gdc-primary-light), 16px 0 0 var(--gdc-primary-light) !important;
    }
}

/* =============================================================
 *  コラム/記事 H2 — 見出し感の強いクリニック品位デザイン
 *  薄緑の左サイド背景 + 太め左バー + 大きめフォント + 下線
 * ============================================================= */
.post_content > h2,
body .post_content > h2,
.entry-content > h2 {
    margin: 3.6em 0 1.3em !important;
    padding: 20px 24px 20px 28px !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    color: var(--gdc-primary-darker) !important;
    background: linear-gradient(90deg, var(--gdc-primary-bg) 0%, var(--gdc-primary-bg) 60%, transparent 100%) !important;
    background-color: var(--gdc-primary-bg) !important;
    border: none !important;
    border-bottom: 2px solid var(--gdc-primary) !important;
    line-height: 1.5 !important;
    letter-spacing: 0.03em !important;
    position: relative !important;
}
/* 左端の太めバー（濃緑のグラデーション） */
.post_content > h2::before,
body .post_content > h2::before,
.entry-content > h2::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 6px !important;
    height: auto !important;
    background: linear-gradient(180deg, var(--gdc-primary) 0%, var(--gdc-primary-dark) 100%) !important;
    border-radius: 0 !important;
    display: block !important;
    z-index: 1 !important;
}
.post_content > h2::after,
body .post_content > h2::after,
.entry-content > h2::after {
    display: none !important;
    content: none !important;
}
@media (max-width: 768px) {
    .post_content > h2,
    body .post_content > h2,
    .entry-content > h2 {
        font-size: 20px !important;
        padding: 16px 18px 16px 22px !important;
        margin: 2.6em 0 1.1em !important;
    }
}

/* =============================================================
 *  コラム/記事 H3 — 中程度の存在感（H2 より 1 段軽く）
 *  下線 + 左縦バーでしっかり見出し感
 * ============================================================= */
.post_content > h3,
body .post_content > h3,
.entry-content > h3 {
    margin: 2.6em 0 1.1em !important;
    padding: 4px 0 10px 18px !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--gdc-primary-darker) !important;
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--gdc-border-soft) !important;
    position: relative !important;
    line-height: 1.55 !important;
    letter-spacing: 0.02em !important;
}
.post_content > h3::before,
body .post_content > h3::before,
.entry-content > h3::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 6px !important;
    bottom: auto !important;
    width: 4px !important;
    height: calc(1em + 4px) !important;
    background: var(--gdc-primary) !important;
    border-radius: 2px !important;
    display: block !important;
    z-index: 1 !important;
}
/* H3 下線のアクセント */
.post_content > h3::after,
body .post_content > h3::after,
.entry-content > h3::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    bottom: -1px !important;
    width: 56px !important;
    height: 2px !important;
    background: var(--gdc-primary) !important;
    border-radius: 1px !important;
    display: block !important;
    top: auto !important;
}
@media (max-width: 768px) {
    .post_content > h3,
    body .post_content > h3,
    .entry-content > h3 {
        font-size: 17px !important;
        padding: 3px 0 8px 15px !important;
        margin: 2.2em 0 0.9em !important;
    }
}
.post_content > h4,
.entry-content > h4 {
    margin: 2em 0 0.7em;
    font-size: 17px;
    font-weight: 700;
    color: var(--gdc-text);
    border: none;
    background: none;
}

.post_content > p,
.entry-content > p {
    margin: 0 0 1.4em;
    line-height: 1.95;
}

/* リンクは段落・リスト・テーブル・dd の中のみ下線装飾（カードリンクには適用しない） */
.post_content > p a,
.post_content > ul a,
.post_content > ol a,
.post_content > dl a,
.post_content > table a,
.post_content > blockquote a,
.entry-content > p a,
.entry-content > ul a,
.entry-content > ol a,
.entry-content > dl a,
.entry-content > table a,
.entry-content > blockquote a {
    color: var(--gdc-primary-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}
.post_content > p a:hover,
.post_content > ul a:hover,
.post_content > ol a:hover,
.post_content > dl a:hover,
.post_content > table a:hover,
.post_content > blockquote a:hover,
.entry-content > p a:hover,
.entry-content > ul a:hover,
.entry-content > ol a:hover,
.entry-content > dl a:hover,
.entry-content > table a:hover,
.entry-content > blockquote a:hover {
    color: var(--gdc-accent-dark);
}

/* gdc-* カードリンクは下線を完全無効化 */
.gdc-service, .gdc-service:hover,
.gdc-link-card, .gdc-link-card:hover,
.gdc-news__item, .gdc-news__item:hover,
.gdc-bigcta__btn, .gdc-bigcta__btn:hover,
.gdc-footer__cta, .gdc-footer__cta:hover,
.gdc-hero__btn, .gdc-hero__btn:hover,
.gdc-utility-bar__cta, .gdc-utility-bar__cta:hover,
.gdc-utility-bar__phone, .gdc-utility-bar__phone:hover,
.gdc-reason a, .gdc-reason a:hover {
    text-decoration: none !important;
}

.post_content > ul,
.entry-content > ul,
.post_content > ol,
.entry-content > ol {
    margin: 0 0 1.6em;
    padding-left: 1.4em;
}
.post_content > ul > li,
.entry-content > ul > li {
    margin: 0.4em 0;
    line-height: 1.85;
}
.post_content > ul > li::marker,
.entry-content > ul > li::marker {
    color: var(--gdc-primary);
}

.post_content > dl,
.entry-content > dl {
    margin: 0 0 1.6em;
    padding: 0;
}
.post_content > dl > dt,
.entry-content > dl > dt {
    margin: 1em 0 0.3em;
    font-weight: 700;
    color: var(--gdc-primary-darker);
}
.post_content > dl > dd,
.entry-content > dl > dd {
    margin: 0 0 0.8em 1.2em;
    color: var(--gdc-text);
}

.post_content blockquote,
.entry-content blockquote {
    margin: 1.5em 0;
    padding: 18px 22px;
    background: var(--gdc-primary-bg);
    border: none;
    border-radius: var(--gdc-radius);
    color: var(--gdc-text);
    font-size: 15px;
    line-height: 1.85;
}
.post_content blockquote p:last-child,
.entry-content blockquote p:last-child {
    margin-bottom: 0;
}

.post_content table,
.entry-content table {
    width: 100%;
    margin: 1.5em 0;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--gdc-radius);
    overflow: hidden;
    box-shadow: var(--gdc-shadow-sm);
}
.post_content th,
.entry-content th {
    padding: 14px 16px;
    background: var(--gdc-primary);
    color: #fff;
    font-weight: 600;
    text-align: left;
    border: none;
}
.post_content td,
.entry-content td {
    padding: 14px 16px;
    background: #fff;
    border-top: 1px solid var(--gdc-border-soft);
    border-left: none;
    border-right: none;
}
.post_content tr:nth-child(even) td,
.entry-content tr:nth-child(even) td {
    background: var(--gdc-bg-soft);
}

/* =============================================================
 *  HEADER (SWELL の .l-header に被せる) + ピラー/子ナビ
 * ============================================================= */

/* SWELL 既定の黄色キャッチフレーズバー（.l-header__bar）は独自の
   注釈バナー＋ユーティリティバーと重複するため完全に隠す */
.l-header__bar,
.l-header .l-header__bar,
.l-header__barInner,
.c-catchphrase,
.l-header .c-catchphrase {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.l-header {
    background: #faf6ea !important;
    background-color: #faf6ea !important;
    border-bottom: 1px solid var(--gdc-border-soft);
    box-shadow: 0 1px 0 rgba(0,0,0,0.02);
}
.l-header__inner,
.l-header .l-header__inner {
    background: transparent !important;
}
.l-header a {
    color: var(--gdc-text) !important;
}
.l-header .c-headLogo__link {
    transition: opacity 0.2s;
}
.l-header .c-headLogo__link:hover {
    opacity: 0.85;
}
.l-header .c-gnav {
    --gnav-hover: var(--gdc-primary);
}
.l-header .c-gnav a {
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.04em;
    transition: color 0.2s;
}
.l-header .c-gnav a:hover {
    color: var(--gdc-primary) !important;
}
.l-header .c-gnav > .menu-item:hover > a::after {
    background: var(--gdc-primary);
}
/* ピラー / サブメニュー（SWELL の children を装飾） */
.l-header .c-gnav .sub-menu,
.l-header .c-gnav ul.children {
    background: #ffffff;
    border: 1px solid var(--gdc-border-soft);
    border-radius: var(--gdc-radius);
    box-shadow: var(--gdc-shadow);
    padding: 10px 0;
    min-width: 240px;
}
.l-header .c-gnav .sub-menu .menu-item,
.l-header .c-gnav ul.children .menu-item {
    border: none;
}
.l-header .c-gnav .sub-menu a,
.l-header .c-gnav ul.children a {
    padding: 10px 22px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--gdc-text) !important;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s;
}
.l-header .c-gnav .sub-menu a:hover,
.l-header .c-gnav ul.children a:hover {
    background: var(--gdc-primary-bg);
    color: var(--gdc-primary-dark) !important;
}
/* 親項目に小さな ▼ インジケーター */
.l-header .c-gnav > .menu-item-has-children > a::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 0 6px 2px 0;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.55;
    vertical-align: middle;
}

/* =============================================================
 *  通知バナー（最上部）— 古い fef3c7 系を緑系へ
 * ============================================================= */
.gdc-notice-banner {
    width: 100%;
    background: var(--gdc-primary-bg);
    border-bottom: 1px solid var(--gdc-border-soft);
    color: var(--gdc-primary-darker);
    font-size: 13.5px;
    line-height: 1.7;
}
.gdc-notice-banner__inner {
    max-width: var(--gdc-container);
    margin: 0 auto;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.gdc-notice-banner__icon {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--gdc-primary);
    color: #fff;
    font-weight: 700;
    text-align: center;
    line-height: 20px;
    font-size: 12px;
}
.gdc-notice-banner__text { margin: 0; }
@media (max-width: 600px) {
    .gdc-notice-banner { font-size: 12px; }
    .gdc-notice-banner__inner { padding: 8px 12px; gap: 8px; }
    .gdc-notice-banner__text { text-align: left; }
}

/* =============================================================
 *  HOMEPAGE — Hero（静謐なクリニック風。派手な CTA ボタンは置かない）
 *
 *  SWELL の l-mainContent__inner の max-width に閉じ込められないよう、
 *  100vw の "full-bleed" で画面端まで広げる
 * ============================================================= */
.gdc-hero {
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
    max-width: 100vw;
    padding: 0;
    background:
        linear-gradient(90deg, #ffffff 0%, #ffffff 50%, var(--gdc-primary-bg) 50%, var(--gdc-primary-bg) 100%);
    color: var(--gdc-text);
    text-align: left;
    border: none;
    overflow: hidden;
}
.gdc-hero__inner {
    position: relative;
    max-width: var(--gdc-container);
    margin: 0 auto;
    padding: 80px 28px 90px;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 56px;
    align-items: center;
    text-align: left;
}
.gdc-hero__body,
.gdc-hero__visual {
    position: relative;
    z-index: 1;
}
.gdc-hero__sub {
    margin: 0 0 16px;
    font-size: 12px;
    letter-spacing: 0.3em;
    color: var(--gdc-primary);
    font-weight: 700;
    text-transform: uppercase;
}
.gdc-hero__title,
.gdc-hero__title.gdc-hero__title {
    margin: 0 0 20px;
    padding: 0;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--gdc-primary-darker);
    letter-spacing: 0.03em;
    background: none;
    border: none;
}
.gdc-hero__title::after,
.gdc-hero__title::before {
    display: none !important;
    content: none !important;
}
/* SWELL 既定の .accent（黄マーカー背景）や他の子要素装飾を全て無効化 */
.gdc-hero__title .accent,
.gdc-hero__title span,
.gdc-hero__title strong {
    color: var(--gdc-primary) !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: none !important;
    text-decoration: none !important;
    font-weight: inherit;
    font-style: normal;
}
.gdc-hero__title .accent {
    color: var(--gdc-primary) !important;
}
.gdc-hero__lead {
    margin: 0 0 30px;
    font-size: 15px;
    line-height: 2;
    color: var(--gdc-text);
}
.gdc-hero__meta {
    display: flex;
    gap: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--gdc-border-soft);
    font-size: 13px;
    color: var(--gdc-text-muted);
    flex-wrap: wrap;
}
.gdc-hero__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.gdc-hero__meta-item svg {
    width: 16px;
    height: 16px;
    color: var(--gdc-primary);
    flex-shrink: 0;
}
.gdc-hero__visual {
    aspect-ratio: 4/5;
    background:
        linear-gradient(165deg, rgba(74,124,89,0.05) 0%, rgba(74,124,89,0.18) 100%),
        url("https://images.unsplash.com/photo-1631815587646-b85a1bb027e1?auto=format&fit=crop&w=900&q=80") center/cover no-repeat;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(31, 61, 38, 0.18);
}
@media (max-width: 900px) {
    .gdc-hero__inner {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 56px 20px 64px;
    }
    .gdc-hero__inner::before { display: none; }
    .gdc-hero__title { font-size: 24px; }
    .gdc-hero__visual {
        aspect-ratio: 16/9;
        order: -1;
    }
    .gdc-hero__meta { gap: 14px; font-size: 12px; }
}

/* =============================================================
 *  HOMEPAGE — セクション共通
 * ============================================================= */
.gdc-section {
    padding: 80px 16px;
}
.gdc-section--soft {
    background: var(--gdc-bg-soft);
}
.gdc-section--primary {
    background: var(--gdc-primary-bg);
}
.gdc-section__inner {
    max-width: var(--gdc-container);
    margin: 0 auto;
}
.gdc-section__heading {
    text-align: center;
    margin-bottom: 50px;
}
.gdc-section__eyebrow {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--gdc-primary);
    letter-spacing: 0.25em;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.gdc-section__title,
h2.gdc-section__title {
    font-size: 28px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 14px;
    line-height: 1.5;
    letter-spacing: 0.02em;
    border: none !important;
    background: none !important;
    background-color: transparent !important;
    padding: 0 !important;
}
.gdc-section__title::before,
.gdc-section__title::after {
    display: none !important;
    content: none !important;
}

/* =============================================================
 *  gdc-* 見出し要素 防御的リセット
 *  SWELL / WordPress の既定 h2/h3 装飾（マーカー・下線・ボーダー等）を
 *  全て無効化し、gdc-*独自 CSS のみ効くようにする
 * ============================================================= */
.gdc-hero__title,
.gdc-reason__title,
.gdc-service__title,
.gdc-step__title,
.gdc-bigcta__title,
.gdc-link-card__title,
.gdc-supervision__title,
.gdc-about__title {
    border: none !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    padding: 0 !important;
}
.gdc-hero__title::before,
.gdc-hero__title::after,
.gdc-reason__title::before,
.gdc-reason__title::after,
.gdc-service__title::before,
.gdc-service__title::after,
.gdc-step__title::before,
.gdc-step__title::after,
.gdc-bigcta__title::before,
.gdc-bigcta__title::after,
.gdc-link-card__title::before,
.gdc-link-card__title::after,
.gdc-supervision__title::before,
.gdc-supervision__title::after,
.gdc-about__title::before,
.gdc-about__title::after {
    display: none !important;
    content: none !important;
}
.gdc-section__lead {
    margin: 0 auto;
    max-width: 720px;
    font-size: 15px;
    line-height: 1.95;
    color: var(--gdc-text-muted);
}
@media (max-width: 768px) {
    .gdc-section { padding: 56px 16px; }
    .gdc-section__title { font-size: 22px; }
    .gdc-section__lead { font-size: 14px; }
    .gdc-section__heading { margin-bottom: 36px; }
}

/* =============================================================
 *  HOMEPAGE — 3つの理由（Reasons）
 * ============================================================= */
.gdc-reasons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.gdc-reason {
    background: #fff;
    border-radius: var(--gdc-radius);
    padding: 36px 28px 32px;
    text-align: center;
    box-shadow: var(--gdc-shadow);
    transition: transform 0.25s, box-shadow 0.25s;
}
.gdc-reason:hover {
    transform: translateY(-4px);
    box-shadow: var(--gdc-shadow-lg);
}
.gdc-reason__num {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--gdc-primary);
    margin-bottom: 18px;
}
.gdc-reason__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    background: var(--gdc-primary-bg);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gdc-reason__icon svg {
    width: 32px;
    height: 32px;
    color: var(--gdc-primary);
}
.gdc-reason__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 12px;
    line-height: 1.5;
}
.gdc-reason__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.85;
    color: var(--gdc-text-muted);
}
@media (max-width: 900px) {
    .gdc-reasons { grid-template-columns: 1fr; gap: 20px; }
    .gdc-reason { padding: 30px 22px 26px; }
}

/* =============================================================
 *  HOMEPAGE — 診療内容グリッド
 * ============================================================= */
.gdc-services {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.gdc-service {
    display: flex;
    flex-direction: column;
    padding: 28px 26px;
    background: #fff;
    border-radius: var(--gdc-radius);
    box-shadow: var(--gdc-shadow-sm);
    text-decoration: none;
    color: var(--gdc-text);
    transition: transform 0.2s, box-shadow 0.2s;
    border: 1px solid var(--gdc-border-soft);
}
.gdc-service:hover {
    transform: translateY(-3px);
    box-shadow: var(--gdc-shadow);
    color: var(--gdc-text);
}
.gdc-service__icon {
    width: 48px;
    height: 48px;
    background: var(--gdc-primary-bg);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.gdc-service__icon svg {
    width: 26px;
    height: 26px;
    color: var(--gdc-primary);
}
.gdc-service__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 8px;
}
.gdc-service__text {
    font-size: 13.5px;
    line-height: 1.8;
    color: var(--gdc-text-muted);
    margin: 0 0 14px;
    flex-grow: 1;
}
.gdc-service__more {
    margin-top: auto;
    font-size: 12.5px;
    color: var(--gdc-primary);
    font-weight: 600;
}
.gdc-service__more::after {
    content: " →";
}
@media (max-width: 900px) {
    .gdc-services { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .gdc-services { grid-template-columns: 1fr; }
}

/* =============================================================
 *  HOMEPAGE — 大きな CTA バナー (マンジャロ / オンライン)
 * ============================================================= */
.gdc-bigcta {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 0;
    background: #fff;
    border-radius: var(--gdc-radius-lg);
    overflow: hidden;
    box-shadow: var(--gdc-shadow);
    margin: 0 0 28px;
}
.gdc-bigcta--reverse {
    grid-template-columns: 1fr 1.4fr;
}
.gdc-bigcta--reverse .gdc-bigcta__body { order: 2; }
.gdc-bigcta--reverse .gdc-bigcta__media { order: 1; }
.gdc-bigcta__body {
    padding: 44px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.gdc-bigcta__eyebrow {
    font-size: 12px;
    letter-spacing: 0.2em;
    color: var(--gdc-primary);
    font-weight: 700;
    margin: 0 0 10px;
    text-transform: uppercase;
}
.gdc-bigcta__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 14px;
    line-height: 1.5;
}
.gdc-bigcta__text {
    margin: 0 0 22px;
    font-size: 14.5px;
    line-height: 1.95;
    color: var(--gdc-text);
}
.gdc-bigcta__btn {
    align-self: flex-start;
    display: inline-block;
    padding: 14px 30px;
    background: var(--gdc-primary);
    color: #fff;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s, transform 0.2s;
}
.gdc-bigcta__btn:hover {
    background: var(--gdc-primary-dark);
    color: #fff;
    transform: translateY(-2px);
}
.gdc-bigcta__media {
    background-size: cover;
    background-position: center;
    min-height: 280px;
}
.gdc-bigcta__media--mounjaro {
    background-image:
        linear-gradient(135deg, rgba(74,124,89,0.15), rgba(74,124,89,0.55)),
        url("https://images.unsplash.com/photo-1559757148-5c350d0d3c56?auto=format&fit=crop&w=900&q=80");
}
.gdc-bigcta__media--online {
    background-image:
        linear-gradient(135deg, rgba(74,124,89,0.15), rgba(74,124,89,0.55)),
        url("https://images.unsplash.com/photo-1576091160550-2173dba999ef?auto=format&fit=crop&w=900&q=80");
}
@media (max-width: 768px) {
    .gdc-bigcta,
    .gdc-bigcta--reverse {
        grid-template-columns: 1fr;
    }
    .gdc-bigcta--reverse .gdc-bigcta__body { order: 2; }
    .gdc-bigcta--reverse .gdc-bigcta__media { order: 1; }
    .gdc-bigcta__body { padding: 32px 24px; }
    .gdc-bigcta__title { font-size: 20px; }
    .gdc-bigcta__media { min-height: 200px; }
}

/* =============================================================
 *  HOMEPAGE — アクセス
 * ============================================================= */
.gdc-access {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: center;
    background: #fff;
    border-radius: var(--gdc-radius-lg);
    padding: 40px;
    box-shadow: var(--gdc-shadow);
}
.gdc-access__info p {
    margin: 0 0 10px;
    font-size: 14.5px;
    line-height: 1.85;
    color: var(--gdc-text);
}
.gdc-access__info strong {
    display: block;
    font-size: 18px;
    color: var(--gdc-primary-darker);
    margin-bottom: 8px;
}
.gdc-access__map {
    width: 100%;
    aspect-ratio: 4/3;
    border-radius: var(--gdc-radius);
    background:
        linear-gradient(135deg, var(--gdc-primary-bg), #d3e6da);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gdc-primary-dark);
    font-size: 13px;
}
@media (max-width: 768px) {
    .gdc-access { grid-template-columns: 1fr; padding: 28px 22px; gap: 24px; }
}

/* =============================================================
 *  HOMEPAGE — 新着コラム
 * ============================================================= */
.gdc-news {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.gdc-news__item {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--gdc-radius);
    overflow: hidden;
    box-shadow: var(--gdc-shadow-sm);
    text-decoration: none;
    color: var(--gdc-text);
    transition: transform 0.2s, box-shadow 0.2s;
}
.gdc-news__item:hover {
    transform: translateY(-3px);
    box-shadow: var(--gdc-shadow);
}
.gdc-news__thumb {
    width: 100%;
    aspect-ratio: 16/10;
    background: var(--gdc-primary-bg);
    background-size: cover;
    background-position: center;
}
.gdc-news__body {
    padding: 18px 20px 22px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.gdc-news__date {
    font-size: 12px;
    color: var(--gdc-text-light);
    margin: 0 0 6px;
}
.gdc-news__title {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 10px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gdc-news__cat {
    margin-top: auto;
    font-size: 11.5px;
    color: var(--gdc-primary);
    font-weight: 600;
}
@media (max-width: 900px) {
    .gdc-news { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .gdc-news { grid-template-columns: 1fr; }
}

/* =============================================================
 *  ショートコード共通: クイックインフォ
 * ============================================================= */
.gdc-quick-info {
    margin: 36px 0 20px;
    padding: 28px 32px;
    background: var(--gdc-primary-bg);
    border-radius: var(--gdc-radius);
    border: none;
}
.gdc-quick-info__title {
    font-size: 17px;
    margin: 0 0 12px;
    color: var(--gdc-primary-darker);
    font-weight: 700;
    border: none;
    padding: 0;
}
.gdc-quick-info p {
    margin: 4px 0;
    font-size: 14px;
    line-height: 1.85;
    color: var(--gdc-text);
}
.gdc-quick-info__phone a {
    color: var(--gdc-primary-dark);
    text-decoration: underline;
    font-weight: 700;
}

/* =============================================================
 *  ショートコード共通: 関連ページリンクカード
 * ============================================================= */
.gdc-link-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 18px;
    margin: 28px 0;
}
.gdc-link-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px 24px;
    background: #fff;
    border-radius: var(--gdc-radius);
    border: none;
    box-shadow: var(--gdc-shadow-sm);
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s, box-shadow 0.2s;
}
.gdc-link-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--gdc-shadow);
    color: inherit;
}
.gdc-link-card__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    line-height: 1.5;
}
.gdc-link-card__excerpt {
    font-size: 13px;
    color: var(--gdc-text-muted);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gdc-link-card__more {
    font-size: 12px;
    color: var(--gdc-primary);
    margin-top: auto;
    font-weight: 600;
}

/* =============================================================
 *  限定解除セクション（mounjaro 末尾）
 * ============================================================= */
.gdc-disclaimer {
    margin: 50px 0 24px;
    padding: 30px 32px;
    background: var(--gdc-bg-soft);
    border: none;
    border-radius: var(--gdc-radius);
}
.gdc-disclaimer__title {
    font-size: 18px;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border: none;
    border-bottom: 2px solid var(--gdc-primary);
    color: var(--gdc-primary-darker);
    font-weight: 700;
}
.gdc-disclaimer__lead {
    margin: 0 0 18px;
    font-size: 13.5px;
    line-height: 1.85;
    color: var(--gdc-text-muted);
}
.gdc-disclaimer__list {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.gdc-disclaimer__row {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 12px 18px;
    padding: 12px 0;
    border-top: 1px solid var(--gdc-border-soft);
    font-size: 13px;
    line-height: 1.85;
}
.gdc-disclaimer__row:first-child { border-top: none; }
.gdc-disclaimer__row dt {
    font-weight: 700;
    color: var(--gdc-primary-dark);
}
.gdc-disclaimer__row dd {
    margin: 0;
    color: var(--gdc-text);
}
@media (max-width: 600px) {
    .gdc-disclaimer { padding: 22px 18px; }
    .gdc-disclaimer__row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* =============================================================
 *  記事末尾の免責文（左ボーダーは使わない、ソフトな箱）
 * ============================================================= */
.gdc-disclaimer-note {
    margin: 32px 0 0;
    padding: 16px 22px;
    background: var(--gdc-bg-soft);
    border: 1px solid var(--gdc-border-soft);
    border-radius: var(--gdc-radius);
    font-size: 12.5px;
    line-height: 1.8;
    color: var(--gdc-text-muted);
}

/* =============================================================
 *  FOOTER (.l-footer 上書き)
 * ============================================================= */
.l-footer {
    background: var(--gdc-primary-darker) !important;
    color: rgba(255,255,255,0.85) !important;
    padding-top: 48px;
    padding-bottom: 0;
    border-top: none;
}
.l-footer a {
    color: rgba(255,255,255,0.85) !important;
    text-decoration: none;
}
.l-footer a:hover {
    color: #fff !important;
    text-decoration: underline;
}
.l-footer .l-footer__inner {
    max-width: var(--gdc-container);
    margin: 0 auto;
    padding: 0 16px;
}
.l-footer .l-footer__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
    justify-content: center;
    padding: 24px 0 16px;
    border-top: 1px solid rgba(255,255,255,0.10);
    margin-top: 28px;
    list-style: none;
}
.l-footer .l-footer__nav li { font-size: 13px; }
.l-footer .copyright {
    text-align: center;
    padding: 18px 0 28px;
    font-size: 11.5px;
    color: rgba(255,255,255,0.55);
    border-top: 1px solid rgba(255,255,255,0.08);
    margin-top: 8px;
}

/* =============================================================
 *  クリニック情報パネル（フッター直前、wp_footer 出力）
 *  古い灰色版を緑系・カードシャドウなしのフラットに刷新
 * ============================================================= */
.gdc-clinic-info {
    background: #fff;
    border-top: 1px solid var(--gdc-border-soft);
    color: var(--gdc-text);
    font-size: 14px;
    line-height: 1.85;
    padding: 60px 16px 50px;
}
.gdc-clinic-info__inner {
    max-width: var(--gdc-container);
    margin: 0 auto;
}
.gdc-clinic-info__title {
    font-size: 22px;
    margin: 0 0 28px;
    padding: 0 0 16px;
    text-align: center;
    border: none;
    border-bottom: 2px solid var(--gdc-primary);
    color: var(--gdc-primary-darker);
    font-weight: 700;
    letter-spacing: 0.02em;
}
.gdc-clinic-info__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 36px;
    max-width: 880px;
    margin: 0 auto;
}
.gdc-clinic-info__row {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 8px 16px;
    padding: 14px 0;
    border-bottom: 1px solid var(--gdc-border-soft);
}
.gdc-clinic-info__row dt {
    font-weight: 700;
    color: var(--gdc-primary-dark);
    font-size: 13px;
}
.gdc-clinic-info__row dd {
    margin: 0;
    color: var(--gdc-text);
    font-size: 14px;
}
.gdc-clinic-info__row a {
    color: var(--gdc-primary-dark);
    text-decoration: underline;
}
.gdc-clinic-info__access {
    display: inline-block;
    margin-top: 4px;
    font-size: 12.5px;
    color: var(--gdc-text-muted);
}
.gdc-clinic-info__notice {
    margin: 24px auto 0;
    max-width: 880px;
    font-size: 12px;
    color: var(--gdc-text-muted);
    text-align: center;
}
@media (max-width: 768px) {
    .gdc-clinic-info { padding: 44px 16px 36px; }
    .gdc-clinic-info__title { font-size: 18px; margin-bottom: 22px; }
    .gdc-clinic-info__list {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .gdc-clinic-info__row {
        grid-template-columns: 1fr;
        gap: 2px;
        padding: 12px 0;
    }
    .gdc-clinic-info__row dt { font-size: 11.5px; color: var(--gdc-text-muted); }
}

/* =============================================================
 *  ARCHIVE / コラム一覧の SWELL 既存カード調整
 * ============================================================= */
.p-postList__title { color: var(--gdc-primary-darker); }
.c-postThumb__cat,
.c-postTimes { font-size: 12px; }
.c-postTimes time { color: var(--gdc-text-muted); }


/* =============================================================
 *  ★ DESIGN EXTENSION v2 ★
 *  以下、ヘッダーユーティリティバー / フッター 4 カラム /
 *  フローティング CTA / 症状チェック / 治療フロー / 料金 /
 *  FAQ アコーディオン / SVG ディバイダー
 * ============================================================= */

/* ----- トップユーティリティバー（注釈バナーの直下に出る）----- */
.gdc-utility-bar {
    background: #fff;
    color: var(--gdc-text);
    border-bottom: 1px solid var(--gdc-border-soft);
    font-size: 13px;
    line-height: 1.6;
}
.gdc-utility-bar__inner {
    max-width: var(--gdc-container);
    margin: 0 auto;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.gdc-utility-bar__brand {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.gdc-utility-bar__icon {
    color: var(--gdc-primary);
    display: inline-flex;
    width: 18px;
    height: 18px;
}
.gdc-utility-bar__icon svg { width: 100%; height: 100%; }
.gdc-utility-bar__name {
    font-weight: 700;
    color: var(--gdc-primary-darker);
}
.gdc-utility-bar__loc {
    color: var(--gdc-text-muted);
    font-size: 12px;
}
.gdc-utility-bar__actions {
    display: flex;
    align-items: center;
    gap: 14px;
}
.gdc-utility-bar__phone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: var(--gdc-primary-dark);
    text-decoration: none;
}
.gdc-utility-bar__phone svg { width: 14px; height: 14px; }
.gdc-utility-bar__cta {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    background: var(--gdc-primary);
    color: #fff;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s;
}
.gdc-utility-bar__cta:hover {
    background: var(--gdc-primary-dark);
    color: #fff;
}
@media (max-width: 768px) {
    .gdc-utility-bar { display: none; } /* スマホでは省略、フローティング CTA に集約 */
}

/* ----- フローティング CTA（右下固定）----- */
.gdc-floating-cta {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 999;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 22px 14px 18px;
    background: var(--gdc-accent);
    color: #fff;
    border-radius: 999px;
    text-decoration: none;
    box-shadow: 0 10px 30px rgba(193, 154, 75, 0.45),
                0 4px 12px rgba(0, 0, 0, 0.12);
    transition: transform 0.2s, box-shadow 0.2s;
}
.gdc-floating-cta:hover {
    transform: translateY(-3px);
    color: #fff;
    box-shadow: 0 14px 36px rgba(193, 154, 75, 0.55),
                0 6px 16px rgba(0, 0, 0, 0.15);
}
.gdc-floating-cta__icon {
    display: inline-flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
}
.gdc-floating-cta__icon svg { width: 100%; height: 100%; }
.gdc-floating-cta__label {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    text-align: left;
}
.gdc-floating-cta__sub {
    font-size: 10px;
    letter-spacing: 0.1em;
    opacity: 0.9;
}
.gdc-floating-cta__main {
    font-size: 13.5px;
    font-weight: 700;
}
@media (max-width: 768px) {
    .gdc-floating-cta {
        right: 12px;
        bottom: 12px;
        padding: 12px 18px 12px 16px;
    }
    .gdc-floating-cta__main { font-size: 12.5px; }
    .gdc-floating-cta__icon { width: 22px; height: 22px; }
}

/* ----- フッター 4 カラム（parts/footer/footer_contents.php override）----- */
.gdc-footer {
    color: rgba(255,255,255,0.85);
    padding: 0 16px;
}
.gdc-footer__grid {
    max-width: var(--gdc-container);
    margin: 0 auto;
    padding: 56px 0 36px;
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: 36px 30px;
}
.gdc-footer__col {}
.gdc-footer__brand {
    margin: 0 0 12px;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
}
.gdc-footer__tagline {
    margin: 0 0 18px;
    font-size: 13px;
    line-height: 1.85;
    color: rgba(255,255,255,0.7);
}
.gdc-footer__address {
    margin: 0 0 14px;
    font-style: normal;
    font-size: 13px;
    line-height: 1.85;
    color: rgba(255,255,255,0.85);
}
.gdc-footer__access {
    color: rgba(255,255,255,0.65);
    font-size: 12px;
}
.gdc-footer__phone a {
    display: inline-block;
    font-size: 18px;
    font-weight: 700;
    color: #fff !important;
    text-decoration: none;
}
.gdc-footer__heading {
    margin: 0 0 16px;
    padding: 0 0 10px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.06em;
    border-bottom: 1px solid rgba(255,255,255,0.18);
}
.gdc-footer__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.gdc-footer__list li {
    margin: 0 0 10px;
    font-size: 13px;
}
.gdc-footer__list a {
    color: rgba(255,255,255,0.78) !important;
    text-decoration: none;
    transition: color 0.2s;
}
.gdc-footer__list a:hover {
    color: #fff !important;
}
.gdc-footer__hours {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    color: rgba(255,255,255,0.85);
    margin: 0 0 18px;
}
.gdc-footer__hours th,
.gdc-footer__hours td {
    padding: 6px 4px;
    border: none;
    text-align: left;
}
.gdc-footer__hours th {
    font-weight: 700;
    width: 32px;
    color: #fff;
}
.gdc-footer__hours-todo {
    font-size: 12px;
    color: rgba(255,255,255,0.55);
    margin: 0 0 18px;
}
.gdc-footer__cta {
    display: inline-block;
    padding: 11px 20px;
    background: var(--gdc-accent);
    color: #fff !important;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s;
}
.gdc-footer__cta:hover {
    background: var(--gdc-accent-dark);
}

.gdc-footer__bottom {
    border-top: 1px solid rgba(255,255,255,0.10);
    padding: 22px 0 30px;
}
.gdc-footer__bottom .l-container {
    max-width: var(--gdc-container);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 0 16px;
}
.gdc-footer__bottom .copyright {
    margin: 0;
    font-size: 11.5px;
    color: rgba(255,255,255,0.55);
}
.gdc-footer__legal {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 22px;
}
.gdc-footer__legal a {
    font-size: 11.5px;
    color: rgba(255,255,255,0.55) !important;
    text-decoration: none;
}
.gdc-footer__legal a:hover { color: #fff !important; }
@media (max-width: 900px) {
    .gdc-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 36px 24px;
    }
}
@media (max-width: 600px) {
    .gdc-footer__grid {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 40px 0 24px;
    }
    .gdc-footer__bottom .l-container {
        flex-direction: column;
        gap: 10px;
    }
}

/* ----- SVG セクションディバイダー（波）----- */
.gdc-divider {
    position: relative;
    width: 100%;
    height: 60px;
    overflow: hidden;
    line-height: 0;
}
.gdc-divider svg {
    position: absolute;
    width: 100%;
    height: 100%;
}
.gdc-divider--soft-to-white path { fill: #fff; }
.gdc-divider--white-to-soft path { fill: var(--gdc-bg-soft); }
.gdc-divider--soft-to-primary path { fill: var(--gdc-primary-bg); }

/* ----- 症状チェック（カードリスト）----- */
.gdc-symptoms {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.gdc-symptoms__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 22px 24px;
    background: #fff;
    border-radius: var(--gdc-radius);
    box-shadow: var(--gdc-shadow-sm);
    transition: transform 0.2s, box-shadow 0.2s;
}
.gdc-symptoms__item:hover {
    transform: translateY(-2px);
    box-shadow: var(--gdc-shadow);
}
.gdc-symptoms__check {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--gdc-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}
.gdc-symptoms__check::before {
    content: "✓";
    font-size: 14px;
    font-weight: 700;
}
.gdc-symptoms__text {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--gdc-text);
}
@media (max-width: 600px) {
    .gdc-symptoms { grid-template-columns: 1fr; gap: 12px; }
    .gdc-symptoms__item { padding: 18px 20px; }
}

/* ----- 治療の流れ（4 ステップ）----- */
.gdc-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    position: relative;
}
.gdc-steps::before {
    content: "";
    position: absolute;
    top: 36px;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: repeating-linear-gradient(
        to right,
        var(--gdc-primary-light) 0,
        var(--gdc-primary-light) 6px,
        transparent 6px,
        transparent 12px
    );
    z-index: 0;
}
.gdc-step {
    position: relative;
    z-index: 1;
    text-align: center;
}
.gdc-step__num {
    width: 72px;
    height: 72px;
    margin: 0 auto 18px;
    background: #fff;
    border: 3px solid var(--gdc-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    color: var(--gdc-primary);
    box-shadow: var(--gdc-shadow-sm);
}
.gdc-step__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 10px;
}
.gdc-step__text {
    margin: 0;
    font-size: 13px;
    line-height: 1.8;
    color: var(--gdc-text-muted);
}
@media (max-width: 768px) {
    .gdc-steps { grid-template-columns: 1fr 1fr; gap: 30px 16px; }
    .gdc-steps::before { display: none; }
}
@media (max-width: 480px) {
    .gdc-steps { grid-template-columns: 1fr; }
}

/* ----- 料金プレビュー ----- */
.gdc-pricing {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.gdc-pricing__card {
    background: #fff;
    border-radius: var(--gdc-radius);
    padding: 32px 28px;
    box-shadow: var(--gdc-shadow);
    text-align: center;
    transition: transform 0.25s, box-shadow 0.25s;
}
.gdc-pricing__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--gdc-shadow-lg);
}
.gdc-pricing__card--featured {
    background: linear-gradient(180deg, var(--gdc-primary) 0%, var(--gdc-primary-dark) 100%);
    color: #fff;
}
.gdc-pricing__card--featured .gdc-pricing__name,
.gdc-pricing__card--featured .gdc-pricing__price,
.gdc-pricing__card--featured .gdc-pricing__feat li {
    color: #fff;
}
.gdc-pricing__badge {
    display: inline-block;
    margin: 0 0 8px;
    padding: 4px 12px;
    background: var(--gdc-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    letter-spacing: 0.05em;
}
.gdc-pricing__name {
    font-size: 18px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 12px;
}
.gdc-pricing__price {
    font-size: 30px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 6px;
    line-height: 1.2;
}
.gdc-pricing__price small {
    font-size: 13px;
    font-weight: 500;
    color: var(--gdc-text-muted);
    margin-left: 4px;
}
.gdc-pricing__card--featured .gdc-pricing__price small { color: rgba(255,255,255,0.8); }
.gdc-pricing__period {
    font-size: 12px;
    color: var(--gdc-text-muted);
    margin: 0 0 18px;
}
.gdc-pricing__card--featured .gdc-pricing__period { color: rgba(255,255,255,0.75); }
.gdc-pricing__feat {
    list-style: none;
    margin: 0 0 22px;
    padding: 16px 0;
    border-top: 1px solid var(--gdc-border-soft);
    border-bottom: 1px solid var(--gdc-border-soft);
    text-align: left;
}
.gdc-pricing__card--featured .gdc-pricing__feat {
    border-color: rgba(255,255,255,0.20);
}
.gdc-pricing__feat li {
    margin: 8px 0;
    font-size: 13px;
    color: var(--gdc-text);
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.gdc-pricing__feat li::before {
    content: "✓";
    color: var(--gdc-primary);
    font-weight: 700;
    flex-shrink: 0;
}
.gdc-pricing__card--featured .gdc-pricing__feat li::before { color: var(--gdc-accent); }
.gdc-pricing__note {
    font-size: 11px;
    color: var(--gdc-text-light);
    margin: 0;
}
.gdc-pricing__card--featured .gdc-pricing__note { color: rgba(255,255,255,0.65); }
@media (max-width: 900px) {
    .gdc-pricing { grid-template-columns: 1fr; gap: 20px; }
}

/* ----- FAQ アコーディオン（CSS only、<details>使用） ----- */
.gdc-faq {
    max-width: 820px;
    margin: 0 auto;
}
.gdc-faq__item {
    background: #fff;
    border-radius: var(--gdc-radius);
    box-shadow: var(--gdc-shadow-sm);
    margin-bottom: 14px;
    overflow: hidden;
}
.gdc-faq__item summary {
    list-style: none;
    cursor: pointer;
    padding: 22px 26px;
    font-size: 15px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    display: flex;
    align-items: center;
    gap: 14px;
    position: relative;
}
.gdc-faq__item summary::-webkit-details-marker { display: none; }
.gdc-faq__q-mark {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    background: var(--gdc-primary);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
}
.gdc-faq__item summary::after {
    content: "+";
    position: absolute;
    right: 26px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    font-weight: 300;
    color: var(--gdc-primary);
    transition: transform 0.2s;
    line-height: 1;
}
.gdc-faq__item[open] summary::after {
    content: "−";
}
.gdc-faq__body {
    padding: 0 26px 24px 72px;
    font-size: 14px;
    line-height: 1.95;
    color: var(--gdc-text);
}
.gdc-faq__body p { margin: 0; }
@media (max-width: 600px) {
    .gdc-faq__item summary {
        padding: 18px 22px;
        font-size: 14px;
    }
    .gdc-faq__body {
        padding: 0 22px 20px 22px;
        font-size: 13.5px;
    }
}

/* ----- ヘッダーの拡張（ロゴ周り、フィックス対応）----- */
.l-header__inner {
    padding-top: 14px;
    padding-bottom: 14px;
}
.c-headLogo__link img {
    max-height: 56px;
    width: auto;
}

/* ----- ボディに右下パディング追加（フローティング CTA に被らないよう）----- */
body { padding-bottom: 0; }
@media (max-width: 768px) {
    .l-footer { padding-bottom: 80px !important; }
}

/* ----- 見出し下の小さな飾り点（セクション ヘディング 強調用）----- */
.gdc-section__heading::after {
    content: "";
    display: block;
    width: 50px;
    height: 3px;
    background: var(--gdc-primary);
    border-radius: 2px;
    margin: 18px auto 0;
}


/* =============================================================
 *  ★ DESIGN EXTENSION v3 — front-page.php 専用セクション ★
 * ============================================================= */

/* front-page.php のメインラッパー（SWELL の max-width 制約をバイパス） */
.l-front,
.gdc-front {
    overflow: hidden;
    max-width: 100% !important;
    width: 100%;
    padding: 0 !important;
    margin: 0 auto;
}
.gdc-front__content {
    max-width: 100% !important;
    width: 100%;
    padding: 0 !important;
    margin: 0;
}
.gdc-front .l-mainContent__inner,
.gdc-front__content > *:not(.gdc-section):not(.gdc-hero):not(.gdc-divider):not(.gdc-contact-cta):not(.gdc-news-bar) {
    /* gdc-* セクション以外は中央寄せ */
}

/* ----- HERO 拡張版（v3）----- */
.gdc-hero--v3 {
    position: relative;
    margin: 0;
    padding: 110px 16px 130px;
    background:
        linear-gradient(135deg, rgba(31,61,38,0.88) 0%, rgba(74,124,89,0.78) 100%),
        url("https://images.unsplash.com/photo-1631815587646-b85a1bb027e1?auto=format&fit=crop&w=1800&q=80") center/cover no-repeat;
    color: #fff;
    text-align: left;
    overflow: hidden;
}
.gdc-hero--v3::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 25% 30%, rgba(255,255,255,0.10), transparent 60%),
        radial-gradient(circle at 80% 70%, rgba(193,154,75,0.15), transparent 50%);
    pointer-events: none;
}
.gdc-hero--v3 .gdc-hero__inner {
    position: relative;
    max-width: var(--gdc-container);
    margin: 0 auto;
    text-align: left;
}
.gdc-hero--v3 .gdc-hero__sub {
    color: var(--gdc-accent);
    font-size: 13px;
    letter-spacing: 0.25em;
    margin: 0 0 18px;
}
.gdc-hero--v3 .gdc-hero__title {
    font-size: 42px;
    line-height: 1.45;
    margin: 0 0 24px;
    max-width: 820px;
}
.gdc-hero--v3 .gdc-hero__lead {
    font-size: 16px;
    line-height: 2;
    max-width: 640px;
    margin: 0 0 36px;
    color: rgba(255,255,255,0.92);
}
.gdc-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 36px;
}
.gdc-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
}
.gdc-hero__btn--primary {
    background: var(--gdc-accent);
    color: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,0.20);
}
.gdc-hero__btn--primary:hover {
    background: var(--gdc-accent-dark);
    color: #fff;
    transform: translateY(-2px);
}
.gdc-hero__btn--ghost {
    background: rgba(255,255,255,0.10);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.35);
    backdrop-filter: blur(4px);
}
.gdc-hero__btn--ghost:hover {
    background: rgba(255,255,255,0.18);
    color: #fff;
}
.gdc-hero__btn svg { width: 16px; height: 16px; }

.gdc-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    padding-top: 30px;
    border-top: 1px solid rgba(255,255,255,0.15);
}
.gdc-hero__badge {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,0.92);
    font-size: 13px;
}
.gdc-hero__badge svg {
    width: 22px;
    height: 22px;
    color: var(--gdc-accent);
    flex-shrink: 0;
}
@media (max-width: 768px) {
    .gdc-hero--v3 { padding: 70px 16px 80px; }
    .gdc-hero--v3 .gdc-hero__title { font-size: 25px; }
    .gdc-hero--v3 .gdc-hero__lead { font-size: 14px; }
    .gdc-hero__btn { padding: 14px 24px; font-size: 13px; }
    .gdc-hero__badges { gap: 14px; padding-top: 22px; }
    .gdc-hero__badge { font-size: 12px; }
}

/* ----- お知らせバー (NEWS) ----- */
.gdc-news-bar {
    background: #fff;
    border-bottom: 1px solid var(--gdc-border-soft);
    padding: 22px 16px;
}
.gdc-news-bar__inner {
    max-width: var(--gdc-container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 130px 1fr auto;
    gap: 24px;
    align-items: center;
}
.gdc-news-bar__label {
    background: var(--gdc-primary);
    color: #fff;
    text-align: center;
    padding: 10px 0;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
}
.gdc-news-bar__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.gdc-news-bar__list li {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 4px 0;
}
.gdc-news-bar__list time {
    flex-shrink: 0;
    font-size: 12px;
    color: var(--gdc-text-muted);
    font-variant-numeric: tabular-nums;
}
.gdc-news-bar__list a {
    font-size: 14px;
    color: var(--gdc-text);
    text-decoration: none;
    line-height: 1.6;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gdc-news-bar__list a:hover { color: var(--gdc-primary); }
.gdc-news-bar__more {
    font-size: 12px;
    color: var(--gdc-primary);
    font-weight: 700;
    text-decoration: none;
}
.gdc-news-bar__more::after { content: " →"; }
@media (max-width: 768px) {
    .gdc-news-bar__inner {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .gdc-news-bar__label { padding: 6px 0; }
    .gdc-news-bar__list a { white-space: normal; }
}

/* ----- ABOUT クリニック（テキスト + 画像）----- */
.gdc-about {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
.gdc-about__media {
    position: relative;
    aspect-ratio: 4/3;
    background-size: cover;
    background-position: center;
    border-radius: var(--gdc-radius-lg);
    overflow: hidden;
    box-shadow: var(--gdc-shadow-lg);
}
.gdc-about__media::before {
    content: "";
    position: absolute;
    top: -20px;
    left: -20px;
    right: 30px;
    bottom: 30px;
    background: var(--gdc-primary-bg);
    border-radius: var(--gdc-radius-lg);
    z-index: -1;
}
.gdc-about__body {
    padding: 0;
}
.gdc-about__eyebrow {
    font-size: 12px;
    font-weight: 700;
    color: var(--gdc-primary);
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin: 0 0 14px;
}
.gdc-about__title {
    font-size: 30px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 22px;
    line-height: 1.5;
}
.gdc-about__text {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 2;
    color: var(--gdc-text);
}
.gdc-about__sign {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--gdc-border-soft);
    font-size: 13px;
    color: var(--gdc-text-muted);
}
.gdc-about__sign strong {
    display: block;
    font-size: 16px;
    color: var(--gdc-primary-darker);
    margin-top: 4px;
}
@media (max-width: 900px) {
    .gdc-about { grid-template-columns: 1fr; gap: 40px; }
    .gdc-about__title { font-size: 22px; }
    .gdc-about__media::before { display: none; }
}

/* ----- FACILITY 院内ギャラリー ----- */
.gdc-facility {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.gdc-facility__item {
    position: relative;
    aspect-ratio: 4/3;
    border-radius: var(--gdc-radius);
    background-size: cover;
    background-position: center;
    box-shadow: var(--gdc-shadow);
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
}
.gdc-facility__item:hover {
    transform: scale(1.02);
    box-shadow: var(--gdc-shadow-lg);
}
.gdc-facility__item::after {
    content: attr(data-label);
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 16px 18px 14px;
    background: linear-gradient(transparent, rgba(0,0,0,0.65));
    color: #fff;
    font-size: 13px;
    font-weight: 600;
}
@media (max-width: 768px) {
    .gdc-facility { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .gdc-facility { grid-template-columns: 1fr; }
}

/* ----- STATS 数字で見るクリニック ----- */
.gdc-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.gdc-stat {
    background: #fff;
    border-radius: var(--gdc-radius);
    padding: 36px 22px 32px;
    text-align: center;
    box-shadow: var(--gdc-shadow);
    position: relative;
    overflow: hidden;
}
.gdc-stat::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--gdc-primary), var(--gdc-accent));
}
.gdc-stat__icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gdc-primary);
}
.gdc-stat__icon svg { width: 100%; height: 100%; }
.gdc-stat__num {
    font-size: 38px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    line-height: 1;
    margin: 0 0 4px;
}
.gdc-stat__num small {
    font-size: 16px;
    margin-left: 4px;
    font-weight: 500;
    color: var(--gdc-text-muted);
}
.gdc-stat__label {
    font-size: 13px;
    color: var(--gdc-text-muted);
    margin: 8px 0 0;
}
@media (max-width: 768px) {
    .gdc-stats { grid-template-columns: 1fr 1fr; gap: 16px; }
    .gdc-stat { padding: 28px 16px 24px; }
    .gdc-stat__num { font-size: 30px; }
}

/* ----- 大型 CONTACT CTA（フッター直前）----- */
.gdc-contact-cta {
    position: relative;
    padding: 100px 16px;
    background:
        linear-gradient(135deg, rgba(31,61,38,0.92) 0%, rgba(74,124,89,0.85) 100%),
        url("https://images.unsplash.com/photo-1576091160399-112ba8d25d1d?auto=format&fit=crop&w=1800&q=80") center/cover no-repeat;
    color: #fff;
    text-align: center;
    overflow: hidden;
}
.gdc-contact-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 30%, rgba(193,154,75,0.18), transparent 60%);
    pointer-events: none;
}
.gdc-contact-cta__inner {
    position: relative;
    max-width: 760px;
    margin: 0 auto;
}
.gdc-contact-cta__eyebrow {
    font-size: 12px;
    letter-spacing: 0.3em;
    color: var(--gdc-accent);
    font-weight: 700;
    margin: 0 0 16px;
    text-transform: uppercase;
}
.gdc-contact-cta__title {
    font-size: 34px;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
    margin: 0 0 22px;
}
.gdc-contact-cta__text {
    font-size: 16px;
    line-height: 2;
    margin: 0 0 36px;
    color: rgba(255,255,255,0.92);
}
.gdc-contact-cta__btns {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
}
@media (max-width: 768px) {
    .gdc-contact-cta { padding: 70px 16px; }
    .gdc-contact-cta__title { font-size: 22px; }
    .gdc-contact-cta__text { font-size: 14px; }
}

/* ----- 監修・診療体制ボックス ----- */
.gdc-supervision {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 24px;
    align-items: center;
    max-width: 720px;
    margin: 0 auto;
    padding: 32px 36px;
    background: #fff;
    border-radius: var(--gdc-radius);
    box-shadow: var(--gdc-shadow);
}
.gdc-supervision__icon {
    width: 80px;
    height: 80px;
    background: var(--gdc-primary-bg);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gdc-supervision__icon svg {
    width: 40px;
    height: 40px;
    color: var(--gdc-primary);
}
.gdc-supervision__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--gdc-primary-darker);
    margin: 0 0 6px;
}
.gdc-supervision__text {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.85;
    color: var(--gdc-text-muted);
}
@media (max-width: 600px) {
    .gdc-supervision { grid-template-columns: 1fr; padding: 26px 22px; gap: 14px; text-align: center; }
    .gdc-supervision__icon { margin: 0 auto; }
}



  .gdc-hero__title,
  .gdc-hero__title.gdc-hero__title {
      margin: 0 0 14px;
      padding: 0;
      font-size: 28px;
      font-weight: 700;
      line-height: 1.55;
      color: var(--gdc-primary-darker);
      letter-spacing: 0.03em;
      background: none;
      border: none;
  }
  .gdc-hero__tagline {
      margin: 0 0 22px;
      padding: 0;
      font-size: 20px;
      font-weight: 600;
      line-height: 1.6;
      color: var(--gdc-primary-dark);
      letter-spacing: 0.02em;
  }
  .gdc-hero__tagline .gdc-mark {
      color: var(--gdc-primary) !important;
      font-weight: 700;
      background: none !important;
  }
  @media (max-width: 900px) {
      .gdc-hero__title { font-size: 22px; }
      .gdc-hero__tagline { font-size: 16px; }
  }
