﻿/* ===================================
   リセット & 基本設定
   =================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* CSS変数定義 - 明るく爽やかな色調に変更 */
:root {
    --primary-green: #2E8B57;          /* より明るく鮮やかなグリーン */
    --dark-green: #1F5F3F;             /* 深いグリーン */
    --light-green: #F0F8F5;            /* 非常に薄いグリーン */
    --accent-green: #7CB342;           /* フレッシュグリーン */
    --accent-orange: #FF9800;          /* 明るいオレンジ */
    --accent-blue: #2196F3;            /* 爽やかなブルー */
    --text-dark: #1B4332;              /* 深い森のグリーン */
    --text-light: #FFFFFF;
    --gray-light: #F8FFFE;             /* 非常に薄いグリーンがかったグレー */
    --gray-medium: #E8F5E8;            /* 薄いグリーン系グレー */
    --success-green: #4CAF50;          /* 成功の緑 */
    --shadow-light: rgba(46, 139, 87, 0.08);
    --shadow-medium: rgba(46, 139, 87, 0.15);
    --card-bg: #FFFFFF;
    --comparison-bg: #F5F5F5;          /* 比較カード用背景色 */
    --highlight-green: #8BC34A;        /* 明るい黄緑 */
    --company-bg: #E0E7E3;             /* 企業ロゴ用濃いグレー */
}

/* 基本スタイル */
body {
    font-family: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
    line-height: 1.6;
    color: var(--text-dark);
    overflow-x: hidden;
    background: var(--card-bg);
    font-size: 16px; /* PC表示で16px以上を確保 */
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ===================================
   アニメーション定義
   =================================== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* ===================================
   アニメーションクラス
   =================================== */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.animate-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

.animate-scale {
    opacity: 0;
    transform: scale(0.9);
    transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.animate-scale.visible {
    opacity: 1;
    transform: scale(1);
}