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

        /*
        body {
            font-family: 'Noto Sans JP', sans-serif;
            background-color: #f9fafb;
            color: #333;
            line-height: 1.5;
        }*/

        header a {
            text-decoration: none;
            color: inherit;
        }

        header ul {
            list-style: none;
        }

        header button {
            border: none;
            background: none;
            cursor: pointer;
            font-family: inherit;
        }

        /* --- ユーティリティ --- */
        .menu_container {
            width: 100%;
            max-width: 960px;
            margin: 0 auto;
            padding: 0 16px;
        }

        /* --- ヘッダーレイアウト --- */
        .header-top {
            background-color: #fff;
            padding: 16px 0;
            position: relative;
            z-index: 50;
        }

        .header-top-inner {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            flex-wrap: wrap;
        }
        @media (min-width: 960px) {
            .header-top-inner {
                padding: 0;
            }
        }

        /* ロゴエリア */
        .logo-area {
            display: flex;
            flex-direction: column;
            align-items: flex-start; /* 修正: リンク範囲を画像のみにする */
        }

        .logo-tagline {
            font-size: 11px;
            color: #4b5563;
            margin-bottom: 4px;
            margin-top: 0;
            font-weight: normal;
            line-height: 1.7;
            font-family: "Noto Sans JP", sans-serif;
        }

        .logo-wrapper {
            display: block;
        }

        .logo-image {
            display: block;
            height: 40px;
            width: auto;
        }

        /* PC用 右側リンク群 */
        .header-utility {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 24px;
        }

        .utility-links {
            display: grid;
            grid-template-columns: repeat(3, auto);
            gap: 4px 24px;
            font-size: 12px; 
            font-weight: bold;
            color: #0088CE;
            line-height: 1.5;
            font-family: "Noto Sans JP", sans-serif;
        }

        .link-arrow::before {
            content: "▶";
            font-size: 0.7em;
            margin-right: 4px;
            color: #0088CE;
        }

        .utility-links a:hover {
            opacity: 0.8;
            color: #0088CE;
        }

        .social-icons {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-top: 0;
        }

        .social-icon {
            font-size: 20px;
            transition: opacity 0.2s;
        }
        .social-icon:hover { opacity: 0.8; }
        .icon-mail { color: #007A46; font-size: 24px; }
        .icon-x { color: #000; border: 1px solid #000; border-radius: 4px; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 16px; }
        .icon-fb { color: #1877f2; font-size: 24px; }
        .icon-insta { color: #e1306c; font-size: 24px; }

        /* ハンバーガーボタン (PCでは非表示) */
        .hamburger-btn {
            display: none;
            font-size: 24px;
            color: #007A46;
            position: absolute;
            top: 24px;
            right: 16px;
            z-index: 60;
        }
        
        .hamburger-text {
            font-size: 10px;
            font-weight: bold;
            margin-top: 2px;
            display: block;
            line-height: 1;
        }

        /* --- 統合ナビゲーション --- */
        .global-nav {
            background-color: #007A46;
            color: #fff;
            position: relative;
            z-index: 40;
            font-weight: 200;
        }

        /* PC表示時のコンテナリセット */
        .global-nav .menu_container {
            padding: 0;
        }

        /* SP用オーバーレイ背景（初期非表示） */
        .nav-backdrop {
            display: none;
        }

        /* SP用コンテンツラッパー（初期非表示） */
        .mobile-header-bar, .mobile-utilities-area {
            display: none;
        }

        /* ナビゲーションリスト（共通） */
        .nav-list {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 70px;
            font-size: 14px;
            font-weight: bold;
            width: 100%;
            max-width: 960px;
            margin: 0 auto;
            font-family: "Noto Sans JP", sans-serif;
            padding: 0;
        }

        .nav-item {
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            /* 修正: PC版でメガメニューの位置基準を親(.global-nav)にするためstaticに変更 */
            position: static; 
            flex: auto; /* 文字数に応じて幅自動 */
        }

        .nav-trigger {
            color: #fff;
            padding: 0;
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: color 0.2s;
            /*font-weight: bold;*/
            font-size: 14px;
            letter-spacing: -0.4;
            cursor: pointer;
            text-align: center;
        }

        .nav-trigger:hover, .nav-trigger.active {
            color: #e5e7eb;
        }

        /* SP用アイコン（プラスマーク） */
        .nav-trigger-icon {
            display: none !important;
        }

        .nav-separator {
            border-right: 1px solid rgba(255,255,255);
            height: 18px;
            margin: 0;
        }

        /* CTAボタン */
        .cta-btn {
            background-color: #84bd00;
            color: #fff;
            padding: 0 8px 0 24px;
            height: 36px;
            border-radius: 9999px;
            font-weight: bold;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            flex: auto;
            margin: 0 24px;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            transition: background-color 0.2s;
            position: relative; /* 子要素（アイコン）の絶対配置基準 */
        }

        .cta-btn::before {
            content: "";
            display: inline-block;
            width: 20px;
            height: 20px;
            
            /* SVG: 白い円の中に透明な再生マーク */
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1.5 13.5v-7l5 3.5-5 3.5z'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: center;
            background-size: contain;

            /* 位置調整: 左端に固定配置 */
            position: absolute;
            left: 10px; /* ボタンの左パディングに合わせる */
            top: 50%;
            transform: translateY(-50%);
        }

        .cta-btn:hover, .cta-btn.active {
            background-color: #6da600;
            color: #fff;
            transform: none;
        }

        .cta-btn i {
            font-size: 18px;
        }

        /* --- サブメニュー (メガメニュー/アコーディオン) --- */
        .nav-submenu {
            /* 共通: 初期状態は隠す */
            display: none; /* JSで制御 */
            background-color: #e5f1ec;
            color: #333;
        }

        /* --- PC版メガメニューレイアウト --- */
        @media (min-width: 960px) {
            .nav-submenu {
                font-family:  'Noto Sans JP',"Hiragino Sans", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Meryo, "メイリオ", Osaka, "ＭＳ Ｐゴシック", "MS P Gothic", sans-serif;
                display: block; /* PCはJSでクラス制御するが、要素自体は存在させる */
                position: absolute;
                top: 100%;
                left: 0;
                /* 修正: 画面幅いっぱいに正しく配置 */
                width: 100%; 
                transform: none;
                
                opacity: 0;
                visibility: hidden;
                transition: opacity 0.3s ease, visibility 0.3s;
                
                box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
                border-top: 1px solid #d1e3dd;
                padding: 32px 0 24px;
                z-index: 100;
                text-align: left; /* 親の中央揃えをリセット */
            }

            .nav-submenu.active {
                opacity: 1;
                visibility: visible;
            }

            /* サブメニュー内のコンテナ */
            .nav-submenu .menu_container {
                width: 100%;
                max-width: 960px;
                margin: 0 auto;
                padding: 0 0px;
            }
        }

        /* --- コンテンツスタイル (共通・PCベース) --- */
        
        /* グリッドシステム */
        .mega-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 32px;
        }
        
        .mega-grid-custom-ratio {
            display: grid;
            grid-template-columns: 1.4fr 1fr 1fr;
            gap: 16px;
        }

        .mega-grid-sponsorship {
            display: grid;
            grid-template-columns: 2fr 1fr;
            gap: 48px;
            align-items: flex-start;
        }

        /* リンクリスト */
        .submenu-link-list li {
            margin-bottom: 12px;
        }
        .submenu-link-list a {
            display: flex;
            align-items: flex-start;
            color: #333;
            font-weight: normal;
            font-size: 14px;
            transition: opacity 0.2s;
        }
        .submenu-link-list a::before {
            content: "▶";
            color: #007A46;
            margin-right: 8px;
            font-size: 0.5em;
            margin-top: 6px; /* 追加: 1行目の高さに合わせて位置調整 */
            flex-shrink: 0; /* 追加: マークが潰れないように */
        }
        .submenu-link-list a:hover {
            opacity: 0.8;
            text-decoration: none;
        }

        /* 特集ボックス */
        .feature-box {
            text-decoration: none;
            color: #333;
            display: flex;
            align-items: flex-start;
            gap: 12px;
        }
        .feature-box:hover { opacity: 0.9; }

        .feature-image img {
            width: 110px; height: 110px;
            object-fit: cover;
            border-radius: 4px;
            display: block;
            flex-shrink: 0;
        }

        .feature-content {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .feature-title {
            display: flex;
            align-items: flex-start;
            gap: 6px;
        }
        .feature-title i {
            color: #007A46;
            font-size: 20px;
            margin-top: 2px;
            flex-shrink: 0;
        }
        .feature-title .feature-title-text {
            font-size: 19px;
            font-weight: bold;
            line-height: 1.4;
            color: #007A46;
        }
        .feature-desc {
            font-size: 13px;
            line-height: 1.6;
            margin: 0;
            font-weight: normal;
        }

        /* CTA */
        .sponsorship-cta { 
            color: #FD9000;
            font-weight: bold; 
            text-decoration: none; 
            display: inline-flex; 
            align-items: center; 
            margin-top: 4px;
        }
/*        .sponsorship-cta::before { content: ">"; margin-right: 4px; }
        .sponsorship-cta:hover { text-decoration: underline; }*/

        /* 支援カテゴリ (Mega 4) */
        .support-categories {
            /* 変更: FlexからGridに変更してレイアウトを固定 */
            display: grid;
            grid-template-columns: 70% 30%;
            gap: 40px; /* グループ間の間隔 */
            margin-bottom: 20px;
/*            border-top: 1px dotted #999;*/
/*            padding-top: 16px;*/
        }
        /* 変更: flexプロパティ削除（Gridアイテムになるため） */
        .support-group.wide { }
        .support-group.narrow { }

        .support-header {
            font-weight: bold;
            margin-bottom: 12px;
            font-size: 19px;
            color: #007A46;
        }

        .support-circles {
            /* 共通スタイルとしてはリセット */
            display: block;
        }

        /* PC版：左側の3つの円をグリッドで均等配置 */
        .support-group.wide .support-circles {
            display: grid;
            grid-template-columns: repeat(3, 36% 29% 35%);
            gap: 20px;
        }
        
        /* PC版：右側の円 */
        .support-group.narrow .support-circles {
            display: block;
        }

        .circle-link {
            display: flex;
            align-items: center;
            text-decoration: none;
            color: #333;
            gap: 12px;
            transition: opacity 0.2s;
        }
        .circle-link:hover {color: #333; opacity: 0.8; }
        
        /* 変更: divではなくimgタグ用のスタイルに変更 */
        .circle-image {
            width: 90px; height: 90px;
            border-radius: 50%;
            background-color: #fff;
            object-fit: cover; /* 画像のフィット */
            flex-shrink: 0;
/*            border: 2px solid #007A46;*/
        }
        /* 各種カラーバリエーション */
/*        .circle-image.voice { border-color: #0088CE; }
        .circle-image.monthly { border-color: #8DC63F; }
        .circle-image.special { border-color: #605CA8; }*/
        
        .circle-label { font-weight: bold; font-size: 14px; line-height: 1.4; }

        .support-links-grid {
            display: grid;
            grid-template-columns: repeat(4, auto);
            justify-content: space-between;
            gap: 16px 20px;
            border-top: 1px dotted #999;
            padding-top: 32px;
        }
        
        .support-text-link {
            display: flex;
            align-items: center;
            font-weight: normal;
            font-size: 14px;
            color: #333;
            transition: opacity 0.2s;
        }
        .support-text-link::before {
            content: "▶";
            color: #007A46;
            margin-right: 8px;
            font-size: 0.5em;
        }
        .support-text-link:hover {color: #333; opacity: 0.8; text-decoration: none; }

        /* PC専用表示（スマホで隠す） */
        .pc-only { display: inline-block; }

        /* スマホ専用ユーティリティ（PCでは非表示） */
        .sp-only-link { display: none; }
        
        /* 追加: 統合された「ご支援・ご参加方法一覧」リンク用 */
        .link-all-methods {
            width: 100%;
        }
        
        @media (min-width: 960px) {
            .link-all-methods {
                margin-bottom: 24px;
                /*
                padding-bottom: 24px;
                border-bottom: 1px solid #d1e3dd;*/
            }
        }

        .sp-border-top, .sp-border-bottom { } /* PCでは何もしない */
        .sp-padding-double { }
        .sp-padding-half-top { }
        .sp-padding-double-bottom { }


        /* --- スマホ用レスポンシブスタイル (ヘッダー用) --- */
        @media (max-width: 960px) {
            /* PC要素の非表示・リセット */
            .header-utility { display: none; }
            .nav-separator { display: none; }
            .logo-area { align-items: flex-start; }
            .logo-image { height: 32px; margin-top: 10px; } /* 少し小さく */
            .pc-only { display: none !important; } /* スマホでPC専用要素を隠す */

            /* ハンバーガーボタン表示 */
            .hamburger-btn {
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 2px;
            }

            /* ナビゲーションのオフキャンバス化 */
            .global-nav {
                position: fixed;
                top: 0;
                right: 0;
                width: 100%; /* オーバーレイ全体 */
                height: 100vh;
                background-color: transparent;
                pointer-events: none; /* 閉じているときはクリック透過 */
                z-index: 100;
                transition: visibility 0.3s;
                visibility: hidden;
            }

            .global-nav.nav-open {
                visibility: visible;
                pointer-events: auto;
            }

            /* 背景オーバーレイ */
            .nav-backdrop {
                display: block;
                position: absolute;
                top: 0; left: 0; width: 100%; height: 100%;
                background-color: rgba(0,0,0,0.5);
                opacity: 0;
                transition: opacity 0.3s;
            }
            .global-nav.nav-open .nav-backdrop { opacity: 1; }

            /* コンテンツラッパー（スライドメニュー部分） */
            .nav-content-wrapper {
                position: absolute;
                top: 0; right: 0;
                width: 100%;
                height: 100%;
                background-color:white;
                display: flex;
                flex-direction: column;
                transform: translateX(100%);
                transition: transform 0.3s ease-out;
                overflow-y: auto;
            }
            .global-nav.nav-open .nav-content-wrapper { transform: translateX(0); }

            /* スマホ用ヘッダーバー */
            .mobile-header-bar {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 16px;
                background-color: #007A46;
                color: #fff;
                font-weight: bold;
                flex-shrink: 0;
            }
            .mobile-header-bar img {
                height: 38px;
            }
            .close-mobile-btn { font-size: 24px; color: #fff; }

            /* ナビゲーションリストの縦積み */
            .nav-list {
                flex-direction: column;
                width: 100%;
                height: auto;
                margin: 0;
                padding: 0;
                align-items: stretch;
                background-color: #e5f1ec;
            }

            .nav-item {
                display: block;
                height: auto;
                border-bottom: 1px solid rgba(0, 77, 38, 0.1);
            }

            /* トリガーボタン（アコーディオンヘッダー） */
            .nav-trigger, .cta-btn {
                background-color: transparent;
                color: #4d4e53;
                padding: 16px;
                height: auto;
                display: flex;
                justify-content: space-between; /* アイコンを右端に */
                width: 100%;
                border-radius: 0;
                margin: 0;
                box-shadow: none;
                font-size: 16px; /* 文字サイズ調整 */
                text-align: left;
                font-weight: bold;
            }
            
            .cta-btn {
                justify-content: flex-start;
                padding-left: 40px;
            }
            
            .nav-trigger:hover, .cta-btn:hover,
            .nav-trigger.active, .cta-btn.active {
                background-color: rgba(0, 77, 38, 0.05);
                color: #4d4e53;
                transform: none;
            }

            .cta-btn::before {
                width: 24px;
                height: 24px;
                left: 12px;
                background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2300703C'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1.5 13.5v-7l5 3.5-5 3.5z'/%3E%3C/svg%3E");
            }

            /* CTAボタン特有のリセット */
            .cta-btn i { display: none; } /* アイコン変更のため */
            
            /* プラスアイコン表示 */
            .nav-trigger-icon {
                display: block !important;
                color: #007A46;
                transition: transform 0.3s;
            }
            .nav-trigger.active .nav-trigger-icon { transform: rotate(45deg); }

            /* サブメニュー（アコーディオン） */
            .nav-submenu {
                display: block; /* 常にDOMにはある */
                position: static; /* 絶対配置解除 */
                width: 100%;
                transform: none;
                opacity: 1;
                visibility: visible;
                box-shadow: none;
                border-top: none;
                padding: 0;
                
                max-height: 0;
                overflow: hidden;
                transition: max-height 0.3s ease-out;
            }
            
            .nav-submenu .menu_container { padding: 0; }

            /* --- コンテンツレイアウトのスマホ化（縦積みリセット） --- */
            .mega-grid, .mega-grid-custom-ratio, .mega-grid-sponsorship {
                display: block; /* グリッド解除 */
            }
            
            .mega-grid > div, .mega-grid-custom-ratio > div, .mega-grid-sponsorship > div {
                margin-bottom: 0;
            }

            /* リンクリスト */
            ul.submenu-link-list {
                padding: 0;
            }
            .submenu-link-list li { margin-bottom: 0; } /* リセット */
            .submenu-link-list a {
                padding: 8px 16px 8px 24px; /* 余白調整 */
                font-size: 16px;
            }
            
            /* 特集ボックス */
            .feature-box {
                padding: 16px 16px 16px 24px;
                display: flex; /* Flex維持 */
            }
            .feature-image img { width: 80px; height: 80px; }
            .feature-title-text { font-size: 16px; color: #4d4e53; }
            
            /* スマホ専用表示項目の有効化 */
            .sp-only-link { 
                display: flex !important; 
                align-items: center;
                padding: 10px 16px 10px 24px;
                color: #4d4e53;
                font-size: 14px;
                font-weight: bold;
                text-decoration: none;
            }
            .sp-only-link::before {
                content: "▶"; color: #007A46; margin-right: 8px; font-size: 0.6em;
            }
            
            /* 追加: 統合リンクのスマホ用スタイル */
            .link-all-methods {
                padding: 10px 16px 10px 24px;
                color: #4d4e53;
            }

            /* Support カテゴリレイアウト解除 */
            .support-categories {
                display: block;
                gap: 0; margin: 0; padding: 0; border: none;
            }
            
            /* 修正: 統合に伴い表示するように変更 (important削除) */
            .support-circles { display: block; } 
            
            /* 統合リンクのSPスタイル: リスト形式に変更 */
            .circle-link {
                display: flex;
                align-items: center;
                padding: 10px 16px 10px 24px;
                color: #4d4e53;
                font-size: 14px;
                font-weight: bold;
                text-decoration: none;
                gap: 0; /* 画像がないのでギャップ不要 */
                border-bottom: none;
            }
            .circle-link::before {
                content: "▶";
                color: #007A46;
                margin-right: 8px;
                font-size: 0.6em;
            }
            
            /* スマホでは画像を非表示 */
            .circle-image { display: none; }
            
            /* スマホではテキスト内の改行を無効化 */
            .circle-label br { display: none; }
            .circle-label { font-size: 16px; }
            
            /* 代替リスト表示 */
            .support-header {
                padding: 24px 16px 4px 24px;
                margin: 0;
                color: #007A46;
                font-size: 16px;
            }
            .support-group.wide .support-circles {
                grid-template-columns: 1fr;
                gap: 0px;
                font-size: 16px;
            }

            .support-links-grid {
                display: block; /* グリッド解除 */
                padding: 0;
                border: none;
                gap: 0;
            }
            .support-text-link {
                padding: 8px 16px 8px 24px;
                margin-bottom: 0;
                font-size: 16px;
            }

            /* 区切り線と余白調整（SPのみ有効） */
            .sp-border-top {
                position: relative;
            }
            .sp-border-top::before {
                content: ""; position: absolute; top: 0; left: 24px; right: 24px;
                height: 1px; background-color: rgba(0, 77, 38, 0.1);
            }
            .sp-border-bottom {
                position: relative;
            }
            .sp-border-bottom::after {
                content: ""; position: absolute; bottom: 0; left: 24px; right: 24px;
                height: 1px; background-color: rgba(0, 77, 38, 0.1);
            }
            
            .sp-padding-double { padding-top: 24px !important; }
            .sp-padding-half-top { padding-top: 12px !important; }
            .sp-padding-double-bottom { padding-bottom: 20px !important; }

            /* スマホ用ユーティリティエリア */
            .mobile-utilities-area {
                display: block;
                padding-top: 25px;
            }
            .mobile-utilities {
                padding: 16px;
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 16px;
            }
            .mobile-util-link {
                font-size: 15px; font-weight: bold; color: #4d4e53;
                display: flex; align-items: center;
            }
            .mobile-util-link::before {
                content: "▶"; color: #007A46; margin-right: 4px; font-size: 0.7em;
            }
            
            /* 修正: SNSアイコン中央揃え */
            .mobile-social-icons {
                display: flex;
                gap: 16px;
                padding: 16px 16px 24px 16px;
                justify-content: center;
            }
            .logo-tagline {
                display: none;
            }
        }

        /* --- メインコンテンツ（デモ用） --- */
        .main-content {
            padding: 48px 16px;
            text-align: center;
            color: #6b7280;
        }
        .placeholder-box {
            height: 300px;
            background-color: #e5e7eb;
            margin-top: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 8px;
        }



        /* ========================================
           以下、統合されたフッター用CSS
        ========================================
        */
        
        /* --- フッター全体のスタイル --- */
        .site-footer {
            background-color: #007a4d; /* 画像に近い緑色 */
            color: #ffffff;
            font-size: 14px;
            width: 100%;
            line-height: 1.5;
        }

        .footer-inner {
            max-width: 960px;
            margin: 0 auto;
            padding: 40px 20px;
        }
        .footer-inner ul {
            padding: 0;
        }
        /* リンク設定（フッター内限定） */
        .site-footer a {
            color: #ffffff;
            text-decoration: none;
        }

        .site-footer a:hover {
            text-decoration: underline;
        }

        /* --- レイアウト構造（PC版） --- */
        .footer-main-wrapper {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 20px;
            /* 左右エリア（左3カラム群と右1カラム）の間隔をgapで制御 */
            gap: 40px; 
        }

        /* 左側エリア */
        .footer-left-side {
            flex: 1;
            margin-right: 0;
            display: flex;
            flex-direction: column;
        }

        /* 右側エリア */
        .footer-right-side {
            width: 200px;
            flex-shrink: 0;
        }

        /* --- 左側エリア内の3カラムリンク --- */
        .footer-3col-links {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            flex-wrap: wrap;
            margin-bottom: 30px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.3);
            padding-bottom: 20px;
            /* カラム間の隙間を均一に40px空ける */
            gap: 40px; 
        }

        .footer-column {
            padding-right: 0;
        }

        /* 隙間(Gap)を広げた分、min-widthを少し小さく調整 */
        
        /* 1列目 */
        .footer-column:nth-child(1) {
            flex: 1.3;
            min-width: 180px; 
        }

        /* 2列目 */
        .footer-column:nth-child(2) {
            flex: 0.7;
            min-width: 90px;
        }

        /* 3列目 */
        .footer-column:nth-child(3) {
            flex: 1.15; 
            min-width: 140px;
        }
        
        .footer-column:last-child {
            padding-right: 0;
        }

        /* --- 見出し（共通） --- */
        .footer-heading {
            justify-content: center;
            font-size: 13px;
            font-weight: bold;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            padding-top: 8px;
            padding-bottom: 8px;
            border-bottom: 1px solid #fff;
            position: relative;
        }

        .footer-heading::before {
            content: none;
        }

        .footer-list {
            list-style: none;
            font-size: 12px;
        }

        .footer-list li {
            margin-bottom: 8px;
            padding-left: 15px;
            position: relative;
        }

        .footer-list li::before {
            content: ">";
            position: absolute;
            left: 0;
            top: 0;
            font-size: 12px;
            font-family: monospace;
        }

        /* --- ユーティリティリンク（フッター） --- */
        .footer-utility-bar {
            background-color: #005234;
            padding: 15px 20px;
            border-radius: 4px;
            margin-bottom: 20px;
        }

        .utility-list {
            list-style: none;
            display: flex;
            flex-wrap: wrap;
            gap: 5px 20px;
            font-size: 12px;
            margin-bottom: 0;
        }

        .utility-list li::before {
            content: ">";
            margin-right: 5px;
            font-family: monospace;
        }
        
        /* Englishの右寄せ解除 */
        .utility-list li.lang-en {
            margin-left: 0;
        }

        /* --- 下部情報エリア --- */
        .footer-bottom {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-top: 20px;
        }

        .org-info h2 {
            font-size: 15px;
            font-weight: bold;
            margin-bottom: 10px;
            margin-top: 0;
            color: white;
        }

        .org-address, .org-contact {
            font-size: 14px;
            line-height: 1.8;
            color: white;
            margin: 0;
        }

        .org-contact span {
            margin-right: 20px;
        }

        .footer-logo {
            text-align: right;
        }

        .footer-logo img {
            height: 45px;
            width: auto;
            display: block;
        }

        /* --- 最下部：画像とコピーライトエリア --- */
        .footer-image-area {
            width: 100%;
            background-color: #007a4d;
            line-height: 0;
        }

        .footer-image-area img {
            width: 100%;
            height: auto;
            display: block;
            object-fit: cover;
            min-height: 100px; 
        }

        .footer-copyright-bar {
            background-color: #003322;
            color: #ffffff;
            font-size: 11px;
            padding: 15px 20px;
        }

        .copyright-inner {
            max-width: 960px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
        }
        .copyright-text {
            margin-bottom: 0;
            font-size: 11px;
            margin: 0;
            color: white;
        }

        .powered-by-text {
            margin-bottom: 0;
            font-size: 11px;
            margin: 0;
            color: white;
        }
        .powered-by-text a{
            text-decoration: underline;
        }

        /* --- フッター用 スマホ版レスポンシブ --- */
        @media (max-width: 960px) {
            
            .footer-inner {
                padding: 40px 15px;
            }

            .footer-image-area {
                display: none;
            }

            /* --- レイアウト順序制御 --- */
            .footer-main-wrapper {
                flex-direction: column;
                margin-bottom: 0;
                gap: 0; /* スマホではGapをリセット */
            }

            .footer-left-side {
                display: contents;
            }

            .footer-3col-links {
                order: 1;
                width: 100%;
                display: block;
                border-bottom: none;
                margin-bottom: 0;
                padding-bottom: 0;
                gap: 0; /* スマホではGapをリセット */
            }

            .footer-right-side {
                order: 2;
                width: 100%;
                margin-bottom: 30px;
                border-bottom: none;
                padding-bottom: 0;
            }

            .footer-utility-bar {
                order: 3;
                background-color: transparent;
                padding: 20px 15px 0 15px;
                margin-bottom: 30px;
                border-top: 1px solid rgba(255,255,255,0.3);
                line-height: 1.2;
            }

            /* --- ボタンデザイン化（見出しのスタイル変更） --- */
            
            .footer-column {
                width: 100%;
                margin-bottom: 15px;
                padding-right: 0;
            }

            /* スマホ版見出し：カプセル型ボタン風デザイン */
            .footer-heading {
                display: flex;
                align-items: center;
                position: relative;
                height: 40px;
                background-color: #005a33;
                color: #fff;
                border-radius: 50px;
                padding: 15px 20px;
                margin-bottom: 0;
                border-bottom: none;
                font-size: 14px;
                text-align: center;
            }

            /* スマホ版のみアイコン（▶）を復活 */
            .footer-heading::before {
                content: "▶"; /* アイコン復活 */
                position: absolute;
                left: 15px; /* 左端に固定 */
                width: 24px;
                height: 24px;
                line-height: 24px;
                font-size: 10px;
                background-color: #fff; /* 白丸背景 */
                color: #003e29; /* 矢印の色 */
                border-radius: 50%;
                margin-right: 0;
            }

            /* リスト非表示 */
            .footer-list {
                display: none; 
            }
            .footer-right-side .footer-list {
                display: none;
            }

            /* --- ユーティリティリンク --- */
            .utility-list {
                flex-direction: row;
                flex-wrap: wrap;
                gap: 10px 15px;
                font-size: 14px;
            }
            
            .utility-list li {
                width: auto;
            }
            
            .utility-list li.lang-en {
                margin-left: 0;
            }

            /* --- 下部情報エリア --- */
            .footer-bottom {
                flex-direction: column-reverse;
                align-items: anchor-center;
                text-align: center;
/*                gap: 20px;*/
                padding-top: 0;
/*                padding-bottom: 20px;*/
            }

            .footer-logo {
                text-align: left;
                margin-bottom: 10px;
            }
            
            .org-contact {
                display: flex;
                flex-direction: column;
            }

            .copyright-inner {
                flex-direction: column;
                align-items: flex-start;
                gap: 10px;
                text-align: left;
            }
        }

    /* --- ページ上部へ戻るボタン --- */
    .page-top-btn {
        position: fixed;
        bottom: 30px;
        right: 30px;
        width: 50px;
        height: 50px;
        background-color: #3cc387;
        border: 2px solid #ffffff;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease, background-color 0.2s ease, transform 0.2s ease;
        z-index: 99;
    }

    .page-top-btn:hover {
        background-color: #005a33;
        transform: translateY(-3px);
        text-decoration: none;
    }

    /* 上向き矢印アイコン (CSS描画) */
    .page-top-btn::before {
        content: "";
        width: 12px;
        height: 12px;
        border-top: 3px solid #ffffff;
        border-right: 3px solid #ffffff;
        transform: rotate(-45deg);
        margin-top: 4px; /* 中央配置の視覚的微調整 */
    }

    /* スクロール時に付与される表示用クラス */
    .page-top-btn.is-visible {
        opacity: 1;
        visibility: visible;
    }

    @media (max-width: 960px) {
        .page-top-btn {
            bottom: 20px;
            right: 20px;
            width: 44px;
            height: 44px;
        }
        .page-top-btn::before {
            width: 10px;
            height: 10px;
        }
    }