/* ====================================================
       ★ 新規追加：LP風モダンデザイン＆完全無欠テーブルCSS ★
       ==================================================== */

    /* 全体的なリッチ化 */
    body { background-color: #f9fbfd !important; font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif; }
    body .main_container { background: #fff !important; box-shadow: 0 5px 20px rgba(0,0,0,0.03) !important; border-radius: 12px; margin-top: 20px; padding: 20px; }
    
    /* セカンドオピニオンなどの基本装飾 */
    body .main_container .lp-so-wrapper { background: #fff !important; border-radius: 8px !important; margin-top: 20px !important; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05) !important; overflow: hidden !important; border: 1px solid #dce4ec !important; padding: 15px !important; }
    body .main_container .lp-so-header { background: transparent !important; padding: 0 0 10px 0 !important; text-align: left !important; color: #333 !important; border-bottom: 2px solid #edf2f7 !important; margin-bottom: 15px !important; }
    body .main_container .lp-so-title { font-size: 18px !important; font-weight: bold !important; color: #1a365d !important; display: inline-block !important; margin: 0 10px 0 0 !important; border: none !important; background: none !important; padding: 0 !important; }
    body .main_container .lp-so-subtitle { display: inline-block !important; font-size: 13px !important; color: #666 !important; margin: 0 !important; }
    body .main_container .lp-so-price-wrap { background: none !important; border: none !important; padding: 0 !important; display: block !important; margin-top: 8px !important; }
    body .main_container .lp-so-price { font-size: 18px !important; font-weight: bold !important; color: #c0392b !important; }
    body .main_container .lp-so-price .yen, body .main_container .lp-so-price .tax, body .main_container .lp-so-price .time { font-size: 13px !important; font-weight: normal !important; color: #555 !important; margin-left: 2px !important;}
    body .main_container .lp-so-body { padding: 0 !important; background: transparent !important; }
    body .main_container .lp-so-section { margin-bottom: 15px !important; }
    body .main_container .lp-so-section:last-child { margin-bottom: 0 !important; }
    body .main_container .lp-so-h4 { font-size: 15px !important; font-weight: bold !important; color: #1a365d !important; border-bottom: 1px dashed #cbd5e1 !important; padding-bottom: 5px !important; margin-bottom: 8px !important; display: flex !important; align-items: center !important; }
    body .main_container .lp-so-h4 .num { background: #34495e !important; color: #fff !important; width: 20px !important; height: 20px !important; border-radius: 50% !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; font-size: 12px !important; margin-right: 8px !important; }
    body .main_container .lp-so-section p { font-size: 13px !important; line-height: 1.6 !important; color: #444 !important; margin-bottom: 8px !important; }
    body .main_container .lp-so-step-box { background: #fdfdfd !important; border-left: 4px solid #f39c12 !important; padding: 12px !important; border-radius: 4px !important; border: 1px solid #eee !important;}
    body .main_container .lp-so-step-box .step { margin-bottom: 10px !important; }
    body .main_container .lp-so-step-box .step:last-child { margin-bottom: 0 !important; }
    body .main_container .lp-so-step-box .step b { display: block !important; color: #d35400 !important; font-size: 14px !important; margin-bottom: 3px !important; }
    body .main_container .lp-so-step-box .step p { margin: 0 !important; font-size: 12px !important; line-height:1.5 !important;}
    body .main_container .lp-so-list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
    body .main_container .lp-so-list li { position: relative !important; padding-left: 20px !important; margin-bottom: 8px !important; font-size: 13px !important; line-height: 1.5 !important; color: #333 !important; }
    body .main_container .lp-so-list li::before { content: "✓" !important; position: absolute !important; left: 0 !important; top: 0 !important; color: #2ecc71 !important; font-weight: bold !important; font-size: 14px !important; }
    body .main_container .lp-so-list li span { display: block !important; font-size: 11px !important; color: #777 !important; margin-top: 2px !important; }

    /* 予約バッジのスタイル統一と強調 */
    body .main_container span[class*="_box_t"], body .main_container span[class*="_box_t_kekka"] { border: none !important; background: transparent !important; padding: 0 !important; margin: 0 !important; display: inline-block !important; }
    body .main_container span[class*="_box_t"] a { display: inline-block !important; padding: 8px 15px !important; border-radius: 6px !important; font-weight: bold !important; text-decoration: none !important; border: none !important; outline: none !important; color: #ffffff !important; box-shadow: 0 3px 6px rgba(0,0,0,0.15) !important; transition: 0.2s !important; font-size: 14px !important; margin: 3px !important; line-height: 1.4 !important; }
    body .main_container span[class*="_box_t"] a:hover { transform: translateY(-2px) !important; box-shadow: 0 5px 10px rgba(0,0,0,0.2) !important; }
    body .main_container .aicyaesu_box_t a { background: #509bcf !important; }
    body .main_container .aicyaesu_box_t a:hover { background: #3b82b3 !important; }
    body .main_container .yaesu_box_t a { background: #46b583 !important; }
    body .main_container .yaesu_box_t a:hover { background: #329668 !important; }
    body .main_container .tsukuba_box_t a { background: #f09e46 !important; }
    body .main_container .tsukuba_box_t a:hover { background: #d9862d !important; }
    body .main_container span.tsukuba_box_t_kekka { background: #7a8694 !important; cursor: not-allowed !important; color: #fff !important; padding: 8px 15px !important; border-radius: 6px !important; font-size: 13px !important; font-weight: bold !important; margin: 3px !important; box-shadow: 0 3px 6px rgba(0,0,0,0.15) !important; display: inline-block !important;}
    body .main_container .dayrr { background: #ffffff !important; color: #e74c3c !important; padding: 2px 6px !important; border-radius: 4px !important; font-size: 11px !important; margin-left: 5px !important; vertical-align: middle !important; font-weight: 900 !important; }

    /* リスト（アコーディオン内）のボタンは小さくして横幅に収める */
    body .main_container .lp-pc-schedule-table span[class*="_box_t"] a,
    body .main_container .lp-pc-schedule-table span.tsukuba_box_t_kekka { padding: 5px 10px !important; font-size: 11.5px !important; margin: 2px !important; line-height: 1.3 !important; }

    /* テーブル表示切替の基本 */
    body .main_container .sp-only-table { display: none !important; }
    .pc-only-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    /* ====================================================
       ★ 新・完全無欠のPC用テーブル（絶対ズレない仕様） ★
       ==================================================== */
    .perfect-pc-schedule { width: 100%; min-width: 800px; border-collapse: collapse; table-layout: fixed; background: #fff; margin-bottom: 20px; box-shadow: 0 2px 10px rgba(0,0,0,0.03); }
    .perfect-pc-schedule th, .perfect-pc-schedule td { border: 1px dotted #cbd5e1; padding: 2px; height: 42px; box-sizing: border-box; }
    .perfect-pc-schedule th { background: #f8fafc; font-size: 12px; color: #334155; text-align: center; border: 1px solid #cbd5e1; white-space: nowrap; }
    .perfect-pc-schedule .day-label { border: 1px solid #cbd5e1; background: #f1f5f9; font-weight: bold; color: #1e293b; width: 60px; white-space: nowrap; text-align: center; }
    .sch-block { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; height: 100%; border-radius: 4px; color: #fff !important; font-size: 13px; text-decoration: none !important; text-align: center; box-shadow: 0 2px 4px rgba(0,0,0,0.15); line-height: 1.3; overflow: hidden; padding: 2px; box-sizing: border-box; transition: 0.2s; }

    .sch-block:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.2); filter: brightness(1.05); }
    .bg-aicyaesu { background: #509bcf; } .bg-yaesu { background: #46b583; } .bg-tsukuba { background: #f09e46; } .bg-exp { background: #7a8694; cursor: default; }
    .dayrr-badge { background: #fff; color: #e74c3c; padding: 1px 4px; border-radius: 3px; font-size: 9px; font-weight: 900; margin-left: 4px; display: inline-block; vertical-align: middle; }
    .sch-hosp { font-size: 13px; font-weight: bold; margin-bottom: 2px; }
    .sch-time { font-size: 12px; margin-bottom: 3px; opacity: 0.9; }
    .sch-doc { font-size: 12px; line-height: 1.15; white-space: normal; word-break: break-all; }

    /* ====================================================
       ★ PC用 固定バナー＆ボタン設定 ★
       ==================================================== */
    body .pc-only-banner .lp-fixed-banner { position: fixed !important; bottom: 20px !important; right: 20px !important; z-index: 999 !important; width: 320px !important; height: auto !important; background: transparent !important; box-shadow: 0 10px 25px rgba(0,0,0,0.2) !important; border-radius: 12px !important; display: flex !important; flex-direction: column !important; padding: 0 !important; }
    body .pc-only-banner .lp-fixed-banner-inner { background: #fff !important; padding: 20px 15px 15px 15px !important; border-radius: 12px 12px 0 0 !important; width: 100% !important; box-sizing: border-box !important; }
    body .pc-only-banner .lp-fixed-banner-title { font-weight: bold !important; color: #0056b3 !important; font-size: 15px !important; line-height: 1.4 !important; text-align: center !important; margin-bottom: 15px !important; display: block !important; height: auto !important; overflow: visible !important; white-space: normal !important; }
    body .pc-only-banner .lp-fixed-banner-buttons { display: flex !important; gap: 10px !important; align-items: stretch !important; width: 100% !important; justify-content: space-between !important; }
    body .pc-only-banner .lp-fixed-btn-wrap { flex: 1 1 50% !important; max-width: calc(50% - 5px) !important; display: flex !important; flex-direction: column !important; }
    body .pc-only-banner .lp-fixed-btn-wrap a, body .pc-only-banner .lp-fixed-btn-wrap div { flex: 1 !important; display: block !important; height: 100% !important; min-height: 44px !important; width: 100% !important; box-sizing: border-box !important; text-decoration: none !important; text-align: center !important; font-size: 12px !important; font-weight: bold !important; line-height: 1.3 !important; padding: 5px !important; border-radius: 6px !important; margin: 0 !important; }
    
    body .pc-only-banner .score-btn { background: #8e9e2b !important; color: #fff !important; border: 1px solid #7a8825 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
    body .pc-only-banner .score-btn:hover { background: #7a8825 !important; }
    body .pc-only-banner .youtube-btn-wrap a, body .pc-only-banner .youtube-btn-wrap div { background: #b72a2a !important; color: #fff !important; border: 1px solid #9e2323 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
    body .pc-only-banner .youtube-btn-wrap a:hover, body .pc-only-banner .youtube-btn-wrap div:hover { background: #9e2323 !important; }
    
    body .pc-only-banner .lp-fixed-main-btn { display: block !important; text-align: center !important; background: #d4ed4b !important; color: #1a365d !important; font-size: 20px !important; font-weight: bold !important; padding: 15px !important; border-radius: 0 0 12px 12px !important; text-decoration: none !important; margin: 0 !important; box-sizing: border-box !important; width: 100% !important; }
    body .pc-only-banner .lp-fixed-main-btn:hover { background: #c5e038 !important; }

    /* 膵臓ドック専用PCボタン（ブルー） */
    body .pc-only-banner .btn-cpn_dock_v2.shine.lp-fixed-main-btn { background: linear-gradient(to bottom, #5b9ab5, #4283a4) !important; color: #ffffff !important; text-shadow: 0 1px 2px rgba(0,0,0,0.3) !important; box-shadow: 0 4px 0px #2a5b75, 0 5px 5px rgba(0,0,0,0.2) !important; border: none !important; border-radius: 0 0 12px 12px !important; }
    body .pc-only-banner .btn-cpn_dock_v2.shine.lp-fixed-main-btn:hover { background: linear-gradient(to bottom, #6daed6, #5396b8) !important; }
    body .pc-only-banner .btn-cpn_dock_v2.shine.lp-fixed-main-btn:active { transform: translateY(4px) !important; box-shadow: 0 0px 0px #2a5b75, 0 1px 2px rgba(0,0,0,0.2) !important; }

    /* 開閉ボタン */
    .close-fixed-btn { position: absolute; top: -12px; right: -12px; background: #555; color: #fff; width: 28px; height: 28px; border-radius: 50%; text-align: center; line-height: 28px; cursor: pointer; font-weight: bold; font-size: 16px; z-index: 1000; box-shadow: 0 2px 5px rgba(0,0,0,0.3); border: 2px solid #fff; transition: 0.2s; }
    .close-fixed-btn:hover { background: #333; transform: scale(1.1); }
    .reopen-btn { position: fixed; cursor: pointer; z-index: 1000; font-weight: bold; color: #fff; box-shadow: 0 4px 10px rgba(0,0,0,0.2); transition: all 0.3s; }
    .pc-reopen { bottom: 0; right: 20px; background: #0056b3; padding: 10px 20px; border-radius: 8px 8px 0 0; font-size: 14px; }
    .pc-reopen:hover { background: #004494; transform: translateY(-2px); }


    /* ====================================================
       ★ 1024px以上のPC向けレイアウト調整 ★
       ==================================================== */
    @media screen and (min-width: 1024px) {
        body .main_container h1 { font-size: 24px !important; line-height: 1.4 !important; margin-bottom: 25px !important; }
        body .main_container h2 { font-size: 20px !important; margin-top:0px !important; margin-bottom: 15px !important; }
        body .main_container .gairai_bn > .lbox { width: 65% !important; float: left !important; }
        body .main_container .gairai_bn > .rbox { width: 32% !important; float: right !important; }
    }


    /* ====================================================
       ★ スマホ・iPad特有のデザイン (1023px以下で適用) ★
       ==================================================== */
    @media screen and (max-width: 1023px) {
        /* 基本見出し・横幅の最適化 */
        body .main_container h1 { font-size: 20px !important; }
        body .main_container h2 { font-size: 18px !important; margin-top: -10px !important; }
        body .main_container { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; border-radius: 0 !important; border-left: none !important; border-right: none !important; padding: 20px 10px !important; box-sizing: border-box !important; }
        
        /* ボタン・装飾の最適化 */
        body .main_container .lp-accordion-btn { padding: 15px 35px 15px 15px !important; margin: 15px 0 !important;}
        body .main_container .lp-accordion-btn .btn-subtitle { font-size: 11px !important; padding: 4px 10px !important; }
        body .main_container .lp-accordion-btn .btn-title { font-size: 15px !important; }
        body .main_container .lp-so-header { padding: 20px 15px !important; }
        body .main_container .lp-so-title { font-size: 18px !important; }
        body .main_container .lp-so-price { font-size: 20px !important; }
        body .main_container .lp-so-body { padding: 20px 15px !important; }
        body .main_container .rbox .gairai_bn { flex-direction: column !important; gap: 15px !important; }

        /* タブ切り替えボタンのスマホ最適化 */
        body .main_container .ip { display: block !important; padding: 10px 0 !important; margin: 0 !important; }
        body .main_container .sp-tab-radio { display: none !important; }
        body .main_container .sp-tab-buttons { position: relative !important; margin: 0 0 20px 0 !important; padding: 4px !important; background: #e2e8f0 !important; border-radius: 12px !important; display: flex !important; justify-content: space-between !important; box-shadow: inset 0 2px 4px rgba(0,0,0,0.05) !important; }
        body .main_container .tab_item { flex: 1 !important; text-align: center !important; font-size: 15px !important; padding: 12px 0 !important; background: transparent !important; color: #64748b !important; font-weight: bold !important; cursor: pointer; border-radius: 8px !important; transition: all 0.3s ease !important; margin: 0 !important; width: auto !important; display: block !important; line-height: 1.4 !important; }
        body .main_container .tab_item span.sub { font-size: 11px !important; font-weight: normal !important; display: block !important; margin-top: 2px !important; transition: all 0.3s ease !important;}
        body .main_container input#morningc:checked ~ .sp-tab-buttons label[for="morningc"], body .main_container input#dayc:checked ~ .sp-tab-buttons label[for="dayc"], body .main_container input#afterc:checked ~ .sp-tab-buttons label[for="afterc"] { background: #3b82f6 !important; color: #ffffff !important; box-shadow: 0 4px 10px rgba(59, 130, 246, 0.4) !important; }
        body .main_container input#morningc:checked ~ .sp-tab-buttons label[for="morningc"] span.sub, body .main_container input#dayc:checked ~ .sp-tab-buttons label[for="dayc"] span.sub, body .main_container input#afterc:checked ~ .sp-tab-buttons label[for="afterc"] span.sub { color: #e0f2fe !important; }
        body .main_container .tab_content { display: none !important; width: 100% !important; clear: both !important; margin: 0 !important; padding: 0 !important; }
        body .main_container input#morningc:checked ~ #morningc_content, body .main_container input#dayc:checked ~ #dayc_content, body .main_container input#afterc:checked ~ #afterc_content { display: block !important; }

        /* PC用表を隠し、スマホ・iPad用テーブルを表示 */
        body .main_container .pc-only-table { display: none !important; }
        body .main_container .sp-only-table { display: block !important; }
        
        /* スマホ・iPad用 テーブル強制幅詰め（スクロールなし！） */
        .sp-table-scroll { overflow-x: hidden !important; padding-bottom: 5px; }
        .perfect-sp-schedule { min-width: 100% !important; width: 100% !important; margin-bottom: 10px; table-layout: fixed !important; }
        .perfect-sp-schedule th, .perfect-sp-schedule td { height: auto !important; min-height: auto !important; padding: 2px 1px !important; word-break: break-all; }
        .perfect-sp-schedule th { font-size: 12px !important; padding: 2px 0 !important; }
        .perfect-sp-schedule .day-label { width: 24px !important; font-size: 12px !important; white-space: normal !important; padding: 2px 0 !important; }
        .perfect-sp-schedule .sch-block { padding: 3px 2px !important; }
        .perfect-sp-schedule .sch-hosp { font-size: 11px !important; font-weight: bold; margin-bottom: 2px !important; line-height: 1.2 !important; }
        .perfect-sp-schedule .sch-time { font-size: 11px !important; }
        .perfect-sp-schedule .sch-doc { font-size: 10px !important; line-height: 1.2 !important; opacity: 0.9; margin-top: 2px !important; display: block; }
        .perfect-sp-schedule .dayrr-badge { font-size: 11px !important; padding: 1px 2px !important; margin-left: 0 !important; margin-top: 2px !important; display: inline-block; }


        /* ====================================================
           ★ スマホ・iPad用 下部固定バナー（爆発完全修復版） ★
           ==================================================== */
        body .pc-only-banner { display: none !important; } 
        body { padding-bottom: 300px !important; } /* スクロール最下部の余白 */

        .cat_box { position: fixed !important; bottom: 0 !important; left: 0 !important; width: 100vw !important; z-index: 9999 !important; box-sizing: border-box !important; }

        /* 白い角丸のメイン枠 */
        #ft_box { 
            position: relative !important; /* ←【超重要】×ボタンの基準位置 */
            width: 100% !important;
            padding: 12px 10px 15px 10px !important; 
            border-radius: 15px 15px 0 0 !important; 
            box-shadow: 0 -4px 15px rgba(0,0,0,0.15) !important; 
            background: #fff !important;
            margin: 0 !important;
            box-sizing: border-box !important;
            padding-bottom: max(15px, env(safe-area-inset-bottom)) !important; /* iPhone下部バー対応 */
        }
        
        .cat_box, #ft_box, .btbox_sp--box { clip-path: none !important; -webkit-clip-path: none !important; mask: none !important; -webkit-mask: none !important; }

        .btbox_sp--box { background: transparent !important; padding: 0 !important; margin-bottom: 8px !important; position: relative !important; height: auto !important; z-index: 9999 !important; display: block !important; }
        
        .cat_box::before, .cat_box::after, #ft_box::before, #ft_box::after, .btbox_sp--box::before, .btbox_sp--box::after, .btbox_sp--box .title::before, .btbox_sp--box .title::after, .cont_link--btbox::before, .cont_link--btbox::after, .btn-cpn.shine::before, .btn-cpn.shine::after {
            display: none !important; content: none !important; background: none !important; background-image: none !important;
        }
        
        /* タイトル文字 */
        .btbox_sp--box .title { 
            display: block !important; font-size: 13px !important; font-weight: bold !important; 
            margin: 0 0 8px 0 !important; padding: 0 !important;
            color: #0056b3 !important; line-height: 1.4 !important; background: transparent !important;
            text-align: center !important;
        }

        /* YouTubeとスコアリングシート */
        .cont_link--btbox { 
            display: inline-block !important; width: 48% !important; margin: 0 1% !important; box-sizing: border-box !important; vertical-align: top !important;
        }
        .cont_link--btbox div { white-space: normal !important; word-break: break-all !important; line-height: 1.4 !important; font-size: 11px !important; text-align: center !important; }

       /* メインの予約ボタン（高さ固定を解除して重なり防止！） */
        .btn-cpn.shine, .btn-cpn_dock_v2.shine { 
            display: block !important; width: 100% !important; box-sizing: border-box !important;
            padding: 4px 10px !important; font-size: 16px !important; 
            margin: 0 0 15px 0 !important; /* ← 下との余白をしっかり取る */
            border-radius: 8px !important; 
            font-weight: 900 !important; border: none !important;
            text-align: center !important; line-height: 1.3 !important;
            height: auto !important; /* ←【超重要】固定高さを解除して文字の長さに合わせる */
            min-height: 30px !important;
        }

        /* 緑ボタン（外来・EUS用） */
        .btn-cpn.shine {
            background: linear-gradient(to bottom, #e4f964, #d4ed4b) !important; color: #1a365d !important;
            box-shadow: 0 4px 0px #a6b825, 0 5px 5px rgba(0,0,0,0.2) !important; text-shadow: 0 1px 1px rgba(255,255,255,0.7) !important;
        }
        /* 青ボタン（ドック用） */
        .btn-cpn_dock_v2.shine {
            background: linear-gradient(to bottom, #5b9ab5, #4283a4) !important; color: #ffffff !important; text-shadow: 0 1px 2px rgba(0,0,0,0.3) !important;
            box-shadow: 0 4px 0px #2a5b75, 0 5px 5px rgba(0,0,0,0.2) !important;
        }
        .btn-cpn.shine:active, .btn-cpn_dock_v2.shine:active { transform: translateY(4px) !important; box-shadow: 0 0px 0px rgba(0,0,0,0.2), 0 1px 2px rgba(0,0,0,0.2) !important; }

        /* ▼ 3つの3Dボタン（上との余白を確保） ▼ */
        #ft_3link--box { 
            display: flex !important; flex-wrap: nowrap !important; gap: 6px !important; 
            width: 100% !important; margin: 20px 0 0 0 !important; /* ← 上に余白を追加 */
            padding: 0 !important; box-sizing: border-box !important; 
        }
        
        .link--box { 
            display: block !important; padding: 8px 2px !important; border-radius: 6px !important; 
            flex: 1; min-width: 0 !important; 
            text-align: center !important; text-decoration: none !important; 
            box-shadow: 0 3px 0px rgba(0,0,0,0.1), 0 4px 5px rgba(0,0,0,0.1) !important; border: 1px solid rgba(0,0,0,0.05) !important; 
            box-sizing: border-box !important; line-height: 1.2 !important;
            height: auto !important; /* ← 中身のはみ出し防止 */
        }
        .link--box:active { transform: translateY(3px) !important; box-shadow: 0 0px 0px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.1) !important; }
        .link--box * { float: none !important; }

        .link--box .title { 
            display: inline-block !important; font-size: 9px !important; margin: 0 auto 4px auto !important; padding: 3px 6px !important;
            border-radius: 12px !important; box-shadow: inset 0 1px 2px rgba(0,0,0,0.1) !important; 
            line-height: 1 !important; font-weight: bold !important; white-space: nowrap !important;
        }
        .link--box { font-size: 11px !important; font-weight: bold !important; letter-spacing: -0.5px !important;}
        .link--box span { 
            display: inline-block !important; font-size: 10px !important; margin-top: 3px !important; background: rgba(255,255,255,0.7) !important;
            padding: 2px 4px !important; border-radius: 4px !important; font-weight: 900 !important; line-height: 1 !important;
        }

        .link--box.gairai { background: linear-gradient(135deg, #f8fafc, #e2e8f0) !important; color: #1e293b !important; border-bottom: 3px solid #94a3b8 !important; }
        .link--box.gairai .title { background: #3b82f6 !important; color: #fff !important; }
        .link--box.dock { background: linear-gradient(135deg, #fffbeb, #fef3c7) !important; color: #b45309 !important; border-bottom: 3px solid #f59e0b !important; }
        .link--box.dock .title { background: #f59e0b !important; color: #fff !important; }
        .link--box.dock span { color: #d97706 !important; }
        .link--box.research { background: linear-gradient(135deg, #f0fdfa, #ccfbf1) !important; color: #0f766e !important; border-bottom: 3px solid #14b8a6 !important; }
        .link--box.research .title { background: #14b8a6 !important; color: #fff !important; }
        .link--box.research span { color: #0f766e !important; }
        
        /* ▼ オシャレで絶対にズレない「×」ボタン ▼ */
        .close-fixed-sp-btn { 
            position: absolute !important; top: -14px !important; right: 8px !important; 
            background: #475569 !important; color: #fff !important; 
            width: 28px !important; height: 28px !important; border-radius: 50% !important; 
            text-align: center !important; line-height: 24px !important; font-size: 18px !important; font-weight: bold !important;
            z-index: 10000 !important; border: 2px solid #fff !important; box-shadow: 0 2px 5px rgba(0,0,0,0.2) !important; cursor: pointer !important;
        }
        
        /* 再表示ボタン（スマホ・iPad用） */
        .sp-reopen { bottom: max(20px, env(safe-area-inset-bottom)) !important; right: 20px; background: linear-gradient(135deg, #ff8c00 0%, #e67e22 100%); width: 65px; height: 65px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 11px; line-height: 1.2; box-shadow: 0 4px 15px rgba(230,126,34,0.4); }
        .sp-reopen span { font-size: 20px; margin-bottom: 2px; }
    }

/* ====================================================
   ★ 膵臓外来専用：古いCSS（#acd）の干渉を完全に粉砕する ★
   ==================================================== */

/* 1. まずは干渉している古い ::before パーツを完全に消去 */
#acd button.lp-accordion-btn::before {
    display: none !important;
    content: none !important;
    background: none !important;
}

/* 2. メインのボタン設定（ここもIDを頭につけて優先度を最大に） */
#acd button.lp-accordion-btn {
    background: #4b6ff2 !important; 
    color: #ffffff !important;
    border: none !important;
    width: 100% !important;
    padding: 25px 60px 25px 20px !important; 
    border-radius: 12px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    position: relative !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important; 
    align-items: center !important;
    justify-content: center !important;
    margin: 10px 0 !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
    text-shadow: none !important;
    background-image: none !important; /* 背景画像も念のため消去 */
}

/* 3. 古い ::after の「黒い棒」の設定をリセットして「＋」に書き換える */
#acd button.lp-accordion-btn::after {
    /* 古いCSSの 3px / 10px / 紺色 をすべてリセット */
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    
    /* 改めて「＋」を描画 */
    content: "+" !important;
    display: block !important;
    position: absolute !important;
    right: 20px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 40px !important; 
    color: #ffffff !important;
    font-weight: 200 !important; 
    font-family: "Helvetica Neue", Arial, sans-serif !important; 
    line-height: 1 !important;
}

/* 4. 開いた時のボタン（－）の設定 */
#acd .active button.lp-accordion-btn::after {
    content: "−" !important; 
    font-size: 40px !important;
    color: #555 !important;
}

/* 5. 開いている状態（グレー背景） */
#acd .active button.lp-accordion-btn {
    background: #D4D4D4 !important;
    color: #555 !important;
}

/* 中の白枠カプセルとタイトルの文字影掃除 */
#acd button.lp-accordion-btn .btn-subtitle,
#acd button.lp-accordion-btn .btn-title {
    text-shadow: none !important;
}

#acd button.lp-accordion-btn .btn-subtitle {
    display: inline-block !important;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.8) !important;
    color: #ffffff !important;
    padding: 4px 20px !important;
    border-radius: 50px !important;
    font-size: 14px !important;
    margin-bottom: 8px !important;
    font-weight: normal !important;
}

#acd .active button.lp-accordion-btn .btn-subtitle {
    color: #555 !important;
    border-color: #999 !important;
}