@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');

/* フェードイン表示エフェクト用基盤 */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* 背景グラデーション */
.bg-gradient-custom {
    background: linear-gradient(135deg, #ffffff 0%, #f4fbf7 100%);
}

/* ボタンの脈動エフェクト */
.pulse-animation {
    animation: pulse-accent 3s infinite;
}
@keyframes pulse-accent {
    0% { box-shadow: 0 0 0 0 rgba(109, 179, 63, 0.5); }
    70% { box-shadow: 0 0 0 15px rgba(109, 179, 63, 0); }
    100% { box-shadow: 0 0 0 0 rgba(109, 179, 63, 0); }
}

/* ヘッダー遷移アニメーション */
header { transition: all 0.4s ease; }

/* TOPへ戻るボタン用 */
#topBtn {
    display: none;
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 50;
    opacity: 0;
    transition: all 0.4s ease;
}

/* アコーディオンパーツ */
details summary::-webkit-details-marker { display: none; }
details[open] summary i { transform: rotate(45deg); }

/* 下層共通リーガルスタイル */
.legal-container h1 { color: #0f2b1e; font-size: 1.8rem; font-weight: 700; margin-bottom: 2rem; border-bottom: 2px solid #6db33f; padding-bottom: 0.5rem; }
.legal-container h2 { color: #0f2b1e; font-size: 1.3rem; font-weight: 700; margin-top: 2rem; margin-bottom: 1rem; border-left: 4px solid #6db33f; padding-left: 0.75rem; }
.legal-container p { color: #4b5563; line-height: 1.75; margin-bottom: 1rem; font-size: 0.95rem; }
.legal-table { width: 100%; border-collapse: collapse; margin-top: 1.5rem; margin-bottom: 1.5rem; }
.legal-table th, .legal-table td { border: 1px solid #e5e7eb; padding: 1rem; text-align: left; font-size: 0.95rem; }
.legal-table th { bg-color: #f9fafb; color: #0f2b1e; font-weight: 700; width: 30%; }
.legal-table td { color: #4b5563; }