/* --- アニメーション --- */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

@keyframes fadeIn { 
    from { opacity: 0; transform: translateY(10px); } 
    to { opacity: 1; transform: translateY(0); } 
}

/* --- FAQ アコーディオン --- */
details summary::-webkit-details-marker {
    display: none;
}

details[open] .faq-icon {
    transform: rotate(180deg);
}

/* --- 料金プラン タブ --- */
.plan-tab.active {
    background-color: white;
    color: #a2d033;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
}

/* --- スクロール設定 --- */
html {
    scroll-behavior: smooth;
}

/* --- シミュレーター部分の明るい色への上書き (HTML変更なし) --- */

/* メインコンテナの背景と文字色 */
div#page-pricing .max-w-4xl.bg-slate-900 {
    background-color: #ffffff !important; /* 白背景に変更 */
    color: #0f172a !important; /* 文字をダークに */
    border: 1px solid #e2e8f0;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.05) !important;
}

/* ヘッダーテキストの色 */
div#page-pricing .max-w-4xl h3,
div#page-pricing .max-w-4xl p.text-slate-400 {
    color: #0f172a !important;
}

div#page-pricing .max-w-4xl p.text-slate-400 {
    opacity: 0.7;
}

/* 入力フィールドのスタイル */
#sim-households {
    background-color: #f1f5f9 !important; /* 薄いグレー */
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
}

#sim-households::placeholder {
    color: #94a3b8 !important;
}

#sim-households + span {
    color: #64748b !important;
}

/* 結果表示カード(小さなマス) */
div#page-pricing .max-w-4xl div.bg-white\/5 {
    background-color: #f8fafc !important; /* ほぼ白に近いグレー */
    border-color: #e2e8f0 !important;
}

div#page-pricing .max-w-4xl div.bg-white\/5 div.text-white {
    color: #0f172a !important;
}

div#page-pricing .max-w-4xl div.bg-white\/5 p.text-slate-400 {
    color: #64748b !important;
}

/* 月額総計(緑色のメインカード)の調整 */
div#page-pricing .max-w-4xl div.bg-jichikan {
    background-color: #a2d033 !important;
    box-shadow: 0 10px 15px -3px rgba(162, 208, 51, 0.3);
}

/* --- リーガル・コンテンツ共通スタイル --- */
.legal-content h3 { margin-top: 2.5rem; margin-bottom: 1.25rem; font-weight: 900; color: #0f172a; border-left: 4px solid #a2d033; padding-left: 1rem; font-size: 1.25rem; }
.legal-content h4 { margin-top: 1.5rem; margin-bottom: 0.75rem; font-weight: 700; color: #334155; font-size: 1.1rem; }
.legal-content p { margin-bottom: 1rem; line-height: 1.8; }
.legal-content ul { margin-bottom: 1.5rem; }
.legal-content li { margin-bottom: 0.5rem; position: relative; padding-left: 1.5rem; }
.legal-content li::before { content: "・"; position: absolute; left: 0; color: #a2d033; font-weight: bold; }
.legal-content .notice-box { background-color: #f8fafc; border: 1px solid #e2e8f0; padding: 1.5rem; border-radius: 1rem; margin: 1.5rem 0; }
.legal-content .important { color: #e11d48; font-weight: 800; }

.legal-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem; }
.legal-table th, .legal-table td { border: 1px solid #e2e8f0; padding: 0.75rem; text-align: left; }
.legal-table th { background-color: #f1f5f9; font-weight: 800; }




/* 画像のホバーエフェクト */
.hero-img-container:hover .hero-main-img {
    transform: scale(1.03);
}

/* 赤い動画ボタンの波紋アニメーション */
.animate-ripple-red {
    animation: ripple-red 2s linear infinite;
}

@keyframes ripple-red {
    0% {
        transform: scale(1);
        opacity: 0.6;
    }
    100% {
        transform: scale(1.6);
        opacity: 0;
    }
}

/* ページ全体のフェードイン */
.fade-in {
    opacity: 0;
    animation: fadeIn 0.8s ease-out forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}