/* ★★★★★ ここからがご要望を反映した最終スタイル ★★★★★ */
        .lani-ultimate-box {
            /* ご提示いただいたウィジェットのスタイルを適用 */
            background: linear-gradient(to bottom, #ffffff 95%, #f5fbff);
            border: 1px solid #d8eaff;
            border-radius: 14px;
            padding: 2.5em 2em 2em; /* 上の余白をバッジ分少し広めに調整 */
            margin: 3em auto;
            box-shadow: 0 6px 20px rgba(180, 210, 255, 0.2);
            position: relative;
            box-sizing: border-box;
            max-width: 700px;
            /* overflow: hidden; はバッジが見切れるため使用しない */
        }

        /* バッジのデザインはそのまま活かす（これが特別感を出すアクセントになる） */
        .lani-ultimate-badge {
            position: absolute;
            top: -18px;
            left: 50%;
            transform: translateX(-50%);
            background: linear-gradient(145deg, #ffd700, #f7b733);
            color: #4a2c00;
            padding: 0.6em 1.6em;
            border-radius: 50px;
            font-size: 1em;
            font-weight: 900;
            box-shadow: 0 5px 15px rgba(255, 215, 0, 0.3);
            display: flex;
            align-items: center;
            gap: 0.5em;
            border: 2px solid #fff;
            z-index: 10;
            white-space: nowrap;
        }
        .lani-ultimate-badge .fa-crown {
            color: #d4af37;
        }

        /* テキストカラーをライトテーマ用に変更 */
        .lani-ultimate-title {
            font-size: 1.5em;
            font-weight: 900;
            margin: 1em 0;
            text-align: center;
            line-height: 1.6;
            color: #1e3a8a; /* サイトのテーマに合わせた濃いブルー */
        }
        .lani-ultimate-title span {
            color: #007bff; /* 強調部分を鮮やかなブルーに */
            border-bottom: 2px solid #a0cfff;
            padding-bottom: 2px;
        }

        .lani-ultimate-content {
            display: flex;
            align-items: center;
            gap: 2em;
        }
        .lani-ultimate-img-area {
            flex: 0 0 160px;
            text-align: center;
        }

        /* 画像の枠線もテーマカラーに合わせる */
        .lani-ultimate-teacher-image {
            width: 140px;
            height: 140px;
            object-fit: cover;
            border-radius: 50%;
            border: 4px solid #d8eaff; /* ボーダー色をボックスと統一 */
            box-shadow: 0 8px 20px rgba(180, 210, 255, 0.4);
        }
        .lani-ultimate-teacher-name {
            font-size: 1em;
            color: #333; /* 文字色を黒に */
            margin-top: 1em;
            line-height: 1.6;
            font-weight: 700;
        }
        .lani-ultimate-teacher-name strong {
            font-size: 1.3em;
            color: #111; /* 名前をより濃く */
            display: block;
        }

        .lani-ultimate-text-area {
            flex: 1 1 auto;
        }
        .lani-ultimate-text-area p {
            font-size: 1em;
            line-height: 1.8;
            margin-bottom: 1.5em;
            color: #444; /* 本文の文字色 */
        }
        .lani-ultimate-text-area strong {
            color: #1e3a8a; /* 強調文字の色をタイトルと統一 */
            font-weight: 700;
        }

        /* ボタンエリアも微調整 */
        .button-area-ultimate {
            background-color: #f5fbff; /* 背景にほんのり色付け */
            border-radius: 12px;
            padding: 1.2em;
            margin-top: 1em;
            text-align: center;
            border: 1px solid #eaf4ff;
        }

        /* プロモーション文言のカラーをボタンと連動させる */
        .lani-promo-text-ultimate {
            font-size: 1.3em;
            font-weight: 900;
            margin-bottom: 0.7em;
            min-height: 1.5em;
            color: #ff455f; /* ボタンのカラーと合わせて行動を促す */
            text-shadow: 0 0 10px rgba(255, 69, 95, 0.2);
        }
        .lani-promo-text-ultimate[data-promo="excite"]::before {
            content: '初回最大8,500円分が無料！';
        }

        /* ボタンのデザインはそのまま活かす（これが最も重要なCTA） */
        .affiliate-button-ultimate {
            display: inline-block;
            background: linear-gradient(160deg, #ff8c42 0%, #ff455f 100%);
            color: white !important;
            padding: 0.9em 2.5em;
            border-radius: 50px;
            text-decoration: none;
            font-weight: 700;
            font-size: 1.2em;
            box-shadow: 0 4px 12px rgba(255, 87, 34, 0.35);
            transition: all 0.2s ease-in-out;
            border: none;
        }
        .affiliate-button-ultimate:hover {
            transform: translateY(-3px);
            box-shadow: 0 6px 16px rgba(255, 87, 34, 0.45);
        }
        .affiliate-button-ultimate .arrow-ultimate {
            margin-left: 0.5em;
        }
        
        .pr-text-ultimate {
            font-size: 0.8em;
            color: #888;
            margin-top: 1em;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 1em;
        }
        .pr-text-ultimate span {
            display: flex;
            align-items: center;
            gap: 0.3em;
        }

        /* === スマホ表示対応 === */
        @media (max-width: 600px) {
            .lani-ultimate-box {
                padding: 2.5em 1em 1.5em;
            }
            .lani-ultimate-content {
                flex-direction: column;
                gap: 1.5em;
            }
            .lani-ultimate-img-area {
                flex-basis: auto;
            }
            .affiliate-button-ultimate {
                width: 100%;
            }
        }