/* テーマ色（共通：変更時はここだけ編集） */
:root {
    --color-primary: #667eea;
    --color-primary-rgb: 102, 126, 234;
    --color-secondary: #764ba2;
    --color-secondary-rgb: 118, 75, 162;
}

/* リセットとベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    line-height: 1.7;
    color: #2c3e50;
    overflow-x: hidden;
    background: #fafbfc;
}

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

/* スクロールフェードイン */
.fade-in-target {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-visible {
    opacity: 1;
    transform: translateY(0);
}

/* フォームバリデーションエラー */
.form-field-error {
    border-color: #ff6b6b !important;
}

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