        body { font-family: "Inter", "Noto Sans JP", sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; background-color: #f0f4f8; margin: 0; }
        .modal { display: none; }
        .modal.is-open { display: flex; }
        .modal__overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; }
        .modal__container { background-color: #fff; padding: 30px; width: 90%; max-width: 600px; max-height: 90vh; border-radius: 8px; overflow-y: auto; box-shadow: 0 4px 15px rgba(0,0,0,0.2); text-align: center; }
        .modal__header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #ddd; padding-bottom: 15px; margin-bottom: 20px; }
        .modal__title { margin: 0; font-size: 1.5rem; font-weight: 600; }
        .modal__close { background: transparent; border: 0; font-size: 1.5rem; cursor: pointer; }
        .modal__content { margin-bottom: 20px; }
        .modal__footer { border-top: 1px solid #ddd; padding-top: 15px; text-align: right; }
        .result-description { text-align: left; margin-top: 0.5rem; margin-bottom: 1rem; color: #374151; }
        .result-price { font-size: 1.125rem; font-weight: bold; }
        .detail-link { display: inline-block; margin-top: 1rem; color: #2563eb; text-decoration: underline; }


        /* 追加: plan-section-description のスタイル */
        .plan-section-description {
            text-align: center;
            font-size: 16px;
            color: #666;
            margin: 2rem 0 5px; /* General case, less important for this specific issue */
            max-width: 28rem; /* Tailwind CSSのmax-w-md相当 */
        }
        @media (max-width: 568px) {
            .plan-section-description {
                font-size: 10px;
            }
        }

    /* 診断ボタンエリアのモダンなスタイル */
    .diagnosis-section-wrapper {
        background-color: #ffffff; /* クリーンな白背景 */
        border: 1px solid #e0e0e0; /* 微妙なライトグレーのボーダー */
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); /* 柔らかく、目立つ影 */
        padding: 15px; /* Reduce overall padding */
        border-radius: 15px; /* より丸みを帯びた角 */
        margin-top:10px; /* 上の要素からのスペース */
        margin-bottom: 20px; /* 下の要素へのスペース */
        display: flex; /* Flexboxで内部要素を配置 */
        flex-direction: column;
        align-items: center; /* 水平方向中央寄せ */
        justify-content: center;
        text-align: center; /* テキスト中央寄せ */
        margin-left: auto;
        margin-right: auto;
        width: 50%;
	background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.3)), url(img/bg_bro.jpg);
    border:solid 4px #b87ffa;
    }

   /* スマホ表示で診断セクションの幅を拡げる */
   @media (max-width: 768px) {
  .diagnosis-section-wrapper {
    width: 70%;
    /* .banner-title のpaddingとborderによるはみ出しを防止 */
    box-sizing: border-box;
  }
}
    @media (max-width: 500px) {
  .diagnosis-section-wrapper {
    width: 90%;
  }
}

         /* container-wrapper のスタイルを調整 */
         .container-wrapper {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 0; /* 外側のパディングで調整するためリセット */
            margin-bottom: 0; /* Remove this margin, let the p tag control its own bottom space */
        }

       
/* メイン診断ボタンのカスタムスタイル (インラインから移動) */
        #main-diagnosis-button {
            display: flex;
            align-items: center;
            border: 2px solid #b87ffa;
            background: transparent;
            padding: 10px;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.3s ease; /* ホバー効果を追加 */
        }

        #main-diagnosis-button:hover {
            background-color: rgba(184, 127, 250, 0.1); /* 例: 薄い紫色の背景 */
        }

        #main-diagnosis-button img {
            width: 80px;
            height: auto;
            display: block;
            margin-right: 10px;
        }


         /* モーダルスタイル再定義 */
        .modal-h3 { font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; margin-bottom: 1rem; }
        .modal-button-container > * + * { margin-top: 1rem; }
        .modal-button {
            width: 100%;
            color: #ffffff;
            padding: 0.75rem 1rem;
            border-radius: 0.5rem;
            transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
            border: none;
            cursor: pointer;
        }
        .modal-button-teal { background-color: #14b8a6; }
        .modal-button-teal:hover { background-color: #0d9488; }
        .modal-button-blue { background-color: #3b82f6; }
        .modal-button-blue:hover { background-color: #2563eb; }
        .modal-button-green { background-color: #22c55e; }
        .modal-button-green:hover { background-color: #16a34a; }
        /* Teal系の配色 */
        .modal-button-teal-600 { background-color: #0d9488; }
        .modal-button-teal-600:hover { background-color: #0f766e; }
        .modal-button-teal-400 { background-color: #2dd4bf; }
        .modal-button-teal-400:hover { background-color: #14b8a6; }
        /* Blue系の配色 */
        .modal-button-blue-600 { background-color: #2563eb; }
        .modal-button-blue-600:hover { background-color: #1d4ed8; }
        .modal-button-blue-400 { background-color: #60a5fa; }
        .modal-button-blue-400:hover { background-color: #3b82f6; }
        /* Green系の配色 */
        .modal-button-green-600 { background-color: #16a34a; }
        .modal-button-green-600:hover { background-color: #15803d; }
        .modal-button-green-400 { background-color: #4ade80; }
        .modal-button-green-400:hover { background-color: #22c55e; }
        .modal-back-button { margin-top: 1.5rem; font-size: 0.875rem; line-height: 1.25rem; color: #4b5563; background: none; border: none; cursor: pointer; }
        .modal-back-button:hover { text-decoration: underline; }
        .modal-back-button-ml { margin-left: 1rem; }

        .result-title { font-size: 1.25rem; line-height: 1.75rem; font-weight: 700; margin-bottom: 0.5rem; color: #7c3aed; }
        .result-container { padding: 1rem; background-color: #f9fafb; border-radius: 0.5rem; }
        .result-plan-name { font-size: 1.5rem; line-height: 2rem; font-weight: 600; margin-bottom: 0.5rem; }
        .result-container img {
            max-width: 100%;
            height: auto;
            margin-left: auto;
            margin-right: auto;
        }

    /* 診断ボタンエリア内の説明文のスタイルを調整 */
    .diagnosis-section-wrapper .plan-section-description {
        font-size: 1.15rem; /* 少し大きく、より目立つように */
        line-height: 1.7;
        color: #444;
        margin-top: 15px; /* Space from the button above */
        margin-bottom: 0; /* No extra margin below, let diagnosis-section-wrapper's padding handle it */
    }

        .modal-footer-button {
            background-color: #e5e7eb;
            color: #1f2937;
            padding: 0.5rem 1rem;
            border-radius: 0.5rem;
            border: none;
            cursor: pointer;
        }
        .modal-footer-button:hover { background-color: #d1d5db; }

/* Floating Buttons Container */
#floating-buttons-container {
    position: fixed;
    right: 20px; /* 右からの距離 */
    top: 13%; /* 上から8%の位置に配置 */
    transform: none; /* transformをリセット */
    display: flex;
    flex-direction: column; /* ボタンを縦に並べる */
    gap: 15px; /* ボタン間のスペース */
    z-index: 999; /* 他の要素より手前に表示 */
}

/* Floating Diagnosis Button (now inside container) */
#floating-diagnosis-button {
    /* position, top, right, transform, z-index は #floating-buttons-container で管理 */
    background-color: rgba(124, 58, 237, 0.5); /* 診断ボタンの背景色 (半透明) */
    color: #ffffff;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    padding: 15px 25px; /* ゆったりとしたパディング */
    border-radius: 30px; /* 角を丸くしてピル型に */
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 目立つ影 */
    text-decoration: none; /* 下線を削除 */
    transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease; /* ホバーアニメーション */
    cursor: pointer;
    font-size: 1.1rem; /* 読みやすいフォントサイズ */
    white-space: nowrap; /* テキストの折り返しを防ぐ */
    display: block; /* Flexアイテムとして適切に表示 */
}

#floating-diagnosis-button:hover {
    background-color: rgba(109, 40, 217, 0.6); /* ホバー時の色を濃く、半透明に */
    transform: scale(1.05); /* ホバー時に少し拡大 (translateYを削除) */
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4); /* ホバー時に影を強調 */
}

/* New Floating Inquiry Button */
#floating-inquiry-button {
    background-color: rgba(59, 130, 246, 0.5); /* お問い合わせボタンの背景色 (青色、半透明) */
    color: #ffffff;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
    padding: 15px 25px;
    border-radius: 30px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    text-decoration: none;
    transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
    cursor: pointer;
    font-size: 1.1rem;
    white-space: nowrap;
    display: block; /* Flexアイテムとして適切に表示 */
}
 #floating-inquiry-button:hover {
    background-color: rgba(37, 99, 235, 0.6); /* ホバー時の色を濃く、半透明に */
    transform: scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    #floating-buttons-container {
        right: 15px;
        bottom: 20px; /* 小さい画面では右下に移動 */
        top: auto; /* topプロパティをリセット */
        transform: none; /* transformプロパティをリセット */
        flex-direction: column; /* 縦に並べる */
        gap: 10px; /* ボタン間のスペースを調整 */
    }
    #floating-diagnosis-button,
    #floating-inquiry-button {
        padding: 12px 20px; /* パディングを調整 */
        font-size: 1rem; /* フォントサイズを調整 */
    }
}

@media (max-width: 480px) {
    #floating-buttons-container {
        right: 10px;
        bottom: 15px;
        gap: 8px; /* さらにスペースを狭く */
    }
    #floating-diagnosis-button,
    #floating-inquiry-button {
        padding: 10px 15px; /* パディングを調整 */
        font-size: 0.9rem; /* フォントサイズを調整 */
    }
}
