/* =========================
   The Five Paths Stylesheet (Newsletter Page)
   ========================= */

        :root {
            /* Color Palette - 夜明けの大地トーン */
            --primary-color: #0e0d0b;    /* 深い黒、地の底 */
            --accent-color: #c2a36e;     /* 金色、夜明けの光 */
            --secondary-color: #dfd6c9;  /* 土色、大地の温もり */
            --text-light: rgba(14, 13, 11, 0.8);
            --background: #fdfcfa;
            
            /* Golden Ratio */
            --golden-ratio: 1.618;
            --container-width: 960px;
            
            /* Typography - Golden Ratio Font Sizes */
            --font-base: 16px;
            --font-lg: calc(var(--font-base) * var(--golden-ratio));
            --font-xl: calc(var(--font-lg) * var(--golden-ratio));
            --font-2xl: calc(var(--font-xl) * var(--golden-ratio));
            --font-3xl: calc(var(--font-2xl) * var(--golden-ratio));
            
            /* Spacing - Golden Ratio Based */
            --space-sm: 1rem;
            --space-md: calc(var(--space-sm) * var(--golden-ratio));
            --space-lg: calc(var(--space-md) * var(--golden-ratio));
            --space-xl: calc(var(--space-lg) * var(--golden-ratio));
            
            /* Animation */
            --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        html {
            scroll-behavior: smooth;
            font-size: var(--font-base);
        }
        
        body {
            font-family: 'Noto Serif JP', 'Crimson Text', serif;
            background-color: var(--background);
            color: var(--primary-color);
            line-height: var(--golden-ratio);
            overflow-x: hidden;
            font-weight: 400;
        }
        
        /* Typography */
        h1, h2, h3 {
            font-family: 'Crimson Text', 'Noto Serif JP', serif;
            font-weight: 700;
            letter-spacing: -0.02em;
        }
        
        h1 {
            font-size: var(--font-3xl);
            line-height: 1.2;
        }
        
        .container {
            max-width: var(--container-width);
            margin: 0 auto;
            padding: 0 var(--space-md);
        }

        /* ===== ヘッダーナビゲーション (index.html から流用) ===== */
        header {
            position: absolute; 
            top: 0;
            left: 0;
            width: 100%;
            z-index: 100; 
            padding: var(--space-md) 0;
        }

        .header-nav ul {
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            justify-content: center; 
            flex-wrap: wrap;
            gap: var(--space-md);
        }

        .header-nav a {
            color: var(--primary-color); 
            text-decoration: none;
            font-size: var(--font-base);
            font-family: 'Crimson Text', serif; 
            font-weight: 600;
            opacity: 0.8;
            transition: opacity 0.3s ease;
        }

        .header-nav a:hover {
            opacity: 1;
            text-decoration: underline;
        }
        
        /* Scroll Progress Line */
        .scroll-progress {
            position: fixed;
            top: 0;
            left: 0;
            width: 0%;
            height: 2px;
            background: linear-gradient(90deg, var(--accent-color), var(--primary-color));
            z-index: 1000;
            transition: width 0.3s var(--ease-out-quart);
        }
        
        /* ===== メインコンテンツ (サブページ用) ===== */
        .page-content {
            /* ヘッダーの下からコンテンツが始まるようにパディングを設定 */
            padding-top: calc(var(--space-xl) + var(--space-lg));
            padding-bottom: var(--space-xl); 
            min-height: 70vh; /* コンテンツが少なくてもフッターが上がってこないように */
            background-color: var(--background);
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }

        .page-content h1 {
            color: var(--primary-color);
            margin-bottom: calc(var(--space-xl) * 1.5);
            /* 初期のヒーロータイトルと同じアニメーションを適用 */
            opacity: 0;
            transform: translateY(30px);
            animation: fadeInUp 1.2s var(--ease-out-quart) 0.3s forwards;
        }

        /* ===== ニュースレターフォーム部分のデザイン（前回の提案内容を反映） ===== */
        .newsletter-form-section {
            max-width: 500px; 
            width: 100%; /* レスポンシブ対応 */
            margin: 0 auto;
            padding: var(--space-xl);
            background-color: var(--secondary-color); 
            border-radius: 5px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
            /* アニメーション用 */
            opacity: 0;
            transform: translateY(30px);
            animation: fadeInUp 1.2s var(--ease-out-quart) 0.6s forwards;
        }

        .newsletter-form-section .description {
            text-align: center;
            font-size: var(--font-lg);
            color: var(--primary-color);
            margin-bottom: var(--space-lg);
            line-height: 1.6;
        }

        .newsletter-form .form-group {
            margin-bottom: var(--space-md);
        }

        .newsletter-form label {
            display: block;
            font-weight: 600;
            margin-bottom: 5px;
            color: var(--primary-color);
            font-size: var(--font-base);
        }

        .newsletter-form input[type="text"],
        .newsletter-form input[type="email"] {
            width: 100%;
            padding: var(--space-sm);
            border: 1px solid rgba(14, 13, 11, 0.2);
            border-radius: 3px;
            font-size: var(--font-base);
            font-family: 'Noto Serif JP', serif;
            background-color: white;
            transition: border-color 0.3s;
        }

        .newsletter-form input[type="text"]:focus,
        .newsletter-form input[type="email"]:focus {
            border-color: var(--accent-color); 
            outline: none;
        }

        .newsletter-form .submit-button {
            width: 100%;
            padding: var(--space-md);
            background-color: var(--primary-color); 
            color: var(--secondary-color); 
            border: none;
            border-radius: 3px;
            font-size: var(--font-lg);
            font-weight: 600;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.2s;
            margin-top: var(--space-md);
        }

        .newsletter-form .submit-button:hover {
            background-color: #333; 
            transform: translateY(-2px);
        }

        .privacy-note {
            text-align: center;
            font-size: 0.8rem;
            color: var(--text-light);
            margin-top: var(--space-md);
            opacity: 0.8;
        }
        
        /* ===== フッター (index.html から流用) ===== */
        footer {
            padding: var(--space-xl) 0;
            text-align: center;
            background-color: var(--primary-color);
            color: var(--secondary-color);
        }
        
        .footer-nav {
            margin-bottom: var(--space-md);
        }

        .footer-nav ul {
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            justify-content: center;
            flex-wrap: wrap; 
            gap: var(--space-md);
        }

        .footer-nav a {
            color: var(--secondary-color);
            text-decoration: none;
            font-size: var(--font-base);
            opacity: 0.8;
            transition: opacity 0.3s ease;
        }

        .footer-nav a:hover {
            opacity: 1;
            text-decoration: underline;
        }
        
        .footer-text {
            font-size: var(--font-base);
            opacity: 0.8;
        }
        
        /* ===== アニメーションキーフレーム ===== */
        @keyframes fadeInUp {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        /* ===== レスポンシブデザイン ===== */
        @media (max-width: 768px) {
            :root {
                --font-base: 14px;
            }
            
            .page-content {
                min-height: 70vh;
                padding-top: calc(var(--space-xl) + var(--space-lg));
            }

            .header-nav {
                justify-content: center;
            }
        }
        
        @media (max-width: 550px) {
            .newsletter-form-section {
                padding: var(--space-lg);
            }
        }

        @media (max-width: 480px) {
            .container {
                padding: 0 var(--space-sm);
            }
        }
        
        /* Parallax Effect (JSで操作されるため、スタイルは最小限) */
        .parallax {
            transform: translateZ(0);
            will-change: transform;
        }