/* --- ベーススタイル --- */
body {
    font-family: 'Noto Sans JP', sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.7;
    color: #333;
    background-color: #fff;
}
/* メイン系の背景：目に優しい象牙色 */
body.main-page {
    background-color: #fdf5e6;
    color: #333333; /* 真っ黒ではなく濃いグレーで読みやすく */
}

* 規約系の背景：落ち着いた薄グレー */
body.document-page {
    background-color: #f9f9f9 !important;
    color: #333333 !important;
}

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

a {
    text-decoration: none;
    color: #007bff;
    transition: color 0.3s;
}

a:hover {
    color: #0056b3;
}

h1, h2, h3 {
    font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
    font-weight: 700;
}


/* -1/29 3回目-- 1. HEADER スタイル --- */
/* --- 1. HEADER スタイル (2行対応・最終版) --- */
.header {
    background-color: #3f51b5 !important; /* 濃い青 */
    color: #ffffff !important;
    border-bottom: 1px solid #eee;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    /* 2行時に備えて高さを柔軟にし、上下に5pxの余白を確保 */
    min-height: 60px;
    height: auto;
    padding: 5px 0;
    display: flex;
    align-items: center;
}

.header-inner {
    width: 100%;
    padding: 0 5%;
    display: flex;
    align-items: center;
    position: relative;
}

.header-logo {
    display: flex;
    align-items: center; /* ロゴと2行の文字を中央で揃える */
    text-decoration: none;
    margin-right: auto;
}

.header-logo img {
    height: 45px; /* 2行の文字の高さに合わせて少しだけ大きく */
    width: auto;
    margin-right: 12px;
}

.header-logo .site-title-logo {
    font-size: 0.95rem;  /* 2行なので圧迫感が出ないよう微調整 */
    font-weight: 700;
    color: #1a237e;
    line-height: 1.3;
    white-space: normal; /* 改行を許可 */
    max-width: 65vw;     /* 右のボタンエリアを確実に確保 */
}

.menu-toggle-button {
    display: block !important;
    background: none;
    border: none;
    font-size: 26px;
    cursor: pointer;
    color: #007bff;
    position: absolute;
    right: 5%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
}

/* 不要なメニュー干渉を排除 */
.site-menu {
    display: none !important;
}


/* ロゴテキストのスタイル (PC用) */
.header-logo .site-title-logo {
    font-size: 1.4em;
    font-weight: 700;
    color: #1a237e;
    line-height: 1.2;
}

/* PC/タブレット用メニュー */
.site-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex; 
}

.site-menu li a {
    display: block;
    padding: 10px 15px;
    color: #333;
    font-weight: 500;
}

.menu-toggle-button {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #007bff;
}


/* --- 2. HERO SECTION スタイル --- */
.hero-section {
    background-color: #e3f2fd; 
    padding: 40px 5%;
}

.hero-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 40px;
}

.hero-text-content, .hero-image-content {
    flex: 1; 
}

.hero-text-content h1 {
    font-size: 2.8em;
    line-height: 1.2;
    margin-bottom: 20px;
    color: #1a237e; 
}

.hero-text-content .main-catch {
    color: #d32f2f; 
}

.hero-text-content .sub-catch {
    font-size: 1.2em;
    font-weight: 700;
    margin-bottom: 15px;
}

.hero-image-content img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    object-fit: contain; 
}

/* --- 2.2. SNS SECTION スタイル --- */
.sns-section {
    max-width: 1200px;
    margin: 20px auto; 
    text-align: center;
    padding: 0 5%;
}

.sns-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.twitter-share-button {
    background-color: #1DA1F2;
    color: white;
    padding: 5px 10px;
    border-radius: 3px;
    font-weight: 500;
    font-size: 0.8em; 
    display: flex;
    align-items: center;
    gap: 5px;
}

/* --- 2.3. MAP INTRO (構造化) --- */
.map-intro-section {
    padding: 40px 0; 
    background-color: #fdf5e6;
}

.map-intro-section h2.section-title {
    text-align: center;
    margin-bottom: 20px; 
    font-size: 2.2em;
    color: #1a237e;
}

.map-intro-content {
    display: flex;
    align-items: center;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 5%;
}

.map-intro-text, .map-intro-image {
    flex: 1;
}

.map-intro-image img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.map-intro-description {
    font-size: 1.1em;
    margin-bottom: 15px; 
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 15px 0; 
}

.feature-list li {
    font-size: 1.1em; 
    line-height: 1.6; 
    margin-bottom: 8px; 
    display: flex;
    align-items: flex-start;
}

.icon-point {
    color: #4caf50; 
    font-size: 1.2em;
    margin-right: 10px;
    line-height: 1.3;
}


/* --- 2.4. BUTTONS SECTION (横並びボタン) --- */
.buttons-section {
    padding: 20px 5%; 
    text-align: center;
}

.link-button-wrapper {
    display: flex;
    justify-content: center; /* ★★★ 修正後: ボタン全体を中央に配置 ★★★ 元はjustify-content: space-between;Flexコンテナの端と端に子要素を押しつけ：改修後）子要素（2つのボタン）を間隔を保ったまま、親コンテナ（max-width: 800px）の中心に配置 */
    gap: 30px;
    max-width: 800px; 
    margin: 0 auto;
}

/* --- 共通ボタン スタイル --- */
.link-button {
    display: inline-block;
    padding: 15px 30px;
    font-size: 1.1em;
    font-weight: 700;
    border-radius: 5px;
    transition: background-color 0.3s, transform 0.1s;
    text-align: center;
    width: 40%; 
    max-width: 350px; 
}

.map-button {
    background-color: #4caf50; 
    color: white;
}

.howto-button {
    background-color: #ff9800; 
    color: white;
}

.map-button:hover, .howto-button:hover {
    transform: translateY(-2px);
}

/* --- 2.5. INFO & CONTACT SECTION スタイル --- */
.info-contact-section {
    padding: 20px 5%; 
    max-width: 1200px;
    margin: 0 auto;
}

.info-contact-section h2 {
    font-size: 2em;
    color: #1a237e;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 15px;
}

.info-contact-section p {
    font-size: 1.0em;
    line-height: 1.5;
    margin-bottom: 5px;
}


/* ================================================================= */
/* ★★★ モバイル対応 (max-width: 768px) - 最終修正エリア ★★★ */
/* ================================================================= */

/* ===== */
/* 1/27 1:17 全面書き換え ★ モバイル対応 (max-width: 768px) - 最終修正エリア ★ */
/* ====== */

@media (max-width: 768px) {
    
    /* --- 1. HEADER (モバイル時) --- */
    .header {
        padding: 5px 0; 
    }
    
    .header-logo img {
        height: 28px; 
    }

    /* PC用のメニューを隠し、ボタンを出す */
    .site-menu {
        display: none; /* 初期状態は非表示 */
    }
/* ★0127 19:43　次を全面書き換え menu-toggle-button  menu-toggle-button::after  */
.menu-toggle-button {
        display: flex !important;    /* blockからflexに変更してアイコンを中央に */
        justify-content: center;
        align-items: center;
        visibility: visible !important;
        opacity: 1 !important;
        
        /* 色の指定：   #333333 から　青（#4285F4）に変更　　color: #ffffff */
        background-color: #4285F4 !important; 
        color: #ffffff !important;       
        width: 44px !important;      /* サイズを固定*/
        height: 66px !important;　  /* サイズを固定 44を66に変更*/
        padding: 0 !important;       /* 余白をリセット */
        border: none !important;
        border-radius: 4px !important;
        z-index: 10001 !important;
        
        /* ボタンを右端に寄せるための指定 */
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
　　　　/* ...これまでの設定（背景色やサイズなど）... */
 　　   /*　★0127　22:12 今回追加する内容 */
    　　z-index: 999999 !important; 
    　　pointer-events: auto !important;
   　　 cursor: pointer !important;
    }

    /* 「 MENU」という文字を消す */
    .menu-toggle-button::after {
        display: none !important; 
    }

/*  書き換えはここまで */
    
    .header-logo .site-title-logo {
        color: #ffffff !important; /* 文字を白に */
        font-size: 1.0em; 
        line-height: 1.1; 
        width: 195px; 
    }



    /* 2. メニューが開いた状態の定義 (is-openが追加されたとき) */
    #global-nav.is-open {
/* 2. 1/27  23:02書換　メニューが開いた状態の定義 (is-openが追加されたとき) */
    display: block !important; 
    position: fixed !important; /* 絶対に画面に固定 */
    top: 0 !important;          /* 隙間なく上から表示 */
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;   /* 画面の高さいっぱい */
    background-color: rgba(255, 255, 255, 0.98) !important; 
    z-index: 100000 !important; /* 地図に隠されないよう非常に大きな数値に */
    overflow-y: auto !important; 
   }
    /* 3. メニュー項目の縦並び */
    #global-nav.is-open ul {
        flex-direction: column; 
        align-items: center; 
        padding-top: 20px;
        display: flex; /* 縦並びを有効化 */
    }

    #global-nav.is-open li {
        width: 100%; 
        border-bottom: 1px solid #eee;
    }

    #global-nav.is-open li a {
        display: block;
        padding: 15px 0;
        font-size: 1.1em;
        text-align: center;
        color: #333;
    }

    /* --- 2. HERO SECTION 等 (モバイル時) --- */
    .hero-section {
        padding: 15px 5% 10px; 
    }

    .hero-inner {
        flex-direction: column; 
        gap: 10px; 
    }
    
    .hero-image-content { order: 2; }
    .hero-text-content { order: 1; }
}

  /* 1/27 1:17 ここまで書換　*/
    /* 【修正開始】 ヒーローセクションの画像表示不具合を修正 */
    .hero-image-content img {
        /* object-fit: contain; が原因で画像が小さくなっていた可能性があるため削除 */
        /* max-width: 100%; と display: block; のみで画像を横幅いっぱいに表示させる */
        /* width: 100%; を追加し、親要素いっぱいに広げる */
        width: 100%; 
        object-fit: cover; /* 画像が欠ける可能性はあるが、領域を埋めるために設定 */
        height: auto;
    }
    /* 【修正終了】 */

    /* --- 2.2. SNS SECTION (モバイル時) --- */
    .sns-section {
        margin: 0 auto 5px; 
        padding: 5px 5%; 
    }

    /* --- 2.3. MAP INTRO (モバイル時) --- */
    .map-intro-section {
        padding: 10px 0; 
    }
    
    .map-intro-section h2.section-title {
        font-size: 1.6em;
        margin-bottom: 10px; 
    }

    .map-intro-content {
        flex-direction: column; 
        padding: 0 5%;
        gap: 0; 
    }
    
    .map-intro-image {
        order: 1; 
        margin-bottom: 8px; 
    }

    .map-intro-text {
        order: 2; 
    }
    
    .map-intro-description {
        margin-bottom: 5px;
    }
    
    .feature-list {
        margin: 5px 0 10px; 
    }

    .feature-list li {
        font-size: 0.95em; 
        margin-bottom: 3px; 
    }
    
    /* --- 2.4. BUTTONS SECTION (モバイル時) --- */
    .buttons-section {
        padding: 10px 5%; 
    }
    
    .link-button {
        width: 45%; 
        font-size: 1.0em;
        padding: 12px 20px; 
    }

    /* --- 2.5. INFO & CONTACT SECTION (モバイル時) --- */
    .info-contact-section {
        padding: 15px 5%; 
    }
    
    .info-contact-section h2 {
        font-size: 1.8em; 
        margin-bottom: 8px; 
    }
    
    .info-contact-section p {
        font-size: 1.0em; 
        line-height: 1.4;
        margin-bottom: 2px;
    }

/* 1/29 22:21--- 3. FOOTER スタイル (修正版) --- */
.footer {
    background-color: #3f51b5 !important; /* 濃い青 */
    color: #ffffff !important;
    border-top: none;
}

.footer-inner {
    display: block; /* 中央寄せのflexを解除 */
    width: 100%;
    max-width: 100%;
    margin: 0;
    /* paddingはHTML側の指定(0 1%)を優先させるため、ここでは最小限に */
}

.footer-logo {
    display: inline-flex !important;
    align-items: center;
    text-decoration: none;
    margin-bottom: 20px;
}

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

.footer-logo .footer-site-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #ffffff !important; /* 文字を白に */
    margin-left: 10px; /* gapの代わりに確実に効くmarginを使用 */
}

.footer-address {
    text-align: left;
    line-height: 1.6;
    color: #ffffff !important; /* 文字を白に */
}

.footer-address h3 {
    font-size: 1rem;
    margin-bottom: 10px;
    color: #ffffff !important; /* 文字を白に */
}

.footer-address p {
    font-size: 0.9rem;
    margin: 5px 0;
    color: #ffffff !important; /* 文字を白に */

}

.copyright {
    text-align: center;
    border-top: 1px solid #eee;
    margin-top: 20px;
    padding-top: 15px;
    color: #fff;
}

/*  ★★　20260125 11:20　現状HTML構造（クラス名等）に合わせて　ホームページのコンパクト化を目的とするCSS　★★　　*/
/* --- スマホ表示・高さ圧縮の決定版 --- */

/* メイン系の背景：目に優しい象牙色 */
body.main-page {
    background-color: #fdf5e6;
    color: #333333; /* 真っ黒ではなく濃いグレーで読みやすく */
}

/* 1. 冒頭のキャッチコピーエリア (hero-section) */

body .hero-section {
    padding: 15px 10px !important;
}

body .main-catch {
    font-size: 1.5rem !important; /* 「ゴー！安心の…」を1.8remから縮小 */
    line-height: 1.2;
}

body .hero-text-content h2 {
    font-size: 1.0rem !important;
    margin: 5px 0 !important;
}

body .sub-catch {
    font-size: 0.9rem !important;
    margin-bottom: 10px !important;
}

/* 2. イラスト画像 (hero-image-content) の縮小 */
body .hero-image-content img {
    max-width: 140px !important; /* イラストを小さくして、下のボタンを上に持ってくる */
    height: auto;
    margin-top: 5px !important;
}

/* 3. 重要！ボタンを横並びにする (buttons-section) */
body .link-button-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    padding: 10px !important;
}

body .cta-message {
    width: 100%; /* メッセージは一行で */
    margin-bottom: 5px !important;
    font-size: 1.0rem !important;
}

body .link-button-wrapper a.link-button {
    flex: 1 1 44% !important; /* ボタンを横2列に */
    min-width: 120px;
    padding: 12px 5px !important;
    margin: 0 !important;
    font-size: 0.9rem !important;
    text-align: center;
}

/* 4. お知らせとお問合せセクションの圧縮 */
body .info-contact-section {
    padding: 15px 10px !important;
}

body .info-contact-section h2 {
    font-size: 1.2rem !important;
    margin-bottom: 8px !important;
}

body .info-contact-section p {
    font-size: 0.85rem !important;
    margin-bottom: 4px !important;
}

/* 5. フッターの圧縮 */
body .footer {
    padding: 20px 10px !important;
}

body .footer-logo img {
    width: 120px !important; /* ロゴを縮小 */
}


// ★　1/25 20:40  ★　プライバシーポリシー　利用規約　ユーザーデータの削除　ページ用ＣＳＳ　
/* --- 規約ページ専用スタイル --- */
.policy-container {
    padding: 40px 0;
    background-color:  #f9f9f9:  /*  #fcfcfc;*/
}

.policy-content {
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.8;
}

.policy-text h3 {
    margin-top: 30px;
    border-left: 4px solid #4285F4;
    padding-left: 15px;
    font-size: 1.2rem;
}

.policy-text p {
    margin-bottom: 15px;
    color: #333;
}

.last-updated {
    text-align: right;
    color: #666;
    font-size: 0.9rem;
}

.policy-footer-action {
    margin-top: 50px;
    text-align: center;
}

/* スマホ（横幅768px以下）での文字サイズを最適化 */
@media screen and (max-width: 768px) {
    .policy-text {
        font-size: 16px !important; /* スマホで読みやすい標準サイズ */
        padding: 0 15px; /* 画面端に文字がくっつかないように余白を */
    }
    
    .policy-text h3 {
        font-size: 1.1rem !important; /* 見出しを少し強調 */
    }
}


/* 2. スマホでのフォントサイズと行間の最適化 */
@media screen and (max-width: 768px) {
    .policy-content p, 
    .policy-content li {
        font-size: 17px !important; /* 標準より少し大きめで読みやすく */
        line-height: 1.8 !important; /* 行間を広くして「詰まってる感」を解消 */
        margin-bottom: 1.2rem !important;
        font-family: sans-serif; /* 飾り（明朝体など）のないフォントでハッキリと */
    }

    .policy-content h1 {
        font-size: 1.6rem !important;
        border-bottom: 2px solid #4285F4; /* 見出しの下線で区切りを明確に */
        padding-bottom: 10px;
        margin-top: 30px;
    }

    .policy-text h3 {
        font-size: 1.2rem !important;
        color: #1a73e8 !important; /* 見出しを青系にしてメリハリをつける */
        margin-top: 25px !important;
    }
}

/* 3. 画面の左右に適切な余白（マージン）を確保 */
.policy-content {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

/* 0127 21:15 「青背景の三本線」へ統一するための集中修正案
/* 各ページの細かい差を無視して、「とにかくこのクラスのボタンはこうする！」という最強の命令をCSSの一番下に追記 */
/* --- ページごとの差異を解消し、青背景・三本線に強制統一 --- */
.menu-toggle-button {
    /* 背景色をGoogleブルーに固定 */
    background-color: #4285F4 !important;
    background: #4285F4 !important;
    
    /* 形状を 44x44 に固定 */
    width: 44px !important;
    height: 44px !important;
    
    /* アイコンの中央配置 */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    border: none !important;
    border-radius: 4px !important;
}

/* アイコン（三本線）を強制的に白く、見えるようにする */
.menu-toggle-button i {
    color: #ffffff !important;
    font-size: 24px !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* 以前の暫定テキスト「MENU」を完全に消去 */
.menu-toggle-button::after {
    content: none !important;
    display: none !important;
}

/* --------------------------------------------------
 ★1/28 0:38 追加  全ページ共通：メニュー開閉の強制スイッチ
   -------------------------------------------------- */

/* 1. 通常時はメニューを完全に隠す（全ページ共通） */
#global-nav {
    display: none; /* 通常は非表示 */
}

/* 2. ボタンが押されて 'is-open' がついた瞬間の表示設定 */
#global-nav.is-open {
    display: block !important;       /* 強制表示 */
    position: fixed !important;      /* 画面に固定 */
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background-color: white !important; /* 背景を白で塗りつぶす */
    z-index: 2147483646 !important;  /* ボタンのすぐ下の層に配置 */
    overflow-y: auto !important;     /* メニューが長い場合はスクロール可能に */
}

/* 3. メニュー内の文字を確実に見えるようにする */
#global-nav.is-open ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding-top: 80px !important;    /* ボタンと被らないよう隙間を空ける */
}

#global-nav.is-open li a {
    color: #333 !important;          /* 文字を黒にする */
    font-size: 1.2rem !important;
    padding: 15px !important;
    display: block !important;
    text-decoration: none !important;
}

#global-nav.is-open {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background-color: #ffffff !important;
    z-index: 2147483647 !important;
    overflow-y: auto !important;
}

/* --- 1/29 16:52 追加1　規約ページ　三種の 横幅とレイアウトの統一 --- */
.content-container {
    max-width: 950px;      /* 読みやすい最適な幅 */
    margin: 0 auto;       /* 中央寄せ */
    padding: 20px;        /* 左右の余白（100%表示の解消） */
    line-height: 1.8;     /* 行間を広げて読みやすく */
    background: #f9f9f9  !important;   /* 背景を白で統一 */
    color: #333333  !important;
}

/* --- 2. ボタンの欠けを直す（ヘッダーの修正） --- */
.header {
    background-color  #3f51b5 !important; /* 濃い青 */
    color: #ffffff !important;
    width: 100%;
    position: sticky;     /* または fixed */
    top: 0;
    z-index: 1000;        /* ボタンが隠れないように前面へ */
    border-bottom: 1px solid #eee;
}

.header-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: flex-end; /* ボタンを右上に配置 */
    padding: 10px 20px;
}

/* --- 3. プライバシーポリシーの書式（見出し）を共通化 --- */
/* Wordで「格好良い」とされていたスタイルを定義 */
.content-container h2 {
    font-size: 1.5rem;
    color: #333;
    border-left: 5px solid #007bff; /* 青いアクセント線 */
    padding-left: 15px;
    margin-top: 40px;
    margin-bottom: 20px;
}

.content-container h3 {
    font-size: 1.2rem;
    border-bottom: 2px solid #eee;
    padding-bottom: 5px;
    margin-top: 30px;
}

/* ================================================= */
/* 3. FOOTER 全ページ共通スタイル (左寄せ・高密度版) */
/* ================================================= */

.footer {
    background-color: #3f51b5 !important;
    color: #ffffff !important;
    padding: 25px 0 15px !important; /* 上を詰め、下(コピーライト側)も削減 */
    width: 100% !important;
    margin: 0 !important;
}

.footer-inner {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 5% !important; /* ヘッダーのロゴ位置と同期 */
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important; /* 左寄せ */
    text-align: left !important;
}

/* ロゴとタイトルのセット */
.footer-logo {
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
    margin-bottom: 15px !important; /* 次のブロックとの間隔を短縮(25px→15px) */
}

.footer-logo img {
    height: 50px !important; /* 視認性向上のため少し拡大 */
    width: auto !important;
}

.footer-logo .footer-site-title {
    font-size: 1.1rem !important; /* 0.95remから拡大 */
    font-weight: 700 !important;
    color: #ffffff !important;
    line-height: 1.2 !important;
    margin-left: 10px !important;
}

/* ================================================= */
/* 3. FOOTER 全ページ共通スタイル (高密度・極小余白版) */
/* ================================================= */

.footer {
    background-color: #3f51b5 !important;
    color: #ffffff !important;
    /* 全体の上下余白を極限までカット。下は0にしてコピーライトの余白で調整 */
    padding: 15px 0 0 !important; 
    width: 100% !important;
}

.footer-inner {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 5% !important; 
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

/* ロゴとタイトルのセット */
.footer-logo {
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
    /* 運営者情報との間隔をさらに半分(約4px)に縮小 */
    margin-bottom: 4px !important; 
}

.footer-logo img {
    height: 50px !important;
    width: auto !important;
}

.footer-logo .footer-site-title {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    line-height: 1.2 !important;
    margin-left: 10px !important;
}


/* ================================================= */
/* 3. FOOTER 全ページ共通スタイル (極限スリム・最終調整) */
/* ================================================= */

.footer {
    background-color: #3f51b5 !important;
    color: #ffffff !important;
    /* フッター全体のpaddingをさらに圧縮 */
    padding: 10px 0 0 !important; 
    width: 100% !important;
    margin: 0 !important;
}

/* ロゴと運営情報の隙間をさらに「半分」に */
.footer-logo {
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
    margin-bottom: 2px !important; /* 4pxからさらに短縮 */
}

/* 運営者情報部 */
.footer-address {
    color: #ffffff !important;
    line-height: 1.2 !important;
    margin-bottom: 2px !important; /* 5pxからさらに短縮 */
    padding-left: 15px !important;
}

/* コピーライト：物理的な高さを最小化 */
.copyright {
    width: 100% !important;
    margin: 0 !important;
    /* 上下 3px。これ以上削ると線と文字が重なり始めます */
    padding-top: 3px !important;
    padding-bottom: 3px !important; 
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
    font-size: 1.0rem !important;
    color: rgba(255, 255, 255, 0.8) !important;
    text-align: center !important;
    /* 文字自体の高さを1.0未満にして上下の隙間を消滅させる */
    line-height: 0.9 !important; 
    display: block !important;
}

/* ================================================= */
/* 1/31 21:255. DOCUMENT-PAGE (規約等) 構造・余白・テキスト完全版 */
/* ================================================= */

/* 1. ページ全体：フッター下の隙間を根絶し、底に沈める */
html {
    height: 100%;
}

body.document-page {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
    background-color: #ffffff;
    overflow-x: hidden; /* 横揺れ防止 */
}

/* 2. 外枠：メインコンテンツを伸ばしてフッターを押し下げる */
.content-container {
    flex: 1 0 auto;
    width: 100%;
    background-color: #f9f9f9;
    padding: 40px 0 0 0; /* 下パディング0でフッターに密着 */
}

/* 3. テキスト部分：左右幅を95%に拡大し、余白をタイトに調整 */
.intro-content {
    max-width: 800px;
    width: 95%;          /* 92%から95%へ拡大 */
    margin: 0 auto;
    padding-left: 8px;   /* 左右余白を最小限に */
    padding-right: 8px;
    padding-bottom: 60px; /* フッターとの距離 */
    box-sizing: border-box;
}

/* 4. 中見出し・本文のスタイル規定 */
.policy-text h3 {
    margin-top: 35px;
    margin-bottom: 15px;
    border-left: 5px solid #4285F4;
    padding-left: 15px;
    font-size: 1.3rem;
    font-weight: bold;
    color: #1a73e8;
}

.policy-text p, .intro-content ul li {
    margin-bottom: 18px;
    color: #333;
    font-size: 17px;
    line-height: 1.85;
}

.last-updated {
    text-align: right;
    color: #666;
    font-size: 0.9rem;
    margin-bottom: 20px;
}

/* 5. フッター：下の数pxの隙間を消し、左右を端まで広げる */
.footer {
    display: block !important;
    vertical-align: bottom !important;
    flex-shrink: 0;
    width: 100% !important;
    margin: 0 !important;
    padding: 30px 0 !important;
}


/* 5. フッター：左の空白を消し、画面端まで広げる */
.footer {
    flex-shrink: 0;
    width: 100% !important;
    margin: 0 !important;
    padding: 30px 0 !important;
    background-color: #f0f0f0; /* 必要に応じて調整 */
}

.footer-inner {
    max-width: 100%;
    margin: 0;
    padding: 0 5%;
}

/* スマホ最適化 */
@media screen and (max-width: 768px) {
    .intro-content {
        width: 100%;
        padding: 0 15px 40px 15px;
    }
}

/* ================================================= */
/* 1/31 21:56 追加　info.html および 規約ページ 共通の構造調整 */
/* ================================================= */

/* 1. info.htmlのbodyにもクラスがある場合、または直接指定 */
body.document-page,
body.info-body { /* info.htmlのbodyにこのクラスを足すか、セレクタを調整 */
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
    margin: 0 !important;
    background-color: #f0f0f0 !important; /* フッター下の隙間を埋める色 */
}

/* 2. メインコンテンツ：お知らせページでも幅を制限する */
.content-container,
.info-container { /* info.htmlでの外枠の名前に合わせてください */
    flex: 1 0 auto !important;
    width: 100% !important;
    background-color: #ffffff !important; /* 記事部分は白 */
    padding-bottom: 60px !important;
}

/* 3. テキスト幅の固定：ここが最重要です */
.intro-content,
.info-content,
.info-detail { /* お知らせページの中身のクラス名をここに並べる */
    max-width: 800px !important;
    width: 95% !important;
    margin: 0 auto !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    box-sizing: border-box !important;
}

/* 4. フッター：お知らせページでも横いっぱいに広げる */
.footer {
    width: 100% !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
}

/* ★　2/21　15:56　以下を追加　　右の＜　＞内は2/18時点のメモ＜ナビ情報パネル（ボタンの左に浮かせる）2026/02/18 20:27 以下2項可変＞　*/
/* ★　2/28　15:10　改版　*/max-height を広げ、padding や line-height を調整することで、複数行の経路情報が自然に収まり、視認性も向上します。
#nav-info-panel {
    position: fixed;
    top: 180px; /* 操作パネルの下に余裕を持たせる */
    left: 10%;
    width: 80%;
    background-color: rgba(47, 79, 47, 0.95); 
    color: white;
    font-size: 0.9rem;
    line-height: 1.4;
    max-height: 120px; /* ★拡張 */
    padding: 12px 16px;
    text-align: center;
    z-index: 3001;
    display: none;
    overflow-y: auto;
    white-space: pre-line;
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.ui-button {
    background-color: #e0e0e0; /* 少し明るめのグレー */
    color: #222;
    padding: 8px 16px;
    border: 1px solid #bbb;
    border-radius: 6px;
    font-weight: bold;
    transition: background-color 0.3s, color 0.3s;
    cursor: pointer;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}

.ui-button.active {
    background-color: #2b7de9; /* Googleブルーより少し濃いめ */
    color: #fff;
    border-color: #1a5fc3;
}

/* 3月4日★★全面書き換えByGemini－Osm.Naka：フォント拡大・アニメーション競合解消版 */
#messageBox {
    position: fixed;
    top: 40%;              /*45% の場合のコメント 中央より少し下げて視界に入りやすく 少し上にあげたくて40%に変更（3月5日）*/
    left: 50%;
    /* transformはアニメーション側で制御するため、ここでは最小限に */
    transform: translate(-50%, -50%); 
    width: 90%;            /* 85%から微増して文字の入りを良くする */
    max-width: 450px;
    
    background-color: rgba(10, 30, 10, 0.98); /* より深い緑で文字を強調 */
    color: #ffffff;
    
    /* ★フォントサイズを1.4remに拡大（約1.12倍） */
    font-size: 1.4rem;    
    font-weight: 900;      /* さらに太くして視認性を極限まで高める */
    line-height: 1.5;
    text-align: center;
    padding: 25px 15px;    /* 上下パディングを増やして「看板」感を出す */
    border: 3px solid rgba(255, 255, 255, 0.8); /* 枠を太く */
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.6);
    
    z-index: 9999;
    display: none;
    pointer-events: none;
    white-space: pre-line;
}

/* ★アニメーションの修正：transformの競合を避ける記述 */
.fade-up-down {
    display: block !important; /* JavaScriptからの指示を確実に反映 */
    animation: fadeUpDown 2.5s ease-in-out forwards;
}

@keyframes fadeUpDown {
    /* translate(-50%, X%) の -50% を全ステップに維持するのがコツです */
    0%   { opacity: 0; transform: translate(-50%, -35%); } /* 下から浮上 */
    15%  { opacity: 1; transform: translate(-50%, -50%); } /* 中央で静止 */
    85%  { opacity: 1; transform: translate(-50%, -50%); } /* 維持 */
    100% { opacity: 0; transform: translate(-50%, -65%); } /* 上へ消える */
}

