/* ========== 1. 共通基盤（旧 style/style.css） ========== */
/* ===== ファイル概要 ===== */
/* 
 * 共通スタイル - ヘッダー・ナビ・フッター・トップページ・レスポンシブ基盤
 * 
 * 画面サイズ別のレスポンシブデザインを管理し、デスクトップからスマートフォンまで
 * 幅広いデバイスに対応したレイアウトを提供します。
 * 
 * 主な機能：
 * - ヘッダー・ナビゲーションのレスポンシブ対応
 * - 画像スライダーの画面サイズ別最適化
 * - メッセージボックスのアニメーション
 * - フッターのレスポンシブレイアウト
 * - 地図コンテナのサイズ調整
 */

/* ===== 基本的なリセットとフォント設定 ===== */
/* Google Fonts: Zen Maru Gothic - 日本語に最適化されたフォント */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500;700&display=swap');

/* ===== スマホ横スクロール防止・フレキシブル基盤 ===== */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
}

/* ===== 基本レイアウト設定 ===== */
/* 
 * body要素の基本設定
 * フォントファミリー、マージン、行間、テキストカラー、背景色を設定
 * position: relative は子要素の絶対配置の基準点として使用
 */
body {
    font-family: 'Zen Maru Gothic', sans-serif; /* 日本語に最適化されたフォント */
    margin: 0;                      /* ブラウザのデフォルトマージンをリセット */
    line-height: 1.6;              /* 行間を設定して読みやすさを向上 */
    color: #333;                    /* テキストの色を設定（濃いグレー） */
    background-color: white;     /* 背景色を薄い白に設定 */
    position: relative;             /* 子要素の絶対配置の基準点 */
    overflow-x: hidden;             /* 横方向のスクロールを防止 */
    width: 100%;                    /* 画面幅に収める */
    max-width: 100%;                /* 最大幅を画面内に制限 */
}

img, video, iframe, embed, object, svg {
    max-width: 100%;
    height: auto;
}

/* ===== 背景画像設定 ===== */
/* 
 * body背景画像の設定
 * 固定位置で画面全体に背景画像を表示し、スクロール時も背景が固定される
 * z-index: -1 で他のコンテンツの背後に配置
 */
.body-background {
    position: fixed;                /* スクロール時も背景画像を固定 */
    top: 0;                         /* 上部に配置 */
    left: 0;                        /* 左端に配置 */
    width: 100%;                    /* 画面幅いっぱいに表示 */
    height: 100%;                   /* 画面高さいっぱいに表示 */
    z-index: -1;                    /* 他のコンテンツの背後に配置 */
    overflow: hidden;               /* はみ出した部分を隠す */
}

/* 
 * 背景画像の表示設定
 * object-fit: cover で画像を画面全体に拡大し、アスペクト比を保持
 * object-position: top center で画像の上部中央を基準に配置
 */
.body-bg-image {
    width: 100%;                    /* 親要素いっぱいに表示 */
    height: 100%;                   /* 親要素いっぱいに表示 */
    object-fit: cover;              /* 画像をHTML全体に広げる（アスペクト比保持） */
    object-position: top center;    /* 画像の上部中央を基準に配置 */
}

/* ===== 基本要素スタイル ===== */
/* 
 * リンクの基本スタイル設定
 * デフォルトの下線を削除し、白色で統一
 */
a {
    text-decoration: none;         /* デフォルトの下線を削除 */
    color: white;                  /* リンクの色を白色に統一 */
}

/* 
 * リストの基本スタイル設定
 * デフォルトのリストマーカーと余白をリセット
 */
ul {
    list-style: none;              /* リストマーカーを削除 */
    padding: 0;                    /* パディングをリセット */
    margin: 0;                     /* マージンをリセット */
}

/* ===== ボタンスタイル ===== */
/* 
 * ボタンの基本スタイル設定
 * ピンク系のグラデーションカラーで統一し、ホバー時のアニメーション効果を追加
 * 角丸デザインでモダンな印象を与える
 */
.button {
    display: inline-block;         /* インラインブロック要素として表示 */
    background-color: #ff69b4;     /* ピンク系の背景色 */
    color: white;                  /* テキストを白色に */
    padding: 12px 24px;           /* 上下12px、左右24pxの内側余白 */
    border-radius: 25px;           /* 角を丸くしてモダンな印象 */
    margin-top: 20px;              /* 上部に20pxの余白 */
    transition: all 0.3s ease;     /* 全プロパティの0.3秒のスムーズな変化 */
    box-shadow: 0 4px 15px rgba(255, 105, 180, 0.2); /* ピンク系の影効果 */
}

/* 
 * ボタンのホバー効果
 * 背景色を濃いピンクに変更し、上に2px移動するアニメーション
 * 影効果も強調して立体感を演出
 */
.button:hover {
    background-color: #ff1493;     /* ホバー時は濃いピンクに */
    transform: translateY(-2px);   /* 上に2px移動するアニメーション */
    box-shadow: 0 6px 20px rgba(255, 105, 180, 0.3); /* 影効果を強調 */
}

/* ===== ヘッダー部分の共通スタイル ===== */
/* 
 * サイトヘッダーの基本設定
 * 固定位置でスクロール時も常に表示され、ナビゲーションの基準点となる
 * 白色背景に影効果で立体感を演出し、z-index: 1000で最前面に表示
 */
.site-header {
    position: fixed;               /* ヘッダーを固定位置に設定（スクロール時も表示） */
    top: 0;                        /* 上部に配置 */
    left: 0;                       /* 左端に配置 */
    right: 0;                      /* 右端に配置 */
    width: 100%;                   /* 幅を100%に設定 */
    max-width: 100%;               /* 画面幅を超えない */
    background: white;             /* 背景色を白に設定 */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* 影効果を追加（立体感） */
    z-index: 1000;                 /* 他の要素より前面に表示 */
    overflow: visible;             /* サブメニューのはみ出しを許可 */
}

/* ===== ヘッダー内部の共通レイアウト ===== */
/* 
 * ヘッダー内部のレイアウト設定
 * フレックスボックスを使用してロゴ、会社名、ナビゲーションを横並びに配置
 * 最小高さ80pxでヘッダーの高さを確保し、レスポンシブ対応
 */
.header-inner {
    display: flex;                 /* フレックスボックスレイアウトを適用 */
    justify-content: flex-start;   /* 左端から配置開始 */
    align-items: center;           /* 垂直方向の中央揃え */
    padding: 1rem 1.5rem;         /* 内側の余白を調整（上下1rem、左右1.5rem） */
    max-width: 100%;               /* 最大幅を画面幅に制限 */
    margin: 0;                     /* 左寄せに配置 */
    width: 100%;                   /* 幅を100%に設定 */
    box-sizing: border-box;        /* ボックスサイズを境界線まで含める */
    min-height: 80px;              /* 最小高さを設定 */
    overflow: visible;             /* サブメニューのはみ出しを許可 */
    position: relative;            /* 子要素の絶対配置の基準にする */
    gap: 2rem;                     /* ロゴとナビメニューの間隔を設定 */
}

/* ===== ロゴコンテナの共通スタイル ===== */
/* 
 * ロゴと会社名を格納するコンテナの設定
 * フレックスボックスで横並びに配置し、要素間の間隔を0.8remに設定
 * flex-shrink: 0 で縮小を防ぎ、min-width: 150px で最小幅を確保
 * margin-right: 0 で右側の余白を0にして左寄せレイアウトを実現
 */
.logo-container {
    display: flex;                 /* フレックスボックスレイアウトを適用 */
    align-items: center;           /* 垂直方向の中央揃え */
    gap: 0.8rem;                   /* 要素間の間隔を調整（0.8rem） */
    flex-shrink: 0;                /* 縮小を防ぐ（固定サイズ） */
    min-width: 150px;              /* 最小幅を調整（画面サイズに応じて） */
    margin-right: 0;               /* 右側の余白を0に設定（左寄せ） */
}

/* ===== ロゴと会社名のスタイル ===== */
/* 
 * ロゴ画像の表示設定
 * 高さ60pxで固定し、幅は自動調整でアスペクト比を保持
 * flex-shrink: 0 でフレックスボックス内での縮小を防止
 */
.logo {
    height: 60px;                    /* ロゴの高さを60pxに固定 */
    width: auto;                     /* 幅を自動調整（アスペクト比保持） */
    flex-shrink: 0;                  /* フレックスボックス内での縮小を防止 */
}

/* 
 * 会社名ロゴの表示設定
 * ロゴと同じ高さ60pxで統一し、左側に8pxの余白を設定
 * flex-shrink: 0 でフレックスボックス内での縮小を防止
 */
.company-name {
    height: 60px;                    /* 会社名の高さを60pxに固定（ロゴと統一） */
    width: auto;                     /* 幅を自動調整（アスペクト比保持） */
    margin-left: 8px;                /* ロゴとの間隔を8pxに調整 */
    flex-shrink: 0;                  /* フレックスボックス内での縮小を防止 */
}

/* ===== メインナビゲーション ===== */
/* 
 * メインナビゲーションの基本設定
 * フレックスボックスでナビゲーションリンクを横並びに配置
 * flex-shrink: 1 で必要に応じて縮小可能にし、margin-left: 0 で左寄せ配置
 * overflow: visible でサブメニューのはみ出しを許可
 */
.main-nav {
    display: flex;                   /* フレックスボックスレイアウトを適用 */
    align-items: center;             /* 垂直方向の中央揃え */
    flex-shrink: 1;                  /* 必要に応じて縮小可能 */
    min-width: 0;                    /* 最小幅を0に設定 */
    margin-left: 0;                  /* 左側の余白を0に設定（左寄せ配置） */
    margin-right: 4rem;              /* 右側に4remの余白を設置 */
    overflow: visible;               /* サブメニューのはみ出しを許可 */
}

/* ===== ナビゲーションリンク ===== */
/* 
 * ナビゲーションリンクのコンテナ設定
 * フレックスボックスで横並びに配置し、要素間の間隔を1remに設定
 * flex-wrap: nowrap で折り返しを防ぎ、align-items: center で垂直中央揃え
 */
.nav-links {
    display: flex !important;        /* デフォルトで表示（!importantで優先度を上げる） */
    list-style: none;                /* リストのマーカーを非表示 */
    margin: 0;                       /* マージンを0に設定 */
    padding: 0;                      /* パディングを0に設定 */
    gap: 1rem;                       /* 要素間の間隔を1remに調整 */
    flex-wrap: nowrap;               /* 折り返しを防ぐ */
    align-items: center;             /* 垂直方向の中央揃え */
}

/* 1440px以上の画面サイズで確実にナビメニューを表示 */
@media (min-width: 1441px) {
    .main-nav {
        margin-right: 4rem;           /* 右側に4remの余白を設置 */
    }
    
    .nav-links {
        display: flex !important;    /* 大画面でも確実に表示 */
        flex-direction: row !important; /* 横並びに配置（強制） */
        position: static !important;   /* 通常の位置に配置（強制） */
        background: transparent !important; /* 背景を透明に（強制） */
        box-shadow: none !important;   /* 影を削除（強制） */
        padding: 0 !important;        /* パディングをリセット（強制） */
        left: auto !important;        /* 左側の位置をリセット（強制） */
        right: auto !important;       /* 右側の位置をリセット（強制） */
        z-index: auto !important;     /* z-indexをリセット（強制） */
        top: auto !important;         /* 上部の位置をリセット（強制） */
    }
    
    .hamburger {
        display: none !important;    /* 大画面ではハンバーガーメニューを非表示 */
    }
    
    /* ===== 大画面用メッセージボックスの調整 ===== */
    .message-box {
        padding: 3.5rem 6rem !important;        /* 左右の余白を調整 */
        font-size: 2.8rem !important;           /* フォントサイズを適切なサイズに */
        margin: 3.5rem auto 11rem !important;   /* 上下の余白を調整 */
        max-width: 90% !important;              /* 最大幅を90%に制限 */
        background: transparent !important;     /* 背景を透明に */
        box-shadow: none !important;            /* 影効果を削除 */
    }
    
    .message-list p {
        font-size: 2.8rem !important;           /* メッセージリストのフォントサイズも適切なサイズに */
    }
}

/* ===== ナビゲーションリンクの詳細設定 ===== */
/* 
 * ナビゲーションリンクの各項目の設定
 * white-space: nowrap でテキストの折り返しを防止し、position: relative でサブメニューの基準点を設定
 * flex-shrink: 0 で縮小を防ぎ、font-size: 0.9rem で適切なサイズに調整
 */
.nav-links li {
    white-space: nowrap;            /* テキストの折り返しを防止 */
    margin-left: 15px;              /* 左側の余白を調整（15pxに増加） */
    margin-right: 15px;             /* 右側の余白を調整（15pxに増加） */
    position: relative;             /* サブメニューの位置決めのため */
    flex-shrink: 0;                 /* 縮小を防ぐ */
    font-size: 0.9rem;             /* フォントサイズを調整 */
    transition: all 0.3s ease;      /* スムーズな変化 */
}

/* 
 * ナビゲーションリンクの基本スタイル
 * デフォルトの下線を削除し、濃いグレーで表示
 * font-weight: 500 で適度な太さに設定し、transition: color 0.3s でスムーズな色変化
 */
.nav-links a {
    text-decoration: none;          /* デフォルトの下線を削除 */
    color: #161515;                 /* 濃いグレーのテキスト色 */
    font-weight: 500;               /* 適度な太さのフォント */
    transition: color 0.3s;         /* 色の変化を0.3秒でスムーズに */
}

/* 
 * ナビゲーションリンクのホバー効果
 * ホバー時により濃いグレーに変化し、視認性を向上
 */
.nav-links a:hover {
    color: #312e2f;                 /* ホバー時により濃いグレーに */
}

/* 
 * ナビゲーションリンクのli要素のホバー効果
 * ホバー時の効果を削除
 */

/* ===== ハンバーガーメニュー ===== */
/* 
 * ハンバーガーメニューボタンの基本設定
 * デフォルトでは非表示で、モバイル表示時のみ表示される
 * 背景と枠線を透明にし、アイコンサイズ1.5remで設定
 * margin-left: 20px でロゴセクションの右側に配置し、margin-right: 20px で右側に余白を作成
 */
.hamburger {
    display: none;                  /* デフォルトで非表示（デスクトップ時） */
    background: none;               /* 背景を透明に */
    border: none;                   /* 枠線を非表示 */
    font-size: 1.5rem;             /* アイコンのサイズを設定 */
    cursor: pointer;                /* カーソルをポインターに */
    color: #333;                    /* アイコンの色を設定（濃いグレー） */
    line-height: 1;                 /* アイコンの縦位置安定 */
    margin-left: auto;              /* 右端寄せ（スマホ対応） */
    margin-right: 0;                /* 右余白を削除 */
    flex-shrink: 0;
}

/* 
 * ハンバーガーメニューのアイコン設定
 * フォントサイズ1.75remで設定し、濃いグレーで表示
 */
.hamburger i {
    pointer-events: none;
    font-size: 1.75rem;             /* アイコンのサイズを1.75remに設定 */
    color: #333;                     /* アイコンの色を濃いグレーに設定 */
}

/* ===== メインコンテンツエリア ===== */
/* 
 * メインコンテンツエリアの基本設定
 * margin-top: 100px でヘッダーの高さ分の余白を確保
 * max-width: 1200px で最大幅を制限し、左右のマージンをautoで中央揃え
 * padding: 2rem で内側の余白を設定
 */
main {
    margin-top: 100px;               /* ヘッダーの高さ分の余白を確保 */
    padding: 2rem;                   /* 内側の余白を設定 */
    max-width: 1200px;               /* 最大幅を設定 */
    width: 100%;                     /* 画面幅に合わせる */
    margin-left: auto;               /* 左右のマージンを自動で設定し、中央揃えを実現 */
    margin-right: auto;              /* 左右のマージンを自動で設定し、中央揃えを実現 */
    box-sizing: border-box;        /* パディングを幅に含める */
}

/* ===== トップコンテンツ ===== */
/* 
 * トップコンテンツの基本設定
 * テキストを中央揃えにし、上下に50pxの余白を設定
 */
.top-content {
    text-align: center;             /* テキストを中央揃え */
    padding: 50px 0;                /* 上下の余白を50pxに設定 */
}

/* ===== フッター装飾 ===== */
/* 
 * フッター装飾画像の設定
 * 幅100%、高さ60pxで設定し、はみ出した部分を隠す
 * position: relative で子要素の絶対配置の基準点を設定
 */
.footer-decoration {
    width: 100%;                     /* 幅を100%に設定 */
    height: 60px;                    /* 高さを60pxに設定 */
    overflow: hidden;                /* はみ出した部分を隠す */
    position: relative;              /* 子要素の絶対配置の基準点 */
}

/* 
 * フッター装飾画像の表示設定
 * 親要素いっぱいに表示し、object-fit: cover でアスペクト比を保持
 * object-position: center で画像の中央を基準に配置
 */
.footer-decoration-image {
    width: 100%;                     /* 親要素いっぱいに表示 */
    height: 100%;                    /* 親要素いっぱいに表示 */
    object-fit: cover;               /* アスペクト比を保持して拡大 */
    object-position: center;         /* 画像の中央を基準に配置 */
}

/* ===== フッターコンテナ ===== */
/* 
 * フッター全体のコンテナ設定
 * position: relative で子要素の絶対配置の基準点を設定
 * width: 100% で画面幅いっぱいに表示
 */
.footer-container {
    position: relative;               /* 子要素の絶対配置の基準点 */
    width: 100%;                     /* 画面幅いっぱいに表示 */
}

/* ===== フッター画像 ===== */
/* 
 * フッター画像の表示設定
 * 幅100%、高さ50pxで設定し、はみ出した部分を隠す
 * margin-bottom: 0 で下部の余白を削除
 */
.footer-image {
    width: 100%;                     /* 幅を100%に設定 */
    height: 50px;                    /* 高さを50pxに設定 */
    overflow: hidden;                /* はみ出した部分を隠す */
    position: relative;              /* 子要素の絶対配置の基準点 */
    margin-bottom: 0;                /* 下部マージンを0に設定 */
}

/* 
 * フッター画像内の装飾画像の表示設定
 * 親要素いっぱいに表示し、object-fit: cover でアスペクト比を保持
 * object-position: center で画像の中央を基準に配置
 */
.footer-image .footer-decoration-image {
    width: 100%;                     /* 親要素いっぱいに表示 */
    height: 100%;                    /* 親要素いっぱいに表示 */
    object-fit: cover;               /* アスペクト比を保持して拡大 */
    object-position: center;         /* 画像の中央を基準に配置 */
}

/* ===== フッター本体 ===== */
/* 
 * フッター本体の基本設定
 * position: relative で子要素の絶対配置の基準点を設定
 * padding: 60px 0 0 で上部に60pxの余白を設定
 * margin-top: 60px で上部に60pxの余白を設定
 */
.footer {
    position: relative;               /* 子要素の絶対配置の基準点 */
    padding: 60px 0 0;               /* 上部に60pxの余白を設定 */
    margin-top: 60px;                /* 上部に60pxの余白を設定 */
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

/* ===== フッター背景画像 ===== */
/* 
 * フッター背景画像の基本設定
 * position: absolute で絶対配置し、フッター全体に背景を表示
 * bottom: 60px でフッター下部（.footer-bottom）には背景画像を表示しない
 * z-index: 1 で他の要素の背後に配置
 */
.footer-background {
    position: absolute;               /* 絶対配置でフッター全体に背景を表示 */
    top: 0;                          /* 上部に配置 */
    left: 0;                         /* 左端に配置 */
    right: 0;                        /* 右端に配置 */
    width: 100%;                     /* 幅を100%に設定 */
    bottom: 60px;                    /* フッター下部（.footer-bottom）には背景画像を表示しない */
    z-index: 1;                      /* 他の要素の背後に配置 */
    overflow: hidden;                /* はみ出した部分を隠す */
}

/* 
 * フッター背景画像のオーバーレイ設定
 * ::before 疑似要素を使用してピンク系のグラデーションオーバーレイを追加
 * z-index: 2 で背景画像より前面に表示
 */
.footer-background::before {
    content: '';                      /* 疑似要素の内容を空に */
    position: absolute;               /* 絶対配置 */
    top: 0;                          /* 上部に配置 */
    left: 0;                         /* 左端に配置 */
    width: 100%;                     /* 幅を100%に設定 */
    height: 100%;                    /* 高さを100%に設定 */
    background: linear-gradient(135deg, rgba(255, 182, 193, 0.3), rgba(255, 105, 180, 0.2)); /* ピンク系のグラデーション */
    z-index: 2;                      /* 背景画像より前面に表示 */
}

/* 
 * フッター背景画像の表示設定
 * 親要素いっぱいに表示し、object-fit: cover でアスペクト比を保持
 * filter: blur(3px) で背景画像を少しぼかしてテキストの視認性を向上
 */
.footer-bg-image {
    width: 100%;                     /* 親要素いっぱいに表示 */
    height: 100%;                    /* 親要素いっぱいに表示 */
    object-fit: cover;               /* アスペクト比を保持して拡大 */
    object-position: center;         /* 画像の中央を基準に配置 */
    filter: blur(3px);               /* 背景画像を少しぼかしてテキストの視認性を向上 */
}

/* ===== フッターコンテンツの重なり順序 ===== */
/* 
 * フッターコンテンツとフッター下部を背景画像の上に表示
 * position: relative で位置を設定し、z-index: 3 でオーバーレイより手前に表示
 */
.footer-content,
.footer-bottom {
    position: relative;               /* 位置を設定 */
    z-index: 3;                      /* オーバーレイより手前に表示 */
}

/* ===== フッターコンテンツ ===== */
/* 
 * フッターコンテンツのレイアウト設定
 * フレックスボックスで横並びに配置し、justify-content: space-around で均等配置
 * max-width: 900px で横幅を制限し、margin: 0 auto で中央揃え
 * gap: 2rem で要素間の間隔を設定
 */
.footer-content {
    display: flex;                   /* フレックスボックスレイアウトを適用 */
    justify-content: space-around;   /* 要素を均等に配置 */
    padding: 0 20px 40px;           /* 左右20px、下部40pxの内側余白 */
    max-width: 900px;               /* 横幅を900pxに制限 */
    margin: 0 auto;                 /* 左右のマージンを自動で中央揃え */
    gap: 2rem;                      /* 要素間の間隔を2remに設定 */
}

/* ===== フッターセクション ===== */
/* 
 * フッターの各セクションの基本設定
 * flex: 1 で均等に幅を分配し、min-width: 200px で最小幅を確保
 */
.footer-section {
    flex: 1;                         /* フレックスボックス内で均等に幅を分配 */
    min-width: 200px;                /* 最小幅を200pxに設定 */
}

/* 
 * フッターセクション見出しの設定
 * font-size: 1.5rem で適切なサイズに設定し、color: black で黒色に統一
 * margin-bottom: 25px で下部に余白を設定し、padding-bottom: 15px で下線用の余白を確保
 * font-weight: 500 で適度な太さに調整
 */
.footer-section h3 {
    font-size: 1.5rem;               /* フォントサイズを1.5remに設定 */
    color: black;                     /* フォントカラーを黒に統一 */
    margin-bottom: 25px;              /* 下部に25pxの余白を設定 */
    position: relative;               /* 下線の絶対配置の基準点 */
    padding-bottom: 15px;             /* 下線用の下部パディングを15pxに設定 */
    font-weight: 500;                 /* フォントの太さを500に設定（適度な太さ） */
    text-align: center;               /* 見出しを中央揃えに */
}

/* ===== フッターセクション見出しの下線 ===== */
/* 
 * フッターセクション見出しの下線設定
 * ::after 疑似要素を使用してピンク系のグラデーション下線を追加
 * width: 50px、height: 3px で適切なサイズに設定し、border-radius: 2px で角を丸く
 */
.footer-section h3::after {
    content: '';                      /* 疑似要素の内容を空に */
    position: absolute;               /* 絶対配置 */
    bottom: 0;                        /* 下部に配置 */
    left: 0;                          /* 左端に配置 */
    width: 50px;                      /* 下線の幅を50pxに設定 */
    height: 3px;                      /* 下線の高さを3pxに設定 */
    background: linear-gradient(90deg, #ff69b4, #ffb3d6); /* ピンク系のグラデーション */
    border-radius: 2px;               /* 角を2pxで丸く */
}

/* ===== フッターセクションのテキスト ===== */
/* 
 * フッターセクション内の段落とリストアイテムの設定
 * font-size: 1.1rem で適切なサイズに設定し、font-weight: 400 で標準的な太さに調整
 * line-height: 1.6 で読みやすい行間を設定し、margin-bottom: 8px で要素間の余白を確保
 */
.footer-section p, .footer-section li {
    font-size: 1.1rem;               /* フォントサイズを1.1remに設定 */
    font-weight: 400;                 /* フォントの太さを400に設定（標準的な太さ） */
    line-height: 1.6;                 /* 行間を1.6に設定（読みやすさ向上） */
    margin-bottom: 8px;               /* 下部に8pxの余白を設定 */
    text-align: center;               /* テキストを中央揃えに */
}

/* ===== フッター連絡先情報 ===== */
/* 
 * フッター連絡先情報のリスト設定
 * padding-left: 0 で左側の余白を削除し、list-style: none でリストマーカーを非表示
 */
.footer-section .contact-info {
    padding-left: 0;                  /* 左側の余白を削除 */
    list-style: none;                 /* リストマーカーを非表示 */
}

/* 
 * フッター連絡先情報のアイコン設定
 * color: #ff69b4 でピンク色に統一し、margin-right: 12px で右側に余白を設定
 * width: 20px で幅を固定し、text-align: center で中央揃え
 */
.footer-section .contact-info i {
    color: #ff69b4;                   /* アイコンをピンク色に統一 */
    margin-right: 12px;               /* 右側に12pxの余白を設定 */
    width: 20px;                      /* アイコンの幅を20pxに固定 */
    text-align: center;               /* アイコンを中央揃え */
    display: inline-block;            /* インラインブロック要素として表示 */
    flex-shrink: 0;                   /* フレックスボックス内で縮小しない */
    vertical-align: top;              /* 上端揃え */
}

/* 電話番号のアイコンを確実に左に配置 */
.footer-section .contact-info li {
    display: flex;                    /* フレックスボックスレイアウト */
    align-items: center;              /* 中央揃えに変更 */
    margin-bottom: 8px;               /* 下部に8pxの余白を設定 */
}

.footer-section .contact-info li i {
    order: -1;                        /* アイコンを最初に配置 */
    margin-right: 12px;               /* 右側に12pxの余白を設定 */
    margin-top: 0;                    /* 上部の余白を削除 */
}

/* 
 * フッター連絡先情報のリンク設定
 * color: #000000 で黒色に統一し、text-decoration: none で下線を削除
 */
.footer-section .contact-info a {
    color: #000000;                   /* 電話番号のリンクを黒色に統一 */
    text-decoration: none;            /* デフォルトの下線を削除 */
    text-align: center;               /* テキストを中央揃えに */
}

/* フッターの連絡先情報全体を中央揃えに */
.footer-section .contact-info {
    text-align: center;               /* 連絡先情報を中央揃えに */
}

.footer-section .contact-info li {
    justify-content: center;          /* フレックスボックス内で中央揃え */
}

/* 
 * フッター連絡先情報のホバー効果
 * ホバー時により薄い黒色に変化し、視認性を向上
 */
.footer-section .contact-info a:hover {
    color: #333333;                   /* ホバー時の色を少し薄い黒に変更 */
}

/* ===== フッター最下部 ===== */
/* 
 * フッター最下部の設定
 * background-color: #fce4ec で薄いピンク系の背景色を設定
 * text-align: center でテキストを中央揃えにし、padding: 20px 0 で上下の余白を設定
 * font-size: 0.9rem で適切なサイズに調整
 */
.footer-bottom {
    background-color: #fce4ec;        /* 薄いピンク系の背景色 */
    text-align: center;               /* テキストを中央揃え */
    padding: 20px 0;                  /* 上下に20pxの余白を設定 */
    font-size: 0.9rem;                /* フォントサイズを0.9remに設定 */
}

/* ===== フッター最下部のテキスト ===== */
/* 
 * フッター最下部のテキスト設定
 * margin: 0 で余白を削除し、color: black で黒色に統一
 * font-weight: 300 で細字に設定し、読みやすさを向上
 */
.footer-bottom p {
    margin: 0;                       /* 余白を削除 */
    color: black;                    /* フォントカラーを黒に統一 */
    font-weight: 300;                /* フォントを細字に設定（読みやすさ向上） */
}

/* ===== メッセージボックスの共通スタイル ===== */
/* 
 * メッセージボックスの基本設定
 * 通常時（デフォルト）のスタイル設定
 * padding: 2rem 3rem で左右の余白を広げ、font-size: 2rem でフォントサイズを大きく
 * margin: 2rem auto 8rem で上下の余白を調整し、max-width: 90% で最大幅を制限
 */
.message-box {
    padding: 2.5rem 4rem !important;            /* 左右の余白を調整 */
    font-size: 2.2rem !important;               /* フォントサイズを適切なサイズに */
    margin: 2.5rem auto 9rem !important;        /* 上下の余白を調整 */
    max-width: 90% !important;                  /* 最大幅を90%に制限 */
    text-align: center !important;              /* テキストを中央揃え */
    background: transparent !important;         /* 背景を透明に */
    border-radius: 15px !important;             /* 角を丸く */
    box-shadow: none !important;                /* 影効果を削除 */
}

.message-list p {
    font-size: 2.2rem !important;               /* メッセージリストのフォントサイズも適切なサイズに */
    line-height: 1.6 !important;                /* 読みやすい行間 */
    margin-bottom: 1rem !important;             /* 段落間の余白 */
}

/* ===== 画像スライダーセクションの共通スタイル ===== */
/* 
 * 画像スライダーセクションの基本設定
 * width: 100% で画面幅いっぱいに表示し、margin: 40px 0 50px で上下の余白を設定
 * overflow: hidden ではみ出した部分を隠し、position: relative で子要素の絶対配置の基準点を設定
 * padding: 0 で左右の余白を削除
 */
.image-slider {
    width: 100%;                     /* 幅を100%に設定（画面幅いっぱい） */
    margin: 40px 0 50px;             /* 上下の余白を設定（上40px、下50px） */
    overflow: hidden;                 /* はみ出した部分を隠す */
    position: relative;               /* 子要素の絶対配置の基準点 */
    padding: 0;                       /* 左右の余白を削除 */
}

/* ===== ヒーロー画像コンテナの共通スタイル ===== */
/* 
 * 集合写真表示用のコンテナ設定
 * 中央揃えで表示し、レスポンシブ対応
 */
.hero-image-container {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 0;
    text-align: center;
}

.hero-image {
    width: 100%;
    max-width: 1200px;
    height: auto;
    object-fit: contain;
    object-position: center;
    display: block;
    border-radius: 15px;
    margin: 0 auto;
}


/* ===== ラップトップ・デスクトップ対応 (1025px) ===== */
/* 
 * ラップトップ・デスクトップサイズ専用のスタイル設定
 * 通常のナビメニューを表示し、ハンバーガーメニューは非表示
 */
@media (min-width: 1025px)  {
    /* メインナビゲーションの位置調整 */
    .main-nav { 
        position: relative;           /* 相対配置に変更 */
        margin-left: 0;               /* 左側の余白を0に設定（左寄せ配置） */
        margin-right: 4rem;           /* 右側に4remの余白を設置 */
    }
    
    /* ハンバーガーメニューは非表示（ラップトップ時は通常のナビメニューを表示） */
    .hamburger {
        display: none !important;    /* ラップトップ時は非表示 */
    }
    
    /* ナビゲーションリンクの表示制御 - ラップトップ時は通常表示 */
    .nav-links { 
        display: flex !important;     /* ラップトップ時は通常表示 */
        flex-direction: row !important; /* 横並びに配置（強制） */
        position: static !important;   /* 通常の位置に配置（強制） */
        background: transparent !important; /* 背景を透明に（強制） */
        box-shadow: none !important;   /* 影を削除（強制） */
        padding: 0 !important;        /* パディングをリセット（強制） */
        left: auto !important;        /* 左側の位置をリセット（強制） */
        right: auto !important;       /* 右側の位置をリセット（強制） */
        z-index: auto !important;     /* z-indexをリセット（強制） */
        top: auto !important;         /* 上部の位置をリセット（強制） */
    }
    
    .nav-links.active { 
        display: flex !important;     /* activeクラスが付与されたら表示 */
    }
    
    /* ===== ヘッダーの調整 ===== */
    /* 
     * ヘッダー内部の余白とサイズ調整
     * padding: 1rem 0.8rem で左右のパディングを調整
     * max-width: 100% で最大幅を画面幅に制限
     */
    .header-inner {
        padding: 1rem 0.8rem;         /* 左右のパディングを調整 */
        max-width: 100%;               /* 最大幅を画面幅に制限 */
    }
    
    /* ロゴと会社名のサイズ調整 */
    .logo {
        height: 65px;                  /* ロゴの高さを65pxに調整 */
    }
    .company-name {
        height: 65px;                  /* 会社名の高さを65pxに調整 */
    }
    
    /* ロゴコンテナの最小幅調整 */
    .logo-container {
        min-width: 140px;              /* 最小幅を140pxに調整 */
    }
    
    /* ===== メッセージボックスの調整 ===== */
    /* 
     * メッセージボックスの余白とサイズ調整
     * padding: 2rem 3.5rem で左右の余白を広げ、font-size: 1.9rem でフォントサイズを調整
     * margin: 2rem auto 8rem で上下の余白を調整し、max-width: 90% で最大幅を制限
     */
    .message-box {
        padding: 3rem 5rem !important;           /* 左右の余白を調整 */
        font-size: 2.5rem !important;            /* フォントサイズを適切なサイズに */
        margin: 3rem auto 10rem !important;      /* 上下の余白を調整 */
        max-width: 95% !important;               /* 最大幅を95%に調整 */
        background: transparent !important;      /* 背景を透明に */
        box-shadow: none !important;             /* 影効果を削除 */
    }
    
    .message-list p {
        font-size: 2.5rem !important;            /* メッセージリストのフォントサイズも適切なサイズに */
    }
    
    /* ===== 画像スライダーの調整 ===== */
    /* 
     * ラップトップ・デスクトップ対応時の画像スライダーの余白と幅調整
     * margin: 60px 0 55px で上部余白を狭く調整し、width: 100% で幅を画面幅いっぱいに設定
     */
    .image-slider {
        margin: 60px 0 55px;          /* 上部余白を狭く調整 */
        width: 100%;                   /* 幅を100%に設定 */
    }
    
    /* スライダー設定は上部のメディアクエリで統合管理 */
    
    /* フッターの調整 */
    .footer-content {
        padding: 0 20px 40px;
        max-width: 800px; /* フレキシブル対応時は横幅を調整 */
        margin: 0 auto;
    }
    
    .footer-section {
        min-width: 180px; /* 横幅を調整 */
    }
    
    .footer-section h3 {
        font-size: 1.4rem; /* フォントサイズを調整 */
    }
    
    .footer-section p, .footer-section li {
        font-size: 1rem; /* フォントサイズを調整 */
    }
    
    /* フレキシブル対応時のcontact-infoのアイコン配置 */
    .footer-section .contact-info li {
        display: flex !important; /* フレックスボックスレイアウトを強制 */
        align-items: center !important; /* 中央揃えに変更 */
        flex-wrap: nowrap !important; /* 改行を防ぐ */
        justify-content: center !important; /* 中央揃えを強制 */
    }
    
    .footer-section .contact-info li i {
        order: -1 !important; /* アイコンを最初に配置 */
        flex-shrink: 0 !important; /* アイコンを縮小しない */
        width: 18px !important; /* アイコンサイズを少し小さく */
        margin-right: 10px !important; /* 右側の余白を調整 */
        margin-top: 0 !important; /* 上部の余白を削除 */
    }
    
    /* マップの調整 */
    .map-container iframe {
        width: 100%; /* footer-sectionいっぱいに広げる */
        height: 250px; /* フレキシブル対応時は大きく */
    }
}


/* フレキシブル対応時の細かい調整 (タブレット専用: 769px〜1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    /* message-boxの下に大きな余白 */
    .message-box { 
        margin-bottom: 8rem !important; 
        padding: 1rem 2rem !important; /* 左右の余白を調整 */
        font-size: 1.3rem !important; /* フォントサイズをもう少し小さく */
    }
    .header-inner {
        padding: 1rem;
        justify-content: space-between; /* ロゴとハンバーガーを両端に配置 */
        align-items: center;
    }
    .logo-container { 
        margin-right: 0; 
        min-width: 120px; /* 最小幅を調整 */
        flex-shrink: 0;
    }
    .logo {
        height: 60px;
    }
    .company-name {
        height: 60px;
    }
    .main-nav { 
        margin-left: 0;
        margin-right: 0;
        flex-shrink: 0; 
        position: relative;
    }
    /* 背景画像を上部基準に配置し、HTML全体に広げる */
    .body-bg-image { 
        object-position: top center; 
        object-fit: cover; /* 画像をHTML全体に広げる */
    }
    
    /* 1024px以下でも通常のナビメニューを表示し、ハンバーガーメニューは非表示 */
    .hamburger {
        display: none !important;    /* 1024px以下でも非表示 */
    }
    
    /* 1024px以下でも通常のナビメニューを表示 */
    .main-nav .nav-links {
        display: flex !important; /* 通常表示（強制） */
        flex-direction: row !important; /* 横並びに配置（強制） */
        position: static !important;   /* 通常の位置に配置（強制） */
        background: transparent !important; /* 背景を透明に（強制） */
        box-shadow: none !important;   /* 影を削除（強制） */
        padding: 0 !important;        /* パディングをリセット（強制） */
        left: auto !important;        /* 左側の位置をリセット（強制） */
        right: auto !important;       /* 右側の位置をリセット（強制） */
        z-index: auto !important;     /* z-indexをリセット（強制） */
        top: auto !important;         /* 上部の位置をリセット（強制） */
    }
    .nav-links.active { 
        display: flex !important;     /* activeクラスが付与されたら表示 */
    }
    /* フッター背景画像は表示（元に戻す） */
    .footer-background,
    .footer-bg-image {
        display: block !important;
    }
    
    /* フレキシブル対応時のimage-sliderの縦幅を調整 */
    .image-slider {
        margin: 25px 0 60px; /* 上部余白を狭く調整 */
    }
    
    /* 集合写真の調整 - 1024px以下 */
    .hero-image-container {
        width: 100%;
        padding: 0 1rem;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }
    
    .hero-image {
        max-width: 100%;
        width: 100%;
        display: block !important;
        margin: 0 auto !important;
    }
    
    /* フレキシブル対応時のmessage-box調整 */
    .message-box {
        padding: 1.2rem 2.5rem !important;       /* 左右の余白を調整 */
        font-size: 1.5rem !important;            /* フォントサイズをもう少し小さく */
        margin: 1.2rem auto 6rem !important;     /* 上下の余白を調整 */
        max-width: 95% !important;                /* 最大幅を95%に調整 */
        background: transparent !important;       /* 背景を透明に */
        box-shadow: none !important;              /* 影効果を削除 */
    }
    
    .message-list p {
        font-size: 1.5rem !important;            /* メッセージリストのフォントサイズももう少し小さく */
    }
    
    /* フッターの調整 */
    .footer-content {
        padding: 2rem 1rem;
    }
    .footer-section h3 {
        font-size: 1.4rem;
    }
    .footer-section p, .footer-section li {
        font-size: 1.1rem;
    }
    
    /* サービスリンクの調整 - 1024px以下 */
    .service-links-section {
        padding: 0 1.5rem;
        margin: 2rem auto;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }
    
    .service-links-container {
        max-width: 450px;
        width: 100%;
    }
    
    .service-link {
        width: 260px;
        height: 75px;
        padding: 0;
        margin: 0 auto;
        position: relative;
        z-index: 1;
        border-radius: 45px;
    }
    
    .service-link-title {
        font-size: 1.4rem;
    }
    
    /* ホームボタンの調整 - 1024px以下 */
    .home-button-section {
        padding: 0 1.5rem;
        margin: 2rem auto;
    }
    
    .home-button {
        padding: 0.9rem 1.8rem;
        font-size: 1.1rem;
    }
}


/* 中画面フレキシブル対応 (900px以下) */
@media (max-width: 900px) {
    .header-inner {
        padding: 1rem 0.8rem; /* 左右のパディングを調整 */
    }
    .logo {
        height: 55px;
    }
    .company-name {
        height: 55px;
    }
    .message-box {
        padding: 1.2rem 2.5rem !important; /* 左右の余白を調整 */
        font-size: 1.4rem !important; /* フォントサイズをもう少し小さく */
        margin-bottom: 6rem !important;
        background: transparent !important; /* 背景を透明に */
        box-shadow: none !important; /* 影効果を削除 */
    }
    
    .message-list p {
        font-size: 1.4rem !important; /* メッセージリストのフォントサイズももう少し小さく */
    }
    
    /* フレキシブル対応時のimage-sliderの縦幅を調整 */
    .image-slider {
        margin: 40px 0 50px; /* 上部余白を基本と同じに調整 */
    }
    
    /* 集合写真の調整 - 900px以下 */
    .hero-image-container {
        width: 100%;
        padding: 0 1rem;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }
    
    .hero-image {
        max-width: 100%;
        width: 100%;
        display: block !important;
        margin: 0 auto !important;
    }
    
    .footer-content {
        padding: 1.8rem 1rem;
    }
    .footer-section h3 {
        font-size: 1.3rem;
    }
    .footer-section p, .footer-section li {
        font-size: 1rem;
    }
}


/* 小画面フレキシブル対応 (768px以下) */
@media (max-width: 768px) {
    .header-inner {
        padding: 1rem;
        justify-content: space-between; /* ロゴとハンバーガーを両端に配置 */
        align-items: center;
    }
    /* 背景画像を上部基準に配置し、HTML全体に広げる */
    .body-bg-image { 
        object-position: top center; 
        object-fit: cover; /* 画像をHTML全体に広げる */
    }
        .logo-container { 
        margin-right: 0; 
        min-width: 100px; /* 最小幅を調整 */
        flex-shrink: 0;
    }
    .logo {
        height: 50px;
    }
    .company-name {
        height: 50px;
    }
    .header-inner {
        padding: 1rem 1rem; /* 左右のパディングを調整 */
    }
    .message-box {
        padding: 1rem 1rem !important; /* 左右の余白を調整 */
        margin: 1rem auto 6rem !important; /* 下に大きな余白 */
        font-size: 1.5rem !important; /* フォントサイズをもう少し小さく */
        width: 95% !important; /* 幅を広げる */
        max-width: 95% !important; /* 最大幅を広げる */
        background: transparent !important; /* 背景を透明に */
        box-shadow: none !important; /* 影効果を削除 */
    }

    .message-list p {
        font-size: 1.5rem !important; /* フォントサイズをもう少し小さく */
    }
    
    /* フレキシブル対応時のimage-sliderの縦幅を調整 */
    .image-slider {
        margin: 25px 0 60px; /* 上部余白を狭く調整 */
    }
    
    /* 集合写真の調整 - 768px以下 */
    .hero-image-container {
        width: 100%;
        padding: 0 0.5rem;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }
    
    .hero-image {
        max-width: 100%;
        width: 100%;
        display: block !important;
        margin: 0 auto !important;
    }
    
    .footer-content {
        flex-direction: column;
        text-align: center;
        gap: 2rem;
        padding: 1.5rem 1rem;
        max-width: 100%;
        width: 100%;
        margin: 0 auto;
        box-sizing: border-box;
    }

    .footer-section h3 {
        font-size: 1.4rem; /* フレキシブル対応時により大きく */
    }

    .footer-section p, .footer-section li {
        font-size: 1.1rem; /* フレキシブル対応時により大きく */
    }

    .footer-section h3::after {
        left: 50%;
        transform: translateX(-50%);
    }

    .map-container {
        margin-top: 0.8rem;
    }

    .map-container iframe {
        width: 100%; /* footer-sectionいっぱいに広げる */
        height: 200px; /* フレキシブル対応時は大きく */
    }
    
    /* サービスリンクの調整 - 768px以下 */
    .service-links-section {
        padding: 0 1rem;
        margin: 1.5rem auto;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }
    
    .service-links-container {
        max-width: 100%;
        width: 100%;
        gap: 1.2rem;
    }
    
    .service-link {
        width: 240px;
        height: 70px;
        padding: 0;
        margin: 0 auto;
        position: relative;
        z-index: 1;
        box-sizing: border-box;
        border-radius: 40px;
    }
    
    .service-link-title {
        font-size: 1.3rem;
    }
    
}


/* フレキシブルデザイン対応 - 600px以上 */
@media (min-width: 600px) {
    .image-slider {
        margin: 20px 0 60px;
    }
}

/* 中画面タブレット対応 (600px以下) */
@media (max-width: 600px) {
    .header-inner {
        padding: 0.8rem 0.6rem; /* 左右のパディングを調整 */
    }
    .logo {
        height: 45px;
    }
    .company-name {
        height: 45px;
    }
    .message-box {
        padding: 0.8rem 0.8rem; /* 左右の余白を調整 */
        font-size: 1.8rem; /* フォントサイズを少し大きく */
        margin-bottom: 8rem;
        width: 98%; /* 幅をさらに広げる */
        max-width: 98%; /* 最大幅をさらに広げる */
    }
    .message-list p {
        font-size: 1.8rem; /* フォントサイズを少し大きく */
    }
    /* スマホ対応時のセクション余白を調整 */
    .image-slider {
        margin: 25px 0 110px; /* 上部余白を狭く調整 */
    }
    
    /* 集合写真の調整 - 600px以下 */
    .hero-image-container {
        width: 100%;
        padding: 0 0.5rem;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }
    
    .hero-image {
        max-width: 100%;
        width: 100%;
        display: block !important;
        margin: 0 auto !important;
    }
    .footer-content {
        padding: 1.2rem 0.8rem;
        max-width: 500px; /* 中画面タブレット対応時は横幅をさらに小さく */
        margin: 0 auto;
    }
    .footer-section h3 {
        font-size: 1.3rem; /* フレキシブル対応時により大きく */
    }
    .footer-section p, .footer-section li {
        font-size: 0.85rem;
    }
    .map-container iframe {
        width: 100%; /* footer-sectionいっぱいに広げる */
        height: 200px; /* フレキシブル対応時は大きく */
    }
}


/* スマホ用のアニメーション最適化 */
@media (max-width: 480px) {
    /* スマホ対応時のセクション余白を調整 */
    .image-slider {
        margin: 120px 0 100px; /* 上部余白を狭く */
    }
    
    /* 集合写真の調整 - 480px以下 */
    .hero-image-container {
        width: 100%;
        padding: 0 0.5rem;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto !important;
    }
    
    .hero-image {
        max-width: 100%;
        width: 100%;
        display: block !important;
        margin: 0 auto !important;
    }
    
    /* サービスリンクの調整 - 480px以下 */
    .service-links-section {
        padding: 0 1rem;
        margin: 1rem auto;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        position: relative;
        z-index: 1;
        width: 100%;
        box-sizing: border-box;
    }
    
    .service-links-container {
        max-width: 280px;
        width: 100%;
        gap: 0.8rem;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 auto;
        padding: 0;
        box-sizing: border-box;
    }
    
    .service-link {
        width: 75px;
        height: 200px;
        padding: 0;
        border-radius: 50px;
        margin: 0 auto;
        position: relative;
        z-index: 1;
        box-sizing: border-box;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    
    .service-link-title {
        font-size: 0.85rem;
        writing-mode: horizontal-tb;
        text-orientation: mixed;
        letter-spacing: 0.05em;
        margin: 0 auto;
        line-height: 1.4;
        white-space: nowrap;
        display: inline-block;
    }
    
    .service-link-text {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100%;
        height: 100%;
        margin: 0 auto;
    }
    
    /* ホームボタンの調整 - 480px以下 */
    .home-button-section {
        padding: 0 1rem;
        margin: 1rem auto;
    }
    
    .home-button {
        padding: 0.7rem 1.2rem;
        font-size: 0.9rem;
        gap: 0.5rem;
        border-radius: 20px;
    }
    
    .home-button i {
        font-size: 1rem;
    }
}


/* メッセージボックス */
.message-box {
    font-family: 'Zen Maru Gothic', sans-serif;
    color: #ff69b4;
    text-shadow: 2px 2px 8px #ffe4f7, 0 2px 0 #fff;
    border-radius: 16px;
    padding: 0.5em 1em;
    background: transparent;
    display: inline-block;
    margin: 1.5em auto 1em auto;
    letter-spacing: 0.08em;
    font-weight: 700;
    text-align: center;
    max-width: 800px;
    position: relative;
    z-index: 2;
    overflow: hidden;
}

.message-list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
}

.message-list p {
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.7;
    color: #ff69b4;
    margin: 0;
    text-shadow: 2px 2px 8px #ffe4f7, 0 2px 0 #fff;
    text-align: center;
    letter-spacing: 0.08em;
    transform: translateX(100%);
    opacity: 0;
}

.message-list p:nth-child(1) {
    animation: slideInFromRight 32s linear forwards;
}

.message-list p:nth-child(2) {
    animation: slideInFromRight 32s linear forwards 1.5s;
}

.message-list p:nth-child(3) {
    animation: slideInFromRight 32s linear forwards 3s;
}

.message-list p:nth-child(4) {
    animation: slideInFromRight 32s linear forwards 4.5s;
}

/* ===== サービスリンクセクション ===== */
.service-links-section {
    width: 100%;
    max-width: 1200px;
    margin: 3rem auto;
    padding: 0 2rem;
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
}

.service-links-container {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 500px;
}

.service-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 80px;
    padding: 0;
    background: linear-gradient(135deg, #fff5f8 0%, #ffeef5 100%);
    border: 2px solid #ffb6d9;
    border-radius: 50px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(255, 182, 217, 0.2);
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
    margin: 0 auto;
}

.service-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    transition: left 0.5s ease;
}

.service-link:hover::before {
    left: 100%;
}

.service-link:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(255, 182, 217, 0.4);
    border-color: #ff69b4;
    background: linear-gradient(135deg, #fff 0%, #fff5f8 100%);
}


.service-link-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.service-link-title {
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #ff69b4;
    line-height: 1.4;
}


/* ケア内容リンクの特別なスタイル */
.care-link {
    background: linear-gradient(135deg, #fff0f5 0%, #ffeef5 100%);
}


/* リハビリリンクの特別なスタイル */
.rehab-link {
    background: linear-gradient(135deg, #f0f8ff 0%, #e6f3ff 100%);
    border-color: #b3d9ff;
}

.rehab-link:hover {
    border-color: #4da6ff;
    background: linear-gradient(135deg, #fff 0%, #f0f8ff 100%);
}


.rehab-link .service-link-title {
    color: #4da6ff;
}


.message-list p:nth-child(5) {
    animation: slideInFromRight 32s linear forwards 6s;
}

@keyframes slideInFromRight {
    0% {
        transform: translateX(100%);
        opacity: 0;
    }
    18.75% { /* 32秒の18.75% = 6秒 */
        transform: translateX(0);
        opacity: 1;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .message-list p {
        transform: none !important;
        opacity: 1 !important;
        animation: none !important;
    }
}

/* サブメニュー */
.has-submenu {
    position: relative;
    z-index: 9998; /* サブメニューの親要素も高いz-indexに設定 */
    overflow: visible; /* はみ出しを許可 */
}

.submenu {
    display: none;
    position: absolute;
    top: 0;
    right: 70%; /* 親メニューに少しかぶるように調整 */
    background-color: white;
    box-shadow: 0 8px 16px rgba(0,0,0,0.2);
    padding: 10px 0;
    z-index: 9999; /* 最前面に配置 */
    min-width: 160px;
    border-radius: 15px;             /* 角をより丸くする */
    overflow: visible; /* はみ出しを許可 */
    margin-right: 10px; /* 親メニューとの間隔 */
}

.has-submenu:hover .submenu {
    display: block;
}

.submenu li {
    padding: 8px 16px;
    margin: 4px 0;
    text-align: center;               /* テキストを中央揃えに */
    transition: all 0.3s ease;        /* スムーズな変化 */
}

.submenu a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    text-align: center;               /* テキストを中央揃えに */
}

.submenu a:hover {
    background-color: transparent; /* 背景を透明に */
}


    
/* SNSリンク */
.sns-link {
    color: black; /* フォントカラーを黒に変更 */
    transition: color 0.3s ease;
    display: inline-flex;
    align-items: center;
    font-weight: 300; /* 細字に変更 */
}

.sns-link:hover {
    color: #ff69b4;
}

.sns-link i.fab.fa-instagram {
    color: #C13584; /* Instagramのブランドカラー */
    transition: color 0.3s, transform 0.3s;
}

.sns-link:hover i.fab.fa-instagram {
    transform: scale(1.1);
    color: #e1306c;
}

/* 地図コンテナのスタイル */
.map-container {
    margin-top: 1rem;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.map-container:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}

.map-container iframe {
    display: block;
    width: 100%; /* footer-sectionいっぱいに広げる */
    height: 300px; /* デスクトップ用のサイズを大きく */
    border: none;
    border-radius: 10px;
}


/* ===== スマホ画面いっぱい表示 (768px以下) ===== */
@media (max-width: 768px) {
    body {
        min-height: 100vh;
        overflow-x: hidden;
        width: 100%;
        max-width: 100%;
    }

    .body-background {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        z-index: -1;
        overflow: hidden;
        box-sizing: border-box;
    }

    .body-bg-image {
        object-position: top center;
        object-fit: cover;
        transform: none;
        width: 100%;
        height: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .header-inner {
        padding: 0.5rem 0.8rem;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        max-width: 100%;
        gap: 0.5rem;
    }

    .logo-container {
        min-width: 0;
        flex-shrink: 1;
        gap: 0.4rem;
    }

    .logo {
        height: 40px;
        max-width: 100%;
    }

    .company-name {
        height: 40px;
        max-width: 100%;
    }

    .main-nav {
        margin-left: 0;
        margin-right: 0;
        flex-shrink: 0;
        position: static;
    }

    .hamburger {
        position: static !important;
        top: auto;
        right: auto;
        left: auto;
        transform: none;
        z-index: 1001;
        margin-left: auto;
        margin-right: 0;
        padding: 8px;
        flex-shrink: 0;
    }

    .message-box {
        padding: 0.5rem 0.3rem;
        margin: 2rem auto 12rem;
        max-width: 100%;
        width: 100%;
        border-radius: 16px;
        font-size: 1.33rem;
        box-sizing: border-box;
    }

    .message-list {
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
        align-items: center;
    }

    .message-list p {
        font-size: 1.3rem;
        line-height: 1.5;
        padding: 0;
        margin: 0;
        font-weight: 700;
        color: #ff69b4;
        text-align: center;
        text-shadow: 2px 2px 8px #ffe4f7, 0 2px 0 #fff;
        letter-spacing: 0.08em;
        background: transparent;
        border-radius: 0;
        box-shadow: none;
    }

    .footer-content {
        padding: 15px 8px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .footer-section h3 {
        font-size: 1.2rem;
    }

    .footer-section p, .footer-section li {
        font-size: 1rem;
    }

    .footer-background,
    .footer-bg-image {
        display: block !important;
    }

    .footer-section {
        margin-bottom: 15px;
        min-width: 0;
        width: 100%;
    }

    .image-slider {
        width: 100%;
        margin: 20px 0 50px;
        max-width: 100%;
        overflow: hidden;
        box-sizing: border-box;
        padding: 0;
    }

    .map-container {
        margin-top: 0.5rem;
        width: 100%;
        max-width: 100%;
    }

    .map-container iframe {
        width: 100%;
        height: 200px;
    }

    main {
        padding: 1rem;
        width: 100%;
        max-width: 100%;
    }
}

/* Google Fonts: Kiwi Maru, Rounded Mplus 1c, Nico Moji */
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@500&family=M+PLUS+Rounded+1c:wght@700&display=swap');

h1 {
    font-family: 'Hachi Maru Pop', cursive, sans-serif;
    color: #ff69b4;
    text-shadow: 2px 2px 8px #ffe4f7, 0 2px 0 #fff;
    border-radius: 16px;
    padding: 0.5em 1em;
    background: linear-gradient(90deg, #fff0fa 60%, #ffe4f7 100%);
    display: inline-block;
    margin: 1.5em auto 1em auto;
    letter-spacing: 0.08em;
    font-weight: 700;
}

/* フッターのメールリンクスタイル */
.email-link {
    text-decoration: none;
    color: black;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 300; /* 細字に変更 */
}

.email-link:hover {
    color: #ff69b4;
    transform: translateY(-1px);
}

.email-link i {
    font-size: 1rem;
    color: #ff69b4; /* メールアイコンをピンク色に変更 */
}


/* ===== 小画面スマホ対応 (425px以下) ===== */
@media (max-width: 425px) {
    /* スライダーセクションの余白調整 */
    .image-slider {
        margin: 18px 0 70px; /* 上部余白を調整 */
    }
    
    /* ヘッダーの調整 */
    .header-inner {
        padding: 0.4rem 0.6rem; /* 左右のパディングを調整 */
    }
    
    .logo {
        height: 38px; /* ロゴを調整 */
        max-width: 100%;
    }
    
    .company-name {
        height: 38px; /* 会社名を調整 */
        max-width: 100%;
    }
    
    /* メッセージボックスの調整 */
    .message-box {
        padding: 0.5rem 0.3rem; /* 左右の余白を調整 */
        margin: 1.8rem auto 11rem; /* 下の余白を調整 */
        font-size: 1.3rem; /* フォントサイズを調整 */
        border-radius: 15px; /* 角丸を調整 */
    }
    
    .message-list p {
        font-size: 1.2rem; /* フォントサイズを調整 */
        line-height: 1.45;
    }
    
    /* フッターの調整 */
    .footer-content {
        padding: 1rem 0.6rem;
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }
    
    .footer-section h3 {
        font-size: 1.15rem; /* フォントサイズを調整 */
    }
    
    .footer-section p, .footer-section li {
        font-size: 0.95rem; /* フォントサイズを調整 */
    }
    
    .map-container iframe {
        height: 150px; /* 地図の高さを大きく調整 */
    }
}


/* ===== 超小画面スマホ対応 (340px以下) ===== */
@media (max-width: 340px) {
    /* スライダーセクションの余白調整 */
    .image-slider {
        margin: 15px 0 60px; /* 上部余白をさらに狭く */
    }
    
    /* ヘッダーの調整 */
    .header-inner {
        padding: 0.3rem 0.5rem; /* 左右のパディングをさらに調整 */
    }
    
    .logo {
        height: 35px; /* ロゴをさらに小さく */
        max-width: 100%;
    }
    
    .company-name {
        height: 35px; /* 会社名をさらに小さく */
        max-width: 100%;
    }
    
    /* メッセージボックスの調整 */
    .message-box {
        padding: 0.3rem 0.1rem !important; /* 左右の余白をさらに最小に */
        margin: 1rem auto 8rem !important; /* 下の余白を調整 */
        font-size: 1rem !important; /* フォントサイズをさらに小さく */
        border-radius: 12px !important; /* 角丸を調整 */
        background: transparent !important; /* 背景を透明に */
        box-shadow: none !important; /* 影効果を削除 */
    }
    
    .message-list p {
        font-size: 0.9rem !important; /* フォントサイズをさらに小さく */
        line-height: 1.3 !important;
    }
    
    /* フッターの調整 */
    .footer-content {
        padding: 1rem 0.5rem;
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }
    
    .footer-section h3 {
        font-size: 1.1rem; /* フォントサイズを調整 */
    }
    
    .footer-section p, .footer-section li {
        font-size: 0.9rem; /* フォントサイズを調整 */
    }
    
    .map-container iframe {
        height: 120px; /* 地図を大きく調整 */
    }
}

/* ===== 超小型スマートフォン対応 (320px以下) ===== */
@media (max-width: 320px) {
    /* スライダーセクションの余白調整 - 大きな画像に対応 */
    .image-slider {
        margin: 20px 0 80px; /* 大きな画像に対応して余白を調整 */
    }
}

/* ===== メッセージボックスの追加スタイル ===== */
.message-box {
    max-width: 1200px !important;
    margin: 2rem auto !important;
    padding: 2rem 3rem !important;
    background: transparent !important;
    border-radius: 15px !important;
    box-shadow: none !important;
    text-align: center !important;
    position: relative !important;
    overflow: hidden !important;
}

.message-list {
    margin: 0 !important;
    padding: 0 !important;
}

.message-list p {
    font-size: 2.2rem !important;
    line-height: 1.6 !important;
    margin-bottom: 1.5rem !important;
    color: #ff69b4 !important;
    font-weight: 500 !important;
    text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.8), 0 0 10px rgba(255, 255, 255, 0.6) !important;
}

.message-list p:last-child {
    margin-bottom: 0 !important;
}

/* メッセージボックスのレスポンシブ対応 */
@media (max-width: 1024px) {
    .message-box {
        max-width: 95% !important;
        padding: 1.8rem 2.5rem !important;
    }
    
    .message-list p {
        font-size: 2rem !important;
    }
}

@media (max-width: 768px) {
    .message-box {
        padding: 1.5rem 2rem !important;
        margin: 1.5rem auto !important;
    }
    
    .message-list p {
        font-size: 1.8rem !important;
    }
}

@media (max-width: 480px) {
    .message-box {
        padding: 1.2rem 1.5rem !important;
    }
    
    .message-list p {
        font-size: 1.6rem !important;
    }
    
    /* スマートフォン対応時のcontact-infoのアイコン配置 */
    .footer-section .contact-info li {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        margin-bottom: 6px !important;
        justify-content: center !important;
    }
    
    .footer-section .contact-info li i {
        order: -1 !important; /* アイコンを最初に配置 */
        flex-shrink: 0 !important; /* アイコンを縮小しない */
        width: 16px !important; /* アイコンサイズをさらに小さく */
        margin-right: 8px !important; /* 右側の余白を調整 */
        margin-top: 0 !important; /* 上部の余白を削除 */
    }
}

@media (max-width: 425px) {
    .message-box {
        padding: 1rem 1.2rem !important;
        margin: 1.2rem auto !important;
    }
    
    .message-list p {
        font-size: 1.4rem !important;
        line-height: 1.5 !important;
        margin-bottom: 1.2rem !important;
    }
}

@media (max-width: 320px) {
    .message-box {
        padding: 0.8rem 1rem !important;
        margin: 1rem auto !important;
        max-width: 95% !important;
    }
    
    .message-list p {
        font-size: 1.2rem !important;
        line-height: 1.4 !important;
        margin-bottom: 1rem !important;
    }
}

/* ===== Instagramボタン ===== */
/* 
 * Instagramボタンの基本設定
 * Instagram公式デザインに基づいたスタイル
 */
.instagram-btn {
    display: flex;                   /* フレックスボックスレイアウト */
    align-items: center;             /* 垂直方向の中央揃え */
    justify-content: center;         /* 水平方向の中央揃え */
    width: 40px;                     /* 幅を40pxに設定 */
    height: 40px;                    /* 高さを40pxに設定 */
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%); /* Instagram公式グラデーション */
    border-radius: 8px;              /* 角を8pxで丸く */
    color: white;                    /* アイコンを白色に */
    text-decoration: none;           /* デフォルトの下線を削除 */
    font-size: 1.2rem;               /* アイコンサイズを1.2remに設定 */
    transition: all 0.3s ease;       /* 変化をスムーズに */
    box-shadow: 0 2px 8px rgba(188, 24, 136, 0.3); /* Instagram風の影 */
    margin-right: 10px;              /* ハンバーガーボタンとの間隔 */
}

.instagram-btn:hover {
    transform: translateY(-2px);     /* ホバー時に上に移動 */
    box-shadow: 0 4px 12px rgba(188, 24, 136, 0.4); /* ホバー時の影を強化 */
}

.instagram-btn i {
    transition: transform 0.3s ease; /* アイコンの変化をスムーズに */
}

.instagram-btn:hover i {
    transform: scale(1.1);           /* ホバー時にアイコンを拡大 */
}

/* ===== ホームへ戻るボタン ===== */
.home-button-section {
    width: 100%;
    max-width: 1200px;
    margin: 3rem auto;
    padding: 0 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
}

.home-button {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 2rem;
    background: linear-gradient(135deg, #ff69b4 0%, #ffb6d9 100%);
    color: #fff;
    text-decoration: none;
    border-radius: 25px;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.home-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s ease;
}

.home-button:hover::before {
    left: 100%;
}

.home-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(255, 105, 180, 0.5);
    background: linear-gradient(135deg, #ff4da6 0%, #ff99cc 100%);
}

.home-button i {
    font-size: 1.3rem;
    transition: transform 0.3s ease;
}

.home-button:hover i {
    transform: scale(1.1);
}

.home-button span {
    position: relative;
    z-index: 1;
}

/* ===== 全ページ共通：スマホ横スクロール最終調整 ===== */
@media (max-width: 768px) {
    html,
    body {
        overflow-x: hidden !important;
        overscroll-behavior-x: none;
        width: 100% !important;
        max-width: 100% !important;
    }

    .body-background,
    .body-bg-image {
        width: 100% !important;
        max-width: 100% !important;
    }

    .site-header,
    main,
    .footer,
    .footer-container,
    .greeting-container,
    .staff-container,
    .consultation-section,
    .qa-section,
    .recruit-section,
    .care-section,
    .company-info-section,
    .service-links-section,
    .service-links-container,
    .hero-image-container,
    .home-button-section,
    .image-slider {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .site-header {
        overflow: visible !important;
    }

    .header-inner {
        gap: 0.35rem !important;
        padding-left: 0.6rem !important;
        padding-right: 0.6rem !important;
        position: relative !important;
        overflow: visible !important;
    }

    .logo-container {
        min-width: 0 !important;
        flex: 1 1 auto;
        overflow: hidden;
    }

    .logo,
    .company-name {
        max-width: 100%;
        object-fit: contain;
    }

    .company-name {
        max-width: min(180px, 42vw);
    }

    .hamburger,
    .instagram-btn {
        flex-shrink: 0 !important;
    }

    .hamburger {
        margin-left: auto !important;
        margin-right: 0 !important;
    }

    .main-nav {
        margin-right: 0 !important;
        position: static !important;
    }

    .main-nav .nav-links {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .submenu {
        position: static !important;
        right: auto !important;
        min-width: 0 !important;
        width: 100% !important;
        margin-right: 0 !important;
        box-shadow: none !important;
    }

    .has-submenu.active .submenu {
        display: block !important;
    }

    .message-box {
        max-width: 100% !important;
        width: 100% !important;
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
        box-sizing: border-box !important;
    }

    .message-list p,
    .message-list li {
        word-break: break-word;
        overflow-wrap: break-word;
        max-width: 100%;
    }

    .footer-content {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    .footer-section {
        min-width: 0 !important;
        width: 100% !important;
    }

    .footer-section .contact-info li {
        flex-wrap: wrap !important;
        white-space: normal !important;
        justify-content: center !important;
    }

    .service-link {
        width: min(280px, 100%) !important;
        max-width: calc(100% - 1rem) !important;
    }

    .service-link-title {
        white-space: normal !important;
        text-align: center;
    }

    .map-container,
    .map-container iframe {
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .main-nav .nav-links:not(.active) {
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
    }
}

/* ===== スマホ：ハンバーガーメニュー（統合・iPhone対応） ===== */
.mobile-nav-backdrop {
    display: none;
}

@media (max-width: 768px) {
    .site-header {
        overflow: visible !important;
        z-index: 1100 !important;
    }

    .header-inner {
        position: relative !important;
        overflow: visible !important;
    }

    .main-nav {
        position: static !important;
        overflow: visible !important;
    }

    .hamburger {
        display: block !important;
        position: relative !important;
        z-index: 1103 !important;
        min-width: 44px;
        min-height: 44px;
        padding: 10px !important;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
        -webkit-appearance: none;
        appearance: none;
        background: transparent;
        border: none;
        cursor: pointer;
    }

    .mobile-nav-backdrop {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.35);
        z-index: 1100;
    }

    /* 閉じているとき */
    .nav-links {
        display: none !important;
    }

    /* 開いているとき: body直下に移動し fixed で全幅表示 */
    .nav-links.active,
    body.menu-open .nav-links {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        flex-wrap: nowrap !important;
        position: fixed !important;
        top: var(--header-height, 80px) !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0.5rem 0.75rem 0.75rem !important;
        list-style: none !important;
        background: #fff !important;
        border-radius: 0 0 12px 12px !important;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15) !important;
        z-index: 1102 !important;
        gap: 0 !important;
        max-height: calc(100dvh - var(--header-height, 80px)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        pointer-events: auto !important;
        box-sizing: border-box !important;
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
    }

    .nav-links.active li,
    body.menu-open .nav-links li {
        display: block !important;
        margin: 0 !important;
        white-space: normal !important;
        width: 100% !important;
        flex: 0 0 auto !important;
        height: auto !important;
        overflow: visible !important;
        border-bottom: 1px solid #eee;
    }

    .nav-links.active > li:last-child,
    body.menu-open .nav-links > li:last-child {
        border-bottom: none;
    }

    .nav-links.active a,
    body.menu-open .nav-links a {
        display: block !important;
        padding: 0.85rem 0.5rem !important;
        color: #333 !important;
        text-align: center !important;
        font-size: 1rem !important;
        line-height: 1.4 !important;
        white-space: normal !important;
    }

    .has-submenu > a::after {
        content: ' ▾';
        font-size: 0.75em;
    }

    .has-submenu.active > a::after {
        content: ' ▴';
    }

    .submenu {
        display: none !important;
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 0.5rem !important;
        padding: 0.25rem 0 !important;
        box-shadow: none !important;
        background: #f8f8f8 !important;
        border-radius: 8px !important;
    }

    .has-submenu.active .submenu {
        display: block !important;
    }

    .has-submenu:hover .submenu {
        display: none !important;
    }

    .has-submenu.active:hover .submenu {
        display: block !important;
    }

    .submenu li {
        margin: 0 !important;
        padding: 0 !important;
    }

    .submenu a {
        padding: 0.65rem 0.75rem !important;
        font-size: 0.9rem !important;
    }

    /* JSインラインスタイルの補助（iPhone最終手段） */
    #mobile-nav-menu.active {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    #mobile-nav-menu.active li {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
        margin: 0 !important;
        border-bottom: 1px solid #eee;
    }

    #mobile-nav-menu.active a {
        display: block !important;
        color: #333 !important;
        font-size: 1rem !important;
        padding: 0.85rem 0.5rem !important;
        white-space: normal !important;
    }

    #mobile-nav-menu.active .has-submenu.active .submenu {
        display: block !important;
    }
}

/* ===== 下層ページ：スマホ横スクロール防止 ===== */
@media (max-width: 768px) {
    body {
        overflow-x: hidden !important;
    }

    .header-inner {
        justify-content: space-between !important;
    }

    main,
    .greeting-container,
    .profile-container,
    .greeting-text,
    .vertical-text-container,
    .staff-container,
    .consultation-section,
    .consultation-info-section,
    .consultation-content,
    .consultation-image,
    .qa-section,
    .visiting-nursing-qa-section,
    .consultation-qa-section,
    .visiting-nursing-qa-container,
    .recruit-section,
    .job-posting,
    .job-details,
    .care-section,
    .rehabilitation-section,
    .care-container,
    .care-list-section,
    .care-items,
    .company-info-section,
    .company-history-container,
    .guideline-section {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: clip !important;
    }

    .staff-container,
    .qa-section,
    .visiting-nursing-qa-section,
    .consultation-qa-section,
    .recruit-section,
    .consultation-section,
    .greeting-container {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    main {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .care-list-section {
        min-width: 0 !important;
    }

    .care-container {
        flex-direction: column !important;
        gap: 1.5rem !important;
    }

    .job-details ul {
        padding-left: 1.25rem !important;
        margin-left: 0 !important;
    }

    .job-details ul li::before {
        left: -1rem !important;
    }

    .greeting-container {
        flex-direction: column !important;
        gap: 1.5rem !important;
    }

    .profile-container {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .image-container {
        width: min(250px, 100%) !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
    }

    .greeting-text,
    .greeting-text p,
    .staff-container,
    .staff-header-image,
    .staff-header-image img {
        animation: none !important;
        transform: none !important;
    }

    .greeting-text p:hover,
    .care-item:hover {
        transform: none !important;
    }

    h1 {
        display: block !important;
        max-width: 100% !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        box-sizing: border-box !important;
    }

    html {
        overflow-x: hidden !important;
        overscroll-behavior-x: none;
    }

    .hero-section,
    .message-section,
    .home-button-section,
    .footer,
    .footer-container,
    .footer-content,
    .footer-bottom,
    .body-background,
    .soudan-background,
    .consultation-qa-section,
    .consultation-qa-container,
    .consultation-container,
    .staff-grid,
    .staff-card,
    .service-links-section,
    .service-links-container {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: clip !important;
    }

    .consultation-qa-section {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .logo-container,
    .footer-section {
        min-width: 0 !important;
    }

    .message-list p {
        transform: none !important;
        opacity: 1 !important;
        animation: none !important;
    }

    main {
        overflow-x: clip !important;
    }
}

/* ===== iPhone 16 / iOS 18：メニュー表示最終修正 ===== */
@media (max-width: 768px) {
    /* overflow:hidden が position:fixed を壊すため、メニュー開時は解除 */
    html.menu-open,
    body.menu-open {
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
    }

    .mobile-nav-backdrop {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        z-index: 2147483645 !important;
        background: rgba(0, 0, 0, 0.35) !important;
        display: block !important;
    }

    #mobile-nav-menu.active {
        display: block !important;
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 2147483646 !important;
        background: #fff !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: translate3d(0, 0, 0) !important;
        -webkit-transform: translate3d(0, 0, 0) !important;
    }

    #mobile-nav-menu.active > li {
        display: block !important;
        width: 100% !important;
        min-height: 44px !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        white-space: normal !important;
        flex: none !important;
        position: static !important;
        list-style: none !important;
    }

    #mobile-nav-menu.active a {
        display: block !important;
        color: #333 !important;
        font-size: 16px !important;
        line-height: 1.5 !important;
        padding: 14px 8px !important;
        visibility: visible !important;
        opacity: 1 !important;
        white-space: normal !important;
    }

    #mobile-nav-menu.active .has-submenu.active .submenu {
        display: block !important;
        position: static !important;
        width: 100% !important;
    }
}

/* ========== 2. モバイルメニュー（旧 style/mobile-menu.css） ==========
   ハンバーガーアイコンの開閉アニメーションと、
   スマホ専用ドロワーメニュー（#mobile-menu-drawer）のスタイル */
/* ハンバーガー → × アニメーション */
.hamburger-box {
    display: block;
    width: 24px;
    height: 18px;
    position: relative;
}

.hamburger-line {
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: #333333;
    border-radius: 1px;
    transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
}

.hamburger-line:nth-child(1) {
    top: 0;
}

.hamburger-line:nth-child(2) {
    top: 8px;
}

.hamburger-line:nth-child(3) {
    top: 16px;
}

.hamburger.is-active .hamburger-line:nth-child(1) {
    top: 8px;
    transform: rotate(45deg);
}

.hamburger.is-active .hamburger-line:nth-child(2) {
    opacity: 0;
}

.hamburger.is-active .hamburger-line:nth-child(3) {
    top: 8px;
    transform: rotate(-45deg);
}

@media (max-width: 768px) {
    .hamburger {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
    }
}

/* スマホ専用ドロワーメニュー（style.css と完全独立） */

@media (max-width: 768px) {
    /* 既存ナビはスマホでは常に非表示 */
    .main-nav .nav-links {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}

#mobile-menu-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 99998;
}

#mobile-menu-backdrop.is-open {
    display: block;
}

#mobile-menu-drawer {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
    background: #ffffff;
    z-index: 99999;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    box-sizing: border-box;
}

#mobile-menu-drawer.is-open {
    display: block;
}

#mobile-menu-drawer .mobile-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

#mobile-menu-drawer .mobile-menu-list > li {
    display: block;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #eeeeee;
}

#mobile-menu-drawer .mobile-menu-list > li:last-child {
    border-bottom: none;
}

#mobile-menu-drawer .mobile-menu-list a,
#mobile-menu-drawer .mobile-menu-toggle {
    display: block;
    width: 100%;
    margin: 0;
    padding: 16px 20px;
    color: #333333;
    font-size: 16px;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    background: #ffffff;
    border: none;
    box-sizing: border-box;
    font-family: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    touch-action: manipulation;
}

#mobile-menu-drawer .mobile-submenu {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
    background: #f5f5f5;
}

#mobile-menu-drawer .mobile-has-sub.is-expanded .mobile-submenu {
    display: block;
}

#mobile-menu-drawer .mobile-submenu li {
    display: block;
    margin: 0;
    border-top: 1px solid #e8e8e8;
}

#mobile-menu-drawer .mobile-submenu a {
    background: #f5f5f5;
    font-size: 15px;
    padding: 14px 20px;
}

/* ========== 3. ローディング画面（旧 style/loading.css） ==========
   初回表示時のオーバーレイ・ハートスピナー・キラキラ演出 */
/* ローディング画面のスタイル */

/* ローディングオーバーレイ */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    overflow: hidden;
    background: linear-gradient(135deg, #fff0fa 0%, #ffe4f7 50%, #ffd6f0 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.loading-overlay.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    display: none;
}

/* ローディングコンテナ */
.loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}

/* ロゴアニメーション */
.loading-logo {
    width: 150px;
    height: 150px;
    position: relative;
    animation: floatLogo 2s ease-in-out infinite;
}

.loading-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 10px 20px rgba(255, 105, 180, 0.3));
}

@keyframes floatLogo {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-15px);
    }
}

/* スピナーコンテナ */
.loading-spinner {
    position: relative;
    width: 120px;
    height: 120px;
}

/* ハートスピナー */
.heart-spinner {
    position: absolute;
    width: 100%;
    height: 100%;
    animation: rotate 2s linear infinite;
}

.heart {
    position: absolute;
    width: 20px;
    height: 20px;
    background: linear-gradient(135deg, #ff69b4, #ff1493);
    transform: rotate(45deg);
    animation: pulse 1.5s ease-in-out infinite;
    box-shadow: 0 5px 15px rgba(255, 105, 180, 0.4);
}

.heart::before,
.heart::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    background: linear-gradient(135deg, #ff69b4, #ff1493);
    border-radius: 50%;
}

.heart::before {
    top: -10px;
    left: 0;
}

.heart::after {
    top: 0;
    left: -10px;
}

.heart:nth-child(1) { top: 0; left: 50%; transform: translateX(-50%) rotate(45deg); animation-delay: 0s; }
.heart:nth-child(2) { top: 50%; right: 0; transform: translateY(-50%) rotate(45deg); animation-delay: 0.2s; }
.heart:nth-child(3) { bottom: 0; left: 50%; transform: translateX(-50%) rotate(45deg); animation-delay: 0.4s; }
.heart:nth-child(4) { top: 50%; left: 0; transform: translateY(-50%) rotate(45deg); animation-delay: 0.6s; }

@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1) rotate(45deg);
        opacity: 1;
    }
    50% {
        transform: scale(1.3) rotate(45deg);
        opacity: 0.7;
    }
}

/* 中央の円 */
.center-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #ffb3d6, #ff69b4);
    border-radius: 50%;
    box-shadow: 0 8px 25px rgba(255, 105, 180, 0.3);
    animation: centerPulse 2s ease-in-out infinite;
}

@keyframes centerPulse {
    0%, 100% {
        transform: translate(-50%, -50%) scale(1);
        box-shadow: 0 8px 25px rgba(255, 105, 180, 0.3);
    }
    50% {
        transform: translate(-50%, -50%) scale(1.1);
        box-shadow: 0 12px 35px rgba(255, 105, 180, 0.5);
    }
}

/* キラキラエフェクト */
.sparkles {
    position: absolute;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.sparkle {
    position: absolute;
    width: 8px;
    height: 8px;
    background: linear-gradient(135deg, #fff, #ff69b4);
    border-radius: 50%;
    animation: sparkleAnimation 2s ease-in-out infinite;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
}

.sparkle:nth-child(1) { top: 10%; left: 20%; animation-delay: 0s; }
.sparkle:nth-child(2) { top: 20%; right: 15%; animation-delay: 0.3s; }
.sparkle:nth-child(3) { top: 70%; left: 10%; animation-delay: 0.6s; }
.sparkle:nth-child(4) { bottom: 15%; right: 25%; animation-delay: 0.9s; }
.sparkle:nth-child(5) { top: 50%; left: 5%; animation-delay: 1.2s; }
.sparkle:nth-child(6) { top: 30%; left: 85%; animation-delay: 1.5s; }
.sparkle:nth-child(7) { bottom: 25%; left: 30%; animation-delay: 1.8s; }
.sparkle:nth-child(8) { top: 15%; left: 50%; animation-delay: 2.1s; }

@keyframes sparkleAnimation {
    0%, 100% {
        transform: scale(0) rotate(0deg);
        opacity: 0;
    }
    50% {
        transform: scale(1.5) rotate(180deg);
        opacity: 1;
    }
}

/* ローディングテキスト */
.loading-text {
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #ff69b4;
    text-shadow: 2px 2px 8px rgba(255, 105, 180, 0.3);
    letter-spacing: 0.1em;
    animation: textPulse 1.5s ease-in-out infinite;
}

@keyframes textPulse {
    0%, 100% {
        opacity: 0.7;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
}

/* ドット点滅アニメーション */
.loading-dots {
    display: inline-block;
    margin-left: 0.5rem;
}

.loading-dots span {
    animation: dotBlink 1.4s ease-in-out infinite;
}

.loading-dots span:nth-child(1) { animation-delay: 0s; }
.loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.loading-dots span:nth-child(3) { animation-delay: 0.4s; }

@keyframes dotBlink {
    0%, 60%, 100% {
        opacity: 0.3;
    }
    30% {
        opacity: 1;
    }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .loading-logo {
        width: 120px;
        height: 120px;
    }
    
    .loading-spinner {
        width: 100px;
        height: 100px;
    }
    
    .heart {
        width: 16px;
        height: 16px;
    }
    
    .heart::before,
    .heart::after {
        width: 16px;
        height: 16px;
    }
    
    .heart::before {
        top: -8px;
    }
    
    .heart::after {
        left: -8px;
    }
    
    .center-circle {
        width: 50px;
        height: 50px;
    }
    
    .loading-text {
        font-size: 1.3rem;
    }
}

@media (max-width: 480px) {
    .loading-logo {
        width: 100px;
        height: 100px;
    }
    
    .loading-spinner {
        width: 80px;
        height: 80px;
    }
    
    .heart {
        width: 14px;
        height: 14px;
    }
    
    .heart::before,
    .heart::after {
        width: 14px;
        height: 14px;
    }
    
    .heart::before {
        top: -7px;
    }
    
    .heart::after {
        left: -7px;
    }
    
    .center-circle {
        width: 40px;
        height: 40px;
    }
    
    .loading-text {
        font-size: 1.1rem;
    }
    
    .sparkle {
        width: 6px;
        height: 6px;
    }
}

/* ========== 4. ご挨拶ページ（旧 style/goaisatu.css） ==========
   プロフィール写真・挨拶文・会社写真のレイアウトとアニメーション */
.greeting-container {
    max-width: 1200px;
    width: 100%;
    margin: 4rem auto;
    padding: 3rem 2rem;
    box-sizing: border-box;
    overflow-x: hidden;
    display: flex;
    gap: 4rem;
    align-items: flex-start;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    position: relative;
    overflow: hidden;
    animation: goaisatuSlideInUp 1.2s ease-out 0.3s both;
    background: transparent !important;
}

.greeting-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #ff1493, #ff69b4);
    background-size: 200% 100%;
    animation: goaisatuGradientShift 3s ease-in-out infinite;
}

@keyframes goaisatuSlideInUp {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.profile-container {
    flex: 0 0 300px;
    padding: 2rem;
    background: white;
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    text-align: center;
    margin-top: 2rem; /* 上部に余白を追加 */
    display: flex; /* flexboxを有効化 */
    flex-direction: column; /* 縦方向に配置 */
    align-items: center; /* 水平方向の中央揃え */
    justify-content: center; /* 垂直方向の中央揃え */
}

.profile-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #3498db, #2980b9);
}

/* ホバー効果を無効化 */
.profile-container:hover {
    transform: none;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.image-container {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 1.5rem; /* 下部に余白を追加 */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.image-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(255, 105, 180, 0.2), rgba(255, 20, 147, 0.2));
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

/* 画像コンテナのホバー効果を無効化 */
.image-container:hover::before {
    opacity: 0;
}

.image-container:hover {
    transform: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

/* 画像のホバー効果を無効化 */
.image-container:hover img {
    transform: none;
}

.profile-info {
    text-align: center;
    width: 100%;
    font-size: 1.3rem;
    color: #333333;
    font-family: 'Zen Maru Gothic', sans-serif;
    animation: goaisatuFadeIn 1s ease-out 0.8s both;
}

@keyframes goaisatuFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.company {
    margin-bottom: 1rem;
    font-weight: bold;
    color: #ff69b4;
    font-size: 1.4rem;
    position: relative;
    padding-bottom: 0.5rem;
}

.company::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, #ff69b4, #ff1493);
    border-radius: 1px;
}

.position {
    margin-bottom: 0.8rem;
    color: #666;
    font-size: 1.2rem;
    font-weight: 500;
}

.name {
    font-weight: bold;
    color: #666;
    font-size: 1.2rem;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.vertical-text-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
}

.greeting-text {
    flex: 1;
    background: white;
    padding: 2.5rem;
    border-radius: 15px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    position: relative;
    overflow: hidden;
    animation: goaisatuSlideInRight 1.2s ease-out 0.6s both;
}

.greeting-text::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #e74c3c, #c0392b);
}

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

.greeting-text h2 {
    color: #2c3e50;
    font-size: 2.2rem;
    margin-bottom: 2.5rem;
    position: relative;
    padding-bottom: 1.5rem;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-weight: 700;
    text-align: center;
}

.greeting-text h2::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 2rem;
    animation: goaisatuBounce 2s infinite;
}

@keyframes goaisatuBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-5px); }
    60% { transform: translateX(-50%) translateY(-3px); }
}

.greeting-text h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(90deg, #e74c3c, #c0392b);
    border-radius: 2px;
}

.greeting-text p {
    color: #34495e;
    line-height: 2;
    margin-bottom: 2rem;
    font-size: 1.15rem;
    font-family: 'Zen Maru Gothic', sans-serif;
    text-align: justify;
    position: relative;
    padding-left: 1rem;
    border-left: 3px solid rgba(231, 76, 60, 0.3);
    background: linear-gradient(90deg, rgba(231, 76, 60, 0.05), transparent);
    padding: 1rem 1rem 1rem 1.5rem;
    border-radius: 0 8px 8px 0;
    transition: all 0.3s ease;
}

.greeting-text p:hover {
    background: linear-gradient(90deg, rgba(231, 76, 60, 0.1), transparent);
    transform: translateX(5px);
}

.greeting-text p:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 768px) {
    .greeting-container {
        flex-direction: column;
        align-items: center;
        gap: 2.5rem;
        margin: 2rem auto;
        padding: 2rem 1.5rem;
    }
    
    .profile-container {
        flex: 0 0 auto;
        width: 100%;
        max-width: 350px;
    }
    
    .image-container {
        width: 250px;
        height: 250px;
    }
    
    .greeting-text {
        text-align: center;
        padding: 2rem 1.5rem;
    }
    
    .greeting-text h2 {
        font-size: 1.8rem;
        margin-bottom: 2rem;
    }
    
    .greeting-text h2::after {
        left: 50%;
        transform: translateX(-50%);
    }
    
    .greeting-text p {
        text-align: left;
        font-size: 1.1rem;
        padding: 0.8rem 0.8rem 0.8rem 1.2rem;
    }
    
    .company-photo-section {
        margin: 80px auto 0;
        padding: 0 1rem;
        max-width: 600px; /* フレキシブル対応時に横幅を小さく */
    }
    
    .company-photo {
        border-radius: 10px;
        max-width: 600px; /* フレキシブル対応時に画像の横幅を小さく */
    }
}

/* フレキシブル対応時の細かい調整 (1024px以下) */
@media screen and (max-width: 1024px) {
    .company-photo-section {
        max-width: 700px; /* フレキシブル対応時に横幅を小さく */
        margin: 90px auto 0;
        padding: 0 1.5rem;
    }
    
    .company-photo {
        max-width: 700px; /* フレキシブル対応時に画像の横幅を小さく */
    }
}

/* 大画面フレキシブル対応 (1200px以下) */
@media screen and (max-width: 1200px) {
    .company-photo-section {
        max-width: 750px; /* 大画面フレキシブル対応時に横幅を小さく */
        margin: 95px auto 0;
        padding: 0 1.8rem;
    }
    
    .company-photo {
        max-width: 750px; /* 大画面フレキシブル対応時に画像の横幅を小さく */
    }
}

/* 中画面フレキシブル対応 (900px以下) */
@media screen and (max-width: 900px) {
    .company-photo-section {
        max-width: 650px; /* 中画面フレキシブル対応時に横幅を小さく */
        margin: 85px auto 0;
        padding: 0 1.3rem;
    }
    
    .company-photo {
        max-width: 650px; /* 中画面フレキシブル対応時に画像の横幅を小さく */
    }
}

@media screen and (max-width: 480px) {
    .greeting-container {
        padding: 1.5rem 1rem;
        gap: 2rem;
    }
    
    .profile-container {
        padding: 1.5rem;
    }
    
    .image-container {
        width: 200px;
        height: 200px;
    }
    
    .greeting-text {
        padding: 1.5rem 1rem;
    }
    
    .greeting-text h2 {
        font-size: 1.6rem;
    }
    
    .greeting-text p {
        font-size: 1rem;
        line-height: 1.8;
    }
    
    .profile-info {
        font-size: 1.1rem;
    }
    
    .company {
        font-size: 1.2rem;
    }
    
    .name {
        font-size: 1.3rem;
    }
    
    .company-photo-section {
        margin: 70px auto 0;
        padding: 0 0.8rem;
        max-width: 300px; /* スマホ対応時に横幅をさらに小さく */
    }
    
    .company-photo {
        max-width: 300px; /* スマホ対応時に画像の横幅をさらに小さく */
        border-radius: 8px;
    }
}

@media screen and (max-width: 768px) {
    .greeting-container,
    .profile-container,
    .vertical-text-container,
    .greeting-text,
    .image-container {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}

/* ========== 5. 会社概要ページ（旧 style/kaisya.css） ==========
   沿革タイムライン・企業理念・行動指針・重要事項アコーディオン */
/* 会社写真セクション */
.company-photo-section {
    width: 100%;
    max-width: 800px;
    margin: 100px auto 0;
    padding: 0 2rem;
    position: relative;
    animation: kaisyaFadeInUp 1s ease-out;
}

.company-photo-section::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #ff1493);
    border-radius: 2px;
    animation: kaisyaGradientShift 3s ease-in-out infinite;
}

@keyframes kaisyaGradientShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.company-photo-section {
    flex-shrink: 0;
    width: 300px;
}

.company-photo {
    width: 100%;
    max-width: 300px;
    height: auto;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.company-photo:hover {
    transform: scale(1.02);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

.company-photo::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(255, 105, 180, 0.1), rgba(255, 20, 147, 0.1));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.company-photo:hover::after {
    opacity: 1;
}

/* 会社概要ページ専用スタイル */
.company-info-section {
    max-width: 1200px;
    margin: 100px auto 40px auto;
    padding: 3rem 2rem;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.10);
    animation: kaisyaFadeInUp 1s;
}

@keyframes kaisyaFadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

.company-info-section h1,
.company-title {
    text-align: center !important;
    color: #333 !important;
    font-size: 2.2rem !important;
    margin: 0 auto !important;
    display: block !important;
    font-weight: 600;
    margin: 0 auto 2.5rem auto;
    letter-spacing: 0.03em;
    position: relative;
    display: block;
    width: 100%;
}

.company-title {
    background: transparent !important;
    padding: 1rem 2rem !important;
    border-radius: 10px !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
}

@keyframes kaisyaBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-8px); }
    60% { transform: translateX(-50%) translateY(-4px); }
}

.company-history-container {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    margin: 2rem 0 3rem;
}

.company-history {
    flex: 1;
    padding: 2rem;
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(255, 105, 180, 0.07);
    position: relative;
    animation: kaisyaFadeInUp 1.2s 0.2s both;
}

.company-history h2 {
    color: #ff69b4;
    font-size: 1.6rem;
    margin-bottom: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #ff69b4;
}

.history-list {
    list-style: none;
    padding: 0;
    position: relative;
}

.history-list::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: #FFB6C1;
}

.history-list li {
    display: flex;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-left: 2rem;
    position: relative;
}

.history-list li::before {
    content: "";
    position: absolute;
    left: -2px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    background-color: #FFB6C1;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px #FFB6C1;
}

.history-list .year {
    font-weight: bold;
    color: #ff69b4;
    min-width: 110px;
    margin-right: 1.5rem;
    font-size: 1.1rem;
}

.history-list .event {
    color: #333;
    line-height: 1.6;
    font-size: 1.1rem;
}

.company-philosophy {
    margin: 3rem 0;
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(93, 64, 55, 0.15);
    animation: kaisyaFadeInUp 1.2s 0.4s both;
}

.company-philosophy h2 {
    color: #3e2723;
    font-size: 1.6rem;
    margin-bottom: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #3e2723;
    text-align: center;
}

.philosophy-content {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.philosophy-item {
    text-align: center;
    padding: 1.5rem;
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(62, 39, 35, 0.1);
}

/* 企業理念のホバー効果を削除 */

.philosophy-item h3 {
    color: #3e2723;
    font-size: 1.3rem;
    margin-bottom: 1rem;
    font-weight: bold;
}

.philosophy-item h2 {
    color: #3e2723;
    line-height: 1.8;
    font-size: 1.1rem;
}

.philosophy-item p {
    color: #3e2723;
    line-height: 1.8;
    font-size: 1.1rem;
}

.action-guidelines {
    margin: 3rem 0;
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(78, 52, 46, 0.15);
    animation: kaisyaFadeInUp 1.2s 0.6s both;
    box-sizing: border-box;
    overflow: hidden;
    width: 100%;
}

.action-guidelines h2 {
    color: #3e2723;
    font-size: 1.6rem;
    margin-bottom: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #3e2723;
    text-align: center;
}

.guidelines-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

.guideline-item {
    text-align: center;
    padding: 2rem;
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(62, 39, 35, 0.1);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

/* ホバー効果を削除 */

.guideline-icon {
    font-size: 2.5rem;
    color: #ff69b4;
    margin-bottom: 1rem;
}

.guideline-item h3 {
    color: #3e2723;
    font-size: 1.3rem;
    margin-bottom: 1rem;
    font-weight: bold;
}

.guideline-item p {
    color: #3e2723;
    line-height: 1.8;
    font-size: 1.1rem;
}

/* 各種重要事項セクション */
.important-documents-container {
    font-family: "游ゴシック体", "Yu Gothic", "メイリオ", Meiryo, sans-serif;
    background: rgba(255,255,255,0.92);
    border-radius: 18px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.10);
    padding: 2.5em 2em;
    margin: 48px auto 24px auto;
    max-width: 650px;
}

.important-documents-container h2 {
    font-size: 1.7em;
    font-weight: bold;
    text-align: center;
    color: #2d3e50;
    margin-bottom: 1.2em;
    border-bottom: 2px solid #4fc3f7;
    padding-bottom: 0.3em;
    letter-spacing: 0.08em;
}

.important-documents-container ul {
    display: flex;
    flex-direction: column;
    gap: 1.2em;
    padding: 0;
    margin: 0;
}

.important-documents-container li {
    list-style: none;
}

.important-documents-link {
    display: flex;
    align-items: center;
    background: #f5fafd;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(79,195,247,0.08);
    padding: 1em 1.2em;
    font-size: 1.13em;
    color: #1976d2;
    text-decoration: none;
    transition: background 0.2s, box-shadow 0.2s, color 0.2s;
    font-weight: 500;
}

.important-documents-link:hover {
    background: #e3f2fd;
    color: #0d47a1;
    box-shadow: 0 4px 16px rgba(33,150,243,0.13);
    text-decoration: underline;
}

.important-documents-link i {
    margin-right: 0.8em;
    font-size: 1.3em;
    color: #e53935;
}

@media (max-width: 900px) {
    .company-photo-section {
        margin: 80px auto 0;
        padding: 0 1.5rem;
    }
    .company-info-section {
        padding: 2rem 1rem;
    }
    .company-history, .company-philosophy, .action-guidelines {
        padding: 1.2rem;
    }
    .guidelines-content {
        gap: 1.2rem;
    }
}

@media (max-width: 600px) {
    .company-history-container {
        flex-direction: column;
        gap: 1rem;
    }
    .company-photo-section {
        width: 100%;
        max-width: 250px;
        margin: 0 auto;
    }
    .company-photo {
        border-radius: 10px;
        max-width: 250px;
    }
    .company-info-section {
        padding: 1rem 0.5rem;
        margin: 60px 0 20px 0;
    }
    .company-info-section h1,
    .company-title {
        font-size: 1.8rem;
        margin: 0 auto 2rem auto;
        color: #333;
        font-weight: 600;
        text-align: center;
        display: block;
        width: 100%;
    }
    
    .company-title {
        background: transparent;
        padding: 0.8rem 1.5rem;
        border-radius: 8px;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
        display: block;
        width: fit-content;
        max-width: 100%;
    }
    .company-history, .company-philosophy, .action-guidelines {
        padding: 0.7rem;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
    }
    .company-history h2, .company-philosophy h2, .action-guidelines h2 {
        font-size: 1.1rem;
        margin-bottom: 1rem;
    }
    .philosophy-item h3 {
        font-size: 1.1rem;
    }
    .guideline-item {
        padding: 1rem;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
    }
    .guideline-item h3 {
        font-size: 1.1rem;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    .guideline-item p {
        word-wrap: break-word;
        overflow-wrap: break-word;
        font-size: 0.95rem;
    }
    .guideline-icon {
        font-size: 1.5rem;
    }
    .guidelines-content {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 0;
        width: 100%;
        box-sizing: border-box;
    }
    .history-list li,
    .history-list .year,
    .history-list .event {
        font-size: 0.92em !important;
    }
}


@media (max-width: 768px) {
    .company-info-section,
    .company-history-container,
    .guidelines-content,
    .guideline-section,
    .company-history,
    .company-philosophy,
    .action-guidelines {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}


/* アコーディオン用スタイル */
.guideline-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 3em auto 2em auto;
    max-width: 700px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 2em 1.5em;
}
.guideline-section h2 {
    text-align: center;
    font-size: 1.7em;
    margin-bottom: 1.2em;
    color: #2a5d8f;
    letter-spacing: 0.1em;
    font-weight: bold;
}
.accordion {
    width: 100%;
    margin-top: 1em;
}
.accordion-title {
    width: 100%;
    text-align: left;
    background: #f5faff;
    border: none;
    outline: none;
    padding: 1.1em 1.2em;
    font-size: 1.13em;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    border-bottom: 1px solid #cce0ee;
    border-radius: 8px 8px 0 0;
    color: #2366a8;
    font-weight: 600;
    position: relative;
}
.accordion-title.active,
.accordion-title:hover {
    background: #e0f0ff;
    color: #174a6c;
}
.accordion-content {
    max-height: 0;
    overflow: hidden;
    background: #fafdff;
    transition: max-height 0.3s ease;
    padding: 0 1.2em;
    border-bottom: 1px solid #e0eaf2;
    border-radius: 0 0 8px 8px;
}
.accordion-content p {
    margin: 1.2em 0;
    line-height: 1.8;
    color: #333;
    font-size: 1em;
    white-space: pre-line;
}

/* ========== 6. ケア内容・リハビリページ（旧 style/kea.css） ==========
   ケア項目リスト・リハビリセクション・画像ギャラリー（kea.html / rehabilitation.html） */
/* kea.html（ケア内容ページ）専用スタイル */

/* ケア／リハビリページのみ main を白背景カード化（他ページへ影響させない） */
main:has(.care-section),
main:has(.rehabilitation-section) {
    max-width: 1100px;
    margin: 120px auto 60px;
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
}

@media (max-width: 1024px) {
    main:has(.care-section),
    main:has(.rehabilitation-section) {
        max-width: 95%;
        margin: 110px auto 50px;
        padding: 1.8rem;
    }
}

@media (max-width: 768px) {
    main:has(.care-section),
    main:has(.rehabilitation-section) {
        margin-top: 100px;
        padding: 1rem;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}

@media (max-width: 480px) {
    main:has(.care-section),
    main:has(.rehabilitation-section) {
        margin-top: 80px;
        padding: 1rem;
        border-radius: 0;
        max-width: 100%;
    }
}

@media (max-width: 320px) {
    main:has(.care-section),
    main:has(.rehabilitation-section) {
        margin-top: 70px;
        padding: 0.8rem;
    }
}

@media (max-width: 480px) and (max-height: 400px) {
    main:has(.care-section),
    main:has(.rehabilitation-section) {
        margin-top: 60px;
        padding: 0.8rem;
    }
}

.care-section {
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    box-shadow: 0 8px 32px rgba(255, 105, 180, 0.15);
    border: 2px solid #ffb3d6;
    margin: 0 auto 2rem auto;
    max-width: 1000px;
}

.care-section h1 {
    text-align: center;
    font-size: 2.2rem;
    color: black; 
    font-weight: 700;
    margin-bottom: 3rem;
    line-height: 1.6;
    position: relative;
    padding-bottom: 1rem;
}

.care-section h1::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #ffb3d6);
    border-radius: 2px;
}

.care-content {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.care-content h2 {
    font-size: 1.8rem;
    color: #333;
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #e0e0e0;
    text-align: center;
}

.company-features {
    list-style: none;
    padding-left: 0;
    margin-bottom: 3rem;
    max-width: 680px;
    width: 100%;
}

.company-features li {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    padding-left: 2rem;
    position: relative;
    line-height: 1.7;
}

.company-features li::before {
    content: '●';
    background: linear-gradient(90deg, #ff69b4, #e91e63);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    position: absolute;
    left: 0.33rem; /* 少し右に移動 */
    top: 0;
    font-weight: bold;
    font-size: 0.8rem; /* サイズを小さく */
}

.care-content p {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 2rem;
    text-align: center;
    max-width: 680px;
}

.care-items {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.care-container {
    display: flex;
    gap: 3rem;
    align-items: flex-start;
}

.care-list-section {
    flex: 1;
    min-width: 300px;
    pointer-events: none !important;
    user-select: none !important;
}

.care-list {
    background: #ffffff;
    border-radius: 8px;
    padding: 1.5rem;
    border: 1px solid #dee2e6;
}

.care-item {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 10px;
    border-left: 4px solid #ff69b4;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    text-align: left;
    color: #333;
    font-weight: 500;
}

.care-item:last-child {
    margin-bottom: 0;
}

.care-item:hover {
    background: linear-gradient(135deg, #fff5f9 0%, #ffe6f0 100%);
    border-left-color: #e91e63;
    box-shadow: 0 4px 12px rgba(255, 105, 180, 0.2);
    transform: translateX(5px);
}

.rehabilitation-section {
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    box-shadow: 0 8px 32px rgba(255, 105, 180, 0.15);
    border: 2px solid #ffb3d6;
    margin: 2rem auto;
    max-width: 1000px;
    background-color: #ffffff;
}

.rehabilitation-content {
    width: 100%;
    padding: 0 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rehabilitation-content h2 {
    font-size: 1.8rem;
    color: #333;
    margin-bottom: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #e0e0e0;
    text-align: center;
    width: 100%;
}

.care-images-section {
    width: 100%;
    max-width: 800px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.care-image-container {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    align-items: center;
    width: 100%;
}

.care-image {
    width: 100%;
    max-width: 600px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #dee2e6;
    transition: opacity 0.2s ease;
    margin: 0 auto;
}

.care-image:hover {
    opacity: 0.8;
}

/* =================================================================
   レスポンシブ対応
================================================================= */

/* タブレットサイズ (1024px以下) */
@media (max-width: 1024px) {

    .care-section {
        max-width: 95%;
        padding: 1.8rem 0;
    }

    .care-section h1 {
        font-size: 2rem;
        margin-bottom: 2.5rem;
    }

    .care-content h2 {
        font-size: 1.7rem;
    }

    .company-features {
        max-width: 90%;
    }

    .company-features li {
        font-size: 1.05rem;
    }

    .care-content p {
        font-size: 1.05rem;
        max-width: 90%;
    }

    .care-container {
        gap: 2.5rem;
    }

    .care-list {
        padding: 1.8rem;
    }

    .care-item {
        font-size: 1.05rem;
        padding: 0.9rem 1.3rem;
    }

    .rehabilitation-section {
        max-width: 95%;
        padding: 1.8rem 0;
        margin: 1.8rem auto;
    }

    .rehabilitation-content {
        padding: 0 1.8rem;
    }

    .rehabilitation-content h2 {
        font-size: 1.7rem;
        margin-bottom: 1.8rem;
    }

    .care-image-container {
        gap: 1.8rem;
    }

    .care-image {
        max-width: 550px;
    }
}

/* タブレットサイズ (768px以下) */
@media (max-width: 768px) {

    .care-section {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
        padding: 1.5rem 0;
        margin: 0 auto 1.5rem auto;
    }

    .care-section h1 {
        font-size: 1.8rem;
        margin-bottom: 2rem;
        line-height: 1.5;
    }

    .care-section h1::after {
        width: 60px;
        height: 3px;
    }

    .care-content {
        margin-top: 1.5rem;
    }

    .care-content h2 {
        font-size: 1.5rem;
        margin-bottom: 1.2rem;
    }

    .company-features {
        max-width: 95%;
        margin-bottom: 2.5rem;
    }

    .company-features li {
        font-size: 1rem;
        margin-bottom: 0.8rem;
        padding-left: 1.8rem;
    }

    .company-features li::before {
        font-size: 0.9rem; /* サイズを小さく */
        left: 0.4rem; /* 少し右に移動 */
    }

    .care-content p {
        font-size: 1rem;
        margin-bottom: 1.5rem;
        max-width: 95%;
    }

    .care-container {
        flex-direction: column;
        gap: 2rem;
    }

    .care-list-section {
        min-width: auto;
        width: 100%;
    }

    .rehabilitation-section {
        max-width: 98%;
        padding: 1.5rem 0;
        margin: 1.5rem auto;
    }

    .rehabilitation-content {
        padding: 0 1.5rem;
    }

    .rehabilitation-content h2 {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .care-images-section {
        max-width: 100%;
    }

    .care-list {
        padding: 1.5rem;
        margin-bottom: 1rem;
    }

    .care-item {
        font-size: 1rem;
        padding: 0.8rem 1.2rem;
        margin-bottom: 1rem;
        border-left-width: 3px;
    }

    .care-image-container {
        gap: 1.5rem;
    }

    .care-image {
        max-width: 100%;
    }
}

/* スマートフォンサイズ (480px以下) */
@media (max-width: 480px) {

    .care-section {
        max-width: 100%;
        padding: 1rem 0;
        margin: 0 auto 1rem auto;
        border-radius: 8px;
    }

    .care-section h1 {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
        line-height: 1.4;
        padding-bottom: 0.8rem;
    }

    .care-section h1::after {
        width: 50px;
        height: 2px;
    }

    .care-content {
        margin-top: 1rem;
    }

    .care-content h2 {
        font-size: 1.3rem;
        margin-bottom: 1rem;
    }

    .company-features {
        max-width: 100%;
        margin-bottom: 2rem;
    }

    .company-features li {
        font-size: 0.95rem;
        margin-bottom: 0.7rem;
        padding-left: 1.5rem;
        line-height: 1.6;
    }

    .company-features li::before {
        font-size: 0.8rem; /* サイズを小さく */
        left: 0.3rem; /* 少し右に移動 */
    }

    .care-content p {
        font-size: 0.95rem;
        margin-bottom: 1.2rem;
        max-width: 100%;
        line-height: 1.7;
    }

    .care-container {
        gap: 1.5rem;
    }

    .care-list {
        padding: 1rem;
        border-radius: 10px;
    }

    .care-item {
        font-size: 0.95rem;
        padding: 0.7rem 1rem;
        margin-bottom: 0.8rem;
        border-radius: 8px;
        border-left-width: 3px;
    }

    .rehabilitation-section {
        max-width: 100%;
        padding: 1rem 0;
        margin: 1rem auto;
        border-radius: 8px;
    }

    .rehabilitation-content {
        padding: 0 1rem;
    }

    .rehabilitation-content h2 {
        font-size: 1.3rem;
        margin-bottom: 1.2rem;
    }

    .care-image-container {
        gap: 1.2rem;
    }
}

@media (max-width: 768px) {
    .care-section,
    .rehabilitation-content,
    .care-content,
    .care-image-container {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}

/* 超小型スマートフォン (320px以下) */
@media (max-width: 320px) {

    .care-section {
        padding: 0.8rem 0;
    }

    .care-section h1 {
        font-size: 1.3rem;
        margin-bottom: 1.2rem;
    }

    .care-content h2 {
        font-size: 1.2rem;
    }

    .company-features li {
        font-size: 0.9rem;
        padding-left: 1.3rem;
    }

    .company-features li::before {
        font-size: 0.7rem; /* サイズを小さく */
        left: 0.2rem; /* 少し右に移動 */
    }

    .care-content p {
        font-size: 0.9rem;
    }

    .care-list {
        padding: 0.8rem;
    }

    .care-item {
        font-size: 0.9rem;
        padding: 0.6rem 0.9rem;
        border-left-width: 3px;
    }

    .rehabilitation-section {
        padding: 0.8rem 0;
        margin: 0.8rem auto;
    }

    .rehabilitation-content {
        padding: 0 0.8rem;
    }

    .rehabilitation-content h2 {
        font-size: 1.2rem;
        margin-bottom: 1rem;
    }

    .care-image-container {
        gap: 1rem;
    }
}

/* 横向きスマートフォン (480px以下かつ高さが400px以下) */
@media (max-width: 480px) and (max-height: 400px) {

    .care-section {
        padding: 0.8rem 0;
    }

    .care-section h1 {
        font-size: 1.3rem;
        margin-bottom: 1rem;
    }

    .care-content h2 {
        font-size: 1.2rem;
        margin-bottom: 0.8rem;
    }

    .company-features {
        margin-bottom: 1.5rem;
    }

    .company-features li {
        margin-bottom: 0.5rem;
    }

    .care-container {
        gap: 1rem;
    }

    .care-list {
        padding: 0.8rem;
    }

    .care-item {
        margin-bottom: 0.6rem;
        border-left-width: 3px;
    }

    .rehabilitation-section {
        padding: 0.8rem 0;
        margin: 0.8rem auto;
    }

    .rehabilitation-content {
        padding: 0 0.8rem;
    }

    .rehabilitation-content h2 {
        font-size: 1.2rem;
        margin-bottom: 0.8rem;
    }

    .care-image-container {
        gap: 0.8rem;
    }
}

/* ========== 7. 求人情報ページ（旧 style/kyujin.css） ==========
   求人カード・職種詳細・ハイライト見出し */
/* 求人情報ページ専用スタイル */
.recruit-h1{
    background-color: #e6ceda;


}
.recruit-section {
    max-width: 1200px !important;
    margin: 2rem auto !important;
    border-radius: 20px !important;
    padding: 3rem 2rem !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
    position: relative !important;
    overflow: hidden !important;
}

.recruit-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #e6ceda, #ff69b4);
    background-size: 200% 100%;
    animation: kyujinGradientShift 3s ease-in-out infinite;
}

@keyframes kyujinGradientShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.recruit-section h1 {
    text-align: center !important;
    font-size: 2.2rem !important;
    font-weight: 700 !important; /* フォントウェイトを太く */
    color: #ffffff !important;
    margin: 0 auto 1.5rem auto !important; /* 左右のマージンをautoに設定 */
    line-height: 1.4 !important;
    background: transparent !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(0, 0, 0, 0.3) !important; /* 白色テキスト用の影を追加 */
    letter-spacing: 0.05em !important; /* 文字間隔を調整 */
    position: relative !important; /* 装飾要素の基準位置 */
    padding: 1rem 2rem !important; /* パディングを追加 */
    border-radius: 15px !important; /* 角丸を追加 */
    background: transparent !important; /* バックグラウンドを透明に */
    backdrop-filter: blur(5px) !important; /* 背景をぼかす効果 */
    max-width: 900px !important; /* 最大幅を設定して中央配置を確実にする */
    display: block !important; /* inline-blockを上書きしてblockに */
}

/* h1の装飾的な下線 */
.recruit-section h1::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 3px;
    background: linear-gradient(90deg, #020a13, #011327, #020a13); /* グラデーション下線 */
    border-radius: 2px;
    box-shadow: 0 2px 8px rgba(74, 144, 226, 0.4); /* 下線に影を追加 */
}

.recruit-section h2 {
    text-align: center;
    font-size: 1.44rem;
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 1.5rem;
    line-height: 1.4;
    background: transparent !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(0, 0, 0, 0.3);
}

/* メイン説明文のh2要素（訪問看護のお仕事です...）のスタイル */
.recruit-section > h2 {
    text-align: center;
    font-size: 1.6rem;
    font-weight: 600;
    color: #ffffff;
    margin: 2rem auto 2.5rem auto;
    line-height: 1.6;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(0, 0, 0, 0.3);
    max-width: 800px;
    padding: 1.5rem 2rem;
    background: linear-gradient(135deg, rgba(230, 206, 218, 0.1), rgba(255, 255, 255, 0.8));
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(230, 206, 218, 0.3);
}

/* 求人情報詳細部分のh2要素のスタイル */
.job-posting h2 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 2rem;
    text-align: center;
    position: relative;
    padding-bottom: 1rem;
}

/* h2の装飾は削除してシンプルに */

.recruit-section h1 i {
    color: #da49ae; /* 濃い赤色に変更 */
    margin-right: 0.5rem;
    animation: kyujinPulse 2s infinite;
    font-size: 1.2em; /* アイコンサイズを少し大きく */
    text-shadow: 2px 2px 4px rgba(209, 31, 114, 0.3); /* 影を追加 */
}

@keyframes kyujinPulse {
    0%, 100% { 
        transform: scale(1); 
        color: #8B0000; /* 濃い赤色 */
    }
    50% { 
        transform: scale(1.1); 
        color: #DC143C; /* 少し明るい赤色（アニメーション時） */
    }
}

.recruit-section h2 .highlight {
    background: linear-gradient(90deg, #8A2BE2, #4B0082); /* むらさき色のグラデーションに変更 */
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 800;
    text-shadow: 0 2px 4px rgba(36, 10, 61, 0.3), 0 0 10px rgba(187, 177, 240, 0.8); /* むらさき色の影と白い影を追加 */
}

.recruit-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2.5rem;
    margin-top: 2rem;
}

.job-posting {
    background: white;
    border-radius: 15px;
    padding: 2.5rem;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    position: relative;
    overflow: hidden;
    border: 1px solid #e9ecef;
}

.job-posting::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, #3498db, #2980b9);
}

.job-posting:nth-child(2)::before {
    background: linear-gradient(90deg, #e74c3c, #c0392b);
}

/* ホバー効果を無効化 */
.job-posting:hover {
    transform: none;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

.job-posting h2 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 2rem;
    text-align: center;
    position: relative;
    padding-bottom: 1rem;
}

.job-posting h2 i {
    margin-right: 0.5rem;
    color: #3498db;
    animation: none; /* バウンスアニメーションを無効化 */
}

.job-posting:nth-child(2) h2 i {
    color: #e74c3c;
}

@keyframes kyujinBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-5px); }
    60% { transform: translateY(-3px); }
}

.job-posting h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, #3498db, #2980b9);
    border-radius: 1px;
}

.job-posting:nth-child(2) h2::after {
    background: linear-gradient(90deg, #e74c3c, #c0392b);
}

.job-details {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.job-details h3 {
    font-size: 1.3rem;
    font-weight: 600;
    color: #34495e;
    margin-bottom: 0.8rem;
    padding-left: 1rem;
    border-left: 4px solid #3498db;
    background: linear-gradient(90deg, rgba(52, 152, 219, 0.1), transparent);
    padding: 0.5rem 1rem;
    border-radius: 0 5px 5px 0;
    display: flex;
    align-items: center;
}

.job-details h3 i {
    margin-right: 0.5rem;
    color: #3498db;
    font-size: 1.1rem;
}

.job-posting:nth-child(2) .job-details h3 {
    border-left-color: #e74c3c;
    background: linear-gradient(90deg, rgba(231, 76, 60, 0.1), transparent);
}

.job-posting:nth-child(2) .job-details h3 i {
    color: #e74c3c;
}

.job-details ul {
    list-style: none;
    padding-left: 1.5rem;
}

.job-details ul li {
    position: relative;
    padding: 0.5rem 0;
    color: #555;
    font-size: 1.1rem;
    line-height: 1.6;
}

.job-details ul li::before {
    content: '✓';
    position: absolute;
    left: -1.5rem;
    color: #27ae60;
    font-weight: bold;
    font-size: 1.2rem;
}

.job-details ul li:first-child {
    font-weight: 600;
    color: #2c3e50;
    font-size: 1.3rem;
}

.job-details ul li:first-child::before {
    content: '';
    font-size: 1.4rem;
}

/* アニメーション効果を無効化 */
.job-posting {
    animation: none;
}

.job-posting:nth-child(2) {
    animation: none;
}

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

/* レスポンシブデザイン */
@media (max-width: 768px) {
    .recruit-section {
        padding: 2rem 1rem !important;
        margin: 0 auto !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .recruit-section h1 {
        font-size: 1.8rem;
        margin-bottom: 2rem;
    }
    
    .recruit-section h2 {
        text-align: center !important; /* フレキシブル対応時も中央配置 */
    }
    
    .recruit-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .job-posting {
        padding: 2rem 1.5rem;
    }
    
    .job-posting h2 {
        font-size: 1.6rem;
        text-align: center !important; /* フレキシブル対応時も中央配置 */
    }
    
    .job-details h3 {
        font-size: 1.2rem;
    }
    
    .job-details ul li {
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .recruit-section h1 {
        font-size: 1.5rem;
    }
    
    .recruit-section h2 {
        text-align: center !important; /* フレキシブル対応時も中央配置 */
    }
    
    .job-posting {
        padding: 1.5rem 1rem;
    }
    
    .job-posting h2 {
        font-size: 1.4rem;
        text-align: center !important; /* フレキシブル対応時も中央配置 */
    }
    
    .job-details h3 {
        font-size: 1.1rem;
        padding: 0.4rem 0.8rem;
    }
    
    .job-details ul li {
        font-size: 0.95rem;
    }
}

@media (max-width: 768px) {
    .recruit-section,
    .job-posting,
    .job-details {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}

/* ========== 8. Q&Aページ（旧 style/qa.css） ==========
   訪問看護Q&A・相談支援Q&Aのアコーディオン風リスト */
/* Q&Aページ専用スタイル */


/* mainセクションでのqa.css優先適用 */
main .qa-section {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

/* 内側のセクションは白色背景を強制適用 */
main .visiting-nursing-qa-section,
main .consultation-qa-section,
main .visiting-nursing-qa-container {
    background: white !important;
    color: #000000 !important;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1) !important;
    border: 2px solid #ddd !important;
}


/* fa-commentsアイコンをピンク色に */
main .visiting-nursing-question .fas.fa-comments,
.fas.fa-comments,
i.fa-comments {
    color: #ff69b4 !important;
}

/* visiting-nursing-questionのh3をピンク色に */
main .visiting-nursing-question h3,
.visiting-nursing-question h3 {
    color: #ff69b4 !important;
}

/* h3.visiting-nursing-qa-itemをピンク色に */
main h3.visiting-nursing-qa-item,
h3.visiting-nursing-qa-item {
    color: #ff69b4 !important;
}

/* visiting-nursing-questionをピンク色に */
main .visiting-nursing-question,
.visiting-nursing-question {
    color: #ff69b4 !important;
}

/* consultation-questionを黒色に、アイコンはピンク色のまま */
main .consultation-question,
.consultation-question {
    color: #000000 !important;
}

/* consultation-question内のアイコンはピンク色のまま */
main .consultation-question .fas,
.consultation-question .fas {
    color: #ff69b4 !important;
}

/* visiting-nursing-qa-item内の要素も白色背景・黒色フォントを強制適用 */
main .visiting-nursing-qa-item,
main .visiting-nursing-qa-item * {
    background: white !important;
    color: #000000 !important;
}

/* 質問と回答のテキストも黒色に */
main .visiting-nursing-qa-item .question,
main .visiting-nursing-qa-item .answer,
main .visiting-nursing-qa-item h3,
main .visiting-nursing-qa-item p,
main .visiting-nursing-qa-item li {
    color: #000000 !important;
}

/* メインセクション */
.qa-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
    background: transparent;
    border-radius: 20px;
    box-shadow: none;
    backdrop-filter: none;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* 訪問看護Q&Aセクション */
.visiting-nursing-qa-section {
    margin-bottom: 4rem;
    padding: 2.5rem;
    background: white;
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    border: 2px solid #ddd;
    animation: qaFadeInUp 1s ease-out 0.2s both;
    color: #000000;
}

/* タイトル */
.qa-section h1 {
    text-align: center !important;
    color: #000000;
    font-size: 2.5rem;
    margin-bottom: 1rem;
    background: transparent;
    text-shadow: none;
    animation: qaTitleSlide 1s ease-out;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.visiting-nursing-qa-section h1 {
    text-align: center;
    color: #000000;
    font-size: 2.2rem;
    margin-bottom: 1rem;
    text-shadow: none;
}

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

/* 訪問看護Q&Aセクション */
.visiting-nursing-qa-section {
    margin-bottom: 4rem;
    padding: 2.5rem;
    background: linear-gradient(135deg, #fff0fa, #ffe4f7);
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(255, 105, 180, 0.15);
    border: 2px solid #ff69b4;
    animation: qaFadeInUp 1s ease-out 0.2s both;
}

.visiting-nursing-qa-section h2 {
    text-align: center;
    color: #000000;
    font-size: 2.2rem;
    margin-bottom: 1rem;
    text-shadow: none;
}

.visiting-nursing-qa-intro {
    text-align: center;
    color: #333;
    font-size: 1.1rem;
    margin-bottom: 2.5rem;
    line-height: 1.6;
    font-weight: 500;
    background: linear-gradient(135deg, rgba(255, 105, 180, 0.1), rgba(255, 20, 147, 0.1));
    padding: 1.5rem;
    border-radius: 12px;
    border: 2px solid #ff69b4;
    box-shadow: 0 5px 20px rgba(255, 105, 180, 0.2);
    position: relative;
    overflow: hidden;
}

.visiting-nursing-qa-intro::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 105, 180, 0.1), transparent);
    animation: qaShine 3s infinite;
}

.visiting-nursing-qa-intro::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #ff69b4, #ff1493, #ff69b4);
    border-radius: 0 0 12px 12px;
}

@keyframes qaShine {
    0% {
        left: -100%;
    }
    50% {
        left: 100%;
    }
    100% {
        left: 100%;
    }
}

/* 訪問看護Q&Aコンテナ */
.visiting-nursing-qa-container {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
    background: white;
    border-radius: 20px;
    padding: 2.5rem;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    border: 2px solid #ddd;
    backdrop-filter: none;
    position: relative;
    overflow: hidden;
    color: #000000;
}

.visiting-nursing-qa-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #ff1493, #ff69b4);
    border-radius: 20px 20px 0 0;
}

.visiting-nursing-qa-container::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff1493, #ff69b4, #ff1493);
    border-radius: 0 0 20px 20px;
}

/* Q&Aアイテム */
.qa-item {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 15px;
    padding: 1.8rem;
    box-shadow: 0 5px 20px rgba(255, 105, 180, 0.15);
    border-left: 5px solid #ff69b4;
    transition: all 0.3s ease;
    animation: qaItemPop 0.6s ease-out both;
    animation-delay: calc(var(--animation-order) * 0.1s);
    margin-bottom: 0.5rem;
    backdrop-filter: blur(5px);
}

.visiting-nursing-qa-item {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 15px;
    padding: 1.8rem;
    box-shadow: 0 5px 20px rgba(255, 105, 180, 0.15);
    border-left: 5px solid #ff69b4;
    transition: all 0.3s ease;
    animation: visitingNursingQaPop 0.7s ease-out both;
    animation-delay: calc(var(--visiting-nursing-animation-order) * 0.1s);
    margin-bottom: 1.8rem;
}

.qa-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(255, 105, 180, 0.25);
    border-left-color: #ff1493;
}

.visiting-nursing-qa-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(255, 105, 180, 0.25);
    border-left-color: #ff1493;
    background: rgba(255, 255, 255, 0.95);
}

@keyframes qaItemPop {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes visitingNursingQaPop {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(25px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* 質問 */
.question {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #ff69b4;
    font-size: 1.3rem;
    margin-bottom: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.3s ease;
}

.visiting-nursing-question {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #ff69b4;
    font-size: 1.2rem;
    margin-bottom: 1.2rem;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.3s ease;
}

.question:hover {
    color: #ff1493;
}

.visiting-nursing-question:hover {
    color: #ff1493;
}

.question i {
    color: #ff69b4;
    font-size: 1.5rem;
    animation: questionPulse 2s infinite;
}

.visiting-nursing-question i {
    color: #ff69b4;
    font-size: 1.4rem;
    animation: visitingNursingIconPulse 2.5s infinite;
}

@keyframes questionPulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
}

@keyframes visitingNursingIconPulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.15);
    }
}

/* 回答 */
.answer {
    color: #333;
    line-height: 1.7;
    padding-left: 2.5rem;
    border-left: 2px solid #ffe4f7;
    margin-left: 0.5rem;
}

.visiting-nursing-answer {
    color: #333;
    line-height: 1.7;
    padding-left: 2.5rem;
    border-left: 2px solid #ffe4f7;
    margin-left: 0.5rem;
}

.answer p {
    margin-bottom: 1rem;
}

.answer ul, .answer ol {
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

.answer li {
    margin-bottom: 0.5rem;
    color: #555;
}

.visiting-nursing-answer p {
    margin-bottom: 1rem;
}

.visiting-nursing-answer ul, .visiting-nursing-answer ol {
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

.visiting-nursing-answer li {
    margin-bottom: 0.5rem;
    color: #555;
}

/* 相談支援Q&Aセクション */
.consultation-qa-section {
    margin-top: 4rem;
    padding: 2.5rem;
    background: white;
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    border: 2px solid #ddd;
    animation: qaFadeInUp 1s ease-out 0.8s both;
    color: #000000;
}

.consultation-qa-section h2 {
    text-align: center;
    color: #000000;
    font-size: 2.2rem;
    margin-bottom: 1rem;
    text-shadow: none;
}

.consultation-qa-intro {
    text-align: center;
    color: #333;
    font-size: 1.1rem;
    margin-bottom: 2.5rem;
    line-height: 1.6;
    font-weight: 500;
}

.consultation-qa-container {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
}

.consultation-qa-item {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 15px;
    padding: 1.8rem;
    box-shadow: 0 5px 20px rgba(255, 105, 180, 0.15);
    border-left: 5px solid #ff69b4;
    transition: all 0.3s ease;
    animation: consultationQaPop 0.7s ease-out both;
    animation-delay: calc(var(--consultation-animation-order) * 0.1s);
}

.consultation-qa-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(255, 105, 180, 0.25);
    border-left-color: #ff1493;
    background: rgba(255, 255, 255, 0.95);
}

@keyframes consultationQaPop {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(25px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.consultation-question {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #ff69b4;
    font-size: 1.2rem;
    margin-bottom: 1.2rem;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.3s ease;
}

.consultation-question:hover {
    color: #ff1493;
}

.consultation-question i {
    color: #ff69b4;
    font-size: 1.4rem;
    animation: consultationIconPulse 2.5s infinite;
}

@keyframes consultationIconPulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.15);
    }
}

.consultation-answer {
    color: #333;
    line-height: 1.7;
    padding-left: 2.5rem;
    border-left: 2px solid #ffe4f7;
    margin-left: 0.5rem;
}

.consultation-answer p {
    margin-bottom: 1rem;
}

.consultation-answer ul, .consultation-answer ol {
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

.consultation-answer li {
    margin-bottom: 0.5rem;
    color: #555;
}

/* 相談支援Q&Aアニメーション遅延の設定 */
.consultation-qa-item:nth-child(1) { --consultation-animation-order: 1; }
.consultation-qa-item:nth-child(2) { --consultation-animation-order: 2; }
.consultation-qa-item:nth-child(3) { --consultation-animation-order: 3; }
.consultation-qa-item:nth-child(4) { --consultation-animation-order: 4; }
.consultation-qa-item:nth-child(5) { --consultation-animation-order: 5; }


/* アニメーション遅延の設定 */
.qa-item:nth-child(1) { --animation-order: 1; }
.qa-item:nth-child(2) { --animation-order: 2; }
.qa-item:nth-child(3) { --animation-order: 3; }
.qa-item:nth-child(4) { --animation-order: 4; }
.qa-item:nth-child(5) { --animation-order: 5; }
.qa-item:nth-child(6) { --animation-order: 6; }
.qa-item:nth-child(7) { --animation-order: 7; }
.qa-item:nth-child(8) { --animation-order: 8; }

/* 訪問看護Q&Aアニメーション遅延の設定 */
.visiting-nursing-qa-item:nth-child(1) { --visiting-nursing-animation-order: 1; }
.visiting-nursing-qa-item:nth-child(2) { --visiting-nursing-animation-order: 2; }
.visiting-nursing-qa-item:nth-child(3) { --visiting-nursing-animation-order: 3; }
.visiting-nursing-qa-item:nth-child(4) { --visiting-nursing-animation-order: 4; }
.visiting-nursing-qa-item:nth-child(5) { --visiting-nursing-animation-order: 5; }
.visiting-nursing-qa-item:nth-child(6) { --visiting-nursing-animation-order: 6; }
.visiting-nursing-qa-item:nth-child(7) { --visiting-nursing-animation-order: 7; }
.visiting-nursing-qa-item:nth-child(8) { --visiting-nursing-animation-order: 8; }

/* レスポンシブデザイン */
@media (max-width: 1024px) {
    .qa-section {
        margin: 1rem;
        padding: 1.5rem;
        max-width: 95%;
    }
    
    .qa-section h1 {
        font-size: 2.2rem;
        color: #000000;
        background: transparent;
    }
    
    .visiting-nursing-qa-section {
        margin: 2rem 1rem;
        padding: 2rem 1.5rem;
    }
    
    .visiting-nursing-qa-section h2 {
        font-size: 1.9rem;
        color: #000000;
    }
    
    .visiting-nursing-qa-intro {
        font-size: 1rem;
        padding: 1.2rem;
        border-radius: 10px;
    }
    
    .visiting-nursing-qa-container {
        padding: 2rem 1.5rem;
        border-radius: 15px;
    }
    
    .visiting-nursing-question {
        font-size: 1.1rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .visiting-nursing-answer {
        padding-left: 1rem;
        margin-left: 0;
    }
}

@media (max-width: 768px) {
    .qa-section {
        margin: 0 !important;
        padding: 1.2rem 1rem !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .qa-section h1 {
        font-size: 1.8rem;
        color: #000000;
        background: transparent;
    }
    
    .visiting-nursing-qa-section {
        margin: 1rem 0 !important;
        padding: 1.5rem 1rem !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .visiting-nursing-qa-section h2 {
        font-size: 1.6rem;
        color: #000000;
    }
    
    .visiting-nursing-qa-intro {
        font-size: 0.95rem;
        padding: 1rem;
        border-radius: 8px;
    }
    
    .visiting-nursing-qa-container {
        padding: 1.5rem 1.2rem;
        border-radius: 12px;
    }
    
    .visiting-nursing-question {
        font-size: 1rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .visiting-nursing-answer {
        padding-left: 0.8rem;
        margin-left: 0;
    }
    
    .consultation-qa-section {
        margin: 1rem 0 !important;
        padding: 1.5rem 1rem !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .consultation-qa-section h2 {
        font-size: 1.6rem;
        color: #000000;
    }
    
    .consultation-question {
        font-size: 1rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .consultation-answer {
        padding-left: 0.8rem;
        margin-left: 0;
    }
    
}

@media (max-width: 480px) {
    .qa-section {
        margin: 0 !important;
        padding: 1rem !important;
        border-radius: 15px;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .qa-section h1 {
        font-size: 1.6rem;
        color: #000000;
        background: transparent;
    }
    
    .visiting-nursing-qa-section {
        margin: 1rem 0 !important;
        padding: 1.2rem 1rem !important;
        border-radius: 12px;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .visiting-nursing-qa-section h2 {
        font-size: 1.4rem;
        color: #000000;
    }
    
    .visiting-nursing-qa-intro {
        font-size: 0.9rem;
        margin-bottom: 1.5rem;
        padding: 0.8rem;
        border-radius: 8px;
    }
    
    .visiting-nursing-qa-container {
        padding: 1.2rem 1rem;
        border-radius: 12px;
    }
    
    .visiting-nursing-qa-item {
        padding: 0.8rem;
        border-radius: 8px;
    }
    
    .visiting-nursing-question {
        font-size: 0.95rem;
    }
    
    .visiting-nursing-question i {
        font-size: 1.1rem;
    }
    
    .visiting-nursing-answer {
        font-size: 0.85rem;
        padding-left: 0.5rem;
    }
    
    .consultation-qa-section {
        margin: 1rem 0 !important;
        padding: 1.2rem 1rem !important;
        border-radius: 12px;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .consultation-qa-section h2 {
        font-size: 1.4rem;
        color: #000000;
    }
    
    .consultation-qa-intro {
        font-size: 0.9rem;
        margin-bottom: 1.5rem;
    }
    
    .consultation-qa-item {
        padding: 0.8rem;
        border-radius: 8px;
    }
    
    .consultation-question {
        font-size: 0.95rem;
    }
    
    .consultation-question i {
        font-size: 1.1rem;
    }
    
    .consultation-answer {
        font-size: 0.85rem;
        padding-left: 0.5rem;
    }
    
}

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

/* スクロールアニメーション */
.qa-item {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease;
}

.qa-item.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ホバー効果の強化 */
.qa-item:hover .question i {
    animation: questionSpin 0.6s ease;
}

@keyframes questionSpin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

/* アクセシビリティの向上 */
.qa-item:focus-within {
    outline: 3px solid #3498db;
    outline-offset: 2px;
}

@media (max-width: 768px) {
    .qa-section,
    .visiting-nursing-qa-section,
    .consultation-qa-section {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}

/* ========== 9. 相談支援ページ（旧 style/soudan.css） ==========
   ターコイズ系背景・相談内容・電話カード・スタッフ情報 */
/* 相談支援ページ専用スタイル */
.soudan-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: -1;
    overflow: hidden;
    background: linear-gradient(135deg, #e0f7fa 0%, #1de9b6 100%); /* ターコイズブルー系グラデーション */
    animation: soudanFadeInBg 1.2s;
}


@keyframes soudanFadeInBg {
    from { opacity: 0; }
    to { opacity: 1; }
}

.soudan-bg-image {
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center;
    opacity: 0.7;
    filter: blur(2px) brightness(0.95);
    transition: opacity 0.5s;
}

.consultation-section {
    font-family: 'Zen Maru Gothic', sans-serif;
    position: relative;
    z-index: 1;
    padding: 60px 20px 40px 20px;
    margin-top: 20px;
    background: transparent !important;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    animation: soudanFadeInUp 1s;
    color: #00bfff;
}

@keyframes soudanFadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

.consultation-section h1 {
    text-align: center;
    color: #00bfff;
    font-size: 2.6rem;
    margin-bottom: 40px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-shadow: 0 2px 8px rgba(0,0,0,0.08);
    position: relative;
}

.consultation-section h2 {
    color: #00bfff;
    font-size: 2rem;
    margin-bottom: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.consultation-section h3 {
    text-align: center;
    color: #00bfff;
    font-size: 1.5rem;
    margin-bottom: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
}

/* 営業時間・電話番号セクションの統一スタイル */
.consultation-info-title {
    text-align: center;
    color: #00bfff;
    font-size: 1.5rem;
    margin: 2rem 0 1rem 0;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-shadow: 0 1px 2px rgba(0,0,0,0.08);
}

.consultation-info-section {
    display: flex;
    flex-direction: column;
    align-items: center; /* 子要素を水平中央揃え */
    justify-content: center;
    text-align: center;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: transparent; /* 背景ボックスを削除 */
    border-radius: 0;
    box-shadow: none; /* 枠に見える影を削除 */
    border: none; /* 枠線を削除 */
    outline: none;
}

.consultation-info-text {
    display: block;
    width: 100%;
    color: #1976d2;
    font-size: 1.3rem;
    font-weight: 600;
    margin: 0 auto;
    letter-spacing: 0.05em;
    text-align: center; /* 営業時間を中央揃え */
    border: none; /* 枠線を削除 */
    background: transparent;
    box-shadow: none;
    outline: none;
}

@keyframes soudanBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-8px); }
    60% { transform: translateX(-50%) translateY(-4px); }
}

.consultation-container {
    display: flex;
    gap: 2.5rem;
    padding: 2.5rem 2rem;
    background: transparent !important;
    border-radius: 15px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    align-items: flex-start;
    justify-content: center; /* 水平方向の中央揃え */
    animation: soudanFadeInUp 1.2s 0.2s both;
}

.consultation-image {
    flex: 0 0 45%;
    display: flex;
    align-items: center; /* 垂直方向も中央揃えに */
    justify-content: center;
    padding-top: 2rem;
    text-align: center; /* テキストも中央揃えに */
}

.support-image {
    width: 100%;
    max-width: 450px;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.13);
    transition: transform 0.3s, box-shadow 0.3s;
}

.support-image:hover {
    transform: scale(1.04);
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
}

/* 相談内容のスタイル */
.consultation-content {
    background: linear-gradient(135deg, #e0f7fa 0%, #b2fef7 100%); /* ターコイズブルー系グラデーション */
    border-radius: 20px;
    padding: 2rem;
    margin: 0;
    flex: 1;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border: 2px solid #1de9b6;
    position: relative;
    overflow: hidden;
    font-family: 'Zen Maru Gothic', sans-serif;
}

.content-image {
    margin-bottom: 2rem;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    max-width: 40%;
    margin-left: auto;
    margin-right: auto;
}

.top-image {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s;
    object-fit: cover;
    border-radius: 10px;
}

.top-image:hover {
    transform: scale(1.03);
}

.section-description {
    color: #4b2306;
    margin-bottom: 1.2rem;
    line-height: 1.7;
    font-size: 1.3rem;
    background: none; /* 背景を削除 */
    padding: 1rem 1.5rem;
    border-radius: 0;
    font-weight: 500;
    text-align: center; /* 中央揃え */
}

.staff-title {
    color: #ff69b4;
    font-size: 1.3rem;
    margin: 2rem 0 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #ff69b4;
    font-weight: bold;
    letter-spacing: 0.03em;
    text-shadow: 0 1px 2px rgba(255,105,180,0.08);
}

.consultation-content ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: 1.5rem;
}

.consultation-content ul li {
    position: relative;
    padding-left: 1.8rem;
    margin-bottom: 1rem;
    line-height: 1.7;
    font-size: 1.08rem;
    color: #492308;
    text-align: left; /* リストアイテム内のテキストは左寄せのまま（読みやすさのため） */
}

/* リスト全体を中央寄せ */
.consultation-content ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: 1.5rem;
    text-align: center;
    display: inline-block; /* インラインブロックで中央寄せ */
}

.consultation-content ul li::before {
    content: '●';
    position: absolute;
    left: 0;
    top: 0.1rem;
    color: #e9249e;
    font-size: 1.11rem;
    font-weight: bold;
}

/* 電話番号カードデザイン */
.consultation-tel-card {
    display: flex;
    justify-content: center;
    align-items: center;
    background: transparent; /* 背景を透明に */
    border-radius: 14px;
    box-shadow: none; /* 影を削除 */
    padding: 1.2em 1.5em;
    margin: 0 auto;
    max-width: 320px;
    width: 100%;
}

.consultation-tel-link {
    display: flex;
    align-items: center;
    justify-content: center; /* 電話番号を中央揃え */
    font-size: 1.25em;
    color: #1976d2;
    font-weight: bold;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    padding: 0.2em 0.6em;
    border-radius: 8px;
    margin: 0 auto;
    text-align: center;
}

.consultation-tel-link i {
    margin-right: 0.7em;
    font-size: 1.2em;
    color: #f073b1;
}

.consultation-tel-link:hover {
    background: linear-gradient(90deg, #e0f7fa 60%, #1de9b6 100%); /* ターコイズブルー系グラデーション */
    
    color: #0d47a1;
    box-shadow: 0 4px 16px rgba(33,150,243,0.13);
    text-decoration: underline;
}

@media (max-width: 900px) {
    .consultation-container {
        flex-direction: column;
        padding: 2rem 1rem;
        gap: 1.5rem;
        justify-content: center; /* フレキシブル対応時も中央揃えに */
        align-items: center; /* 垂直方向も中央揃えに */
    }
    .consultation-image, .consultation-content {
        flex: 0 0 100%;
        padding-left: 0;
    }
    .consultation-image {
        padding-top: 0;
        text-align: center; /* フレキシブル対応時も中央揃えに */
        justify-content: center; /* 水平方向の中央揃えを確実に */
    }
    .support-image {
        max-width: 350px; /* フレキシブル対応時により小さく */
    }
    .content-image {
        max-width: 70%;
    }
    .consultation-info-title {
        font-size: 1.4rem;
        margin: 1.5rem 0 0.8rem 0;
    }
    .consultation-info-section {
        padding: 0.8rem;
        margin-bottom: 1.2rem;
    }
    .consultation-info-text {
        font-size: 1.2rem;
    }
}

@media (max-width: 600px) {
    .consultation-section {
        padding: 30px 1rem 20px 1rem;
        margin-top: 60px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .consultation-section h1 {
        font-size: 1.5rem;
        margin-bottom: 20px;
    }
    .consultation-container {
        padding: 1rem 0.5rem;
        gap: 1rem;
        justify-content: center; /* フレキシブル対応時も中央揃えに */
        align-items: center; /* 垂直方向も中央揃えに */
    }
    .consultation-image {
        text-align: center; /* フレキシブル対応時も中央揃えに */
        justify-content: center; /* 水平方向の中央揃えを確実に */
    }
    .support-image {
        max-width: 280px; /* フレキシブル対応時により小さく */
    }
    .content-image {
        margin-bottom: 1rem;
        max-width: 60%;
    }
    .section-description {
        font-size: 1.1rem;
        padding: 0.8rem 1rem;
        text-align: center;
    }
    .staff-title {
        font-size: 1.1rem;
        padding-bottom: 0.3rem;
    }
    .consultation-info-title {
        font-size: 1.3rem;
        margin: 1.2rem 0 0.6rem 0;
        text-align: center;
    }
    .consultation-info-section {
        padding: 0.6rem;
        margin-bottom: 1rem;
    }
    .consultation-info-text {
        font-size: 1.1rem;
    }
}

@media (max-width: 480px) {
    .consultation-section {
        padding: 25px 3px 15px 3px;
        margin-top: 50px;
    }
    .consultation-section h1 {
        font-size: 1.3rem;
        margin-bottom: 15px;
    }
    .consultation-container {
        padding: 0.8rem 0.3rem;
        gap: 0.8rem;
        justify-content: center; /* スマホ対応時も中央揃えに */
        align-items: center; /* 垂直方向も中央揃えに */
    }
    .consultation-image {
        text-align: center; /* スマホ対応時も中央揃えに */
        justify-content: center; /* 水平方向の中央揃えを確実に */
    }
    .support-image {
        max-width: 220px; /* スマホ対応時により小さく */
    }
    .content-image {
        margin-bottom: 0.8rem;
        max-width: 50%;
    }
    .section-description {
        font-size: 1rem;
        padding: 0.6rem 0.8rem;
        text-align: center;
    }
    .staff-title {
        font-size: 1rem;
        padding-bottom: 0.2rem;
    }
    .consultation-info-title {
        font-size: 1.2rem;
        margin: 1rem 0 0.5rem 0;
        text-align: center;
    }
    .consultation-info-section {
        padding: 0.5rem;
        margin-bottom: 0.8rem;
    }
    .consultation-info-text {
        font-size: 1rem;
    }
}

@media (max-width: 768px) {
    .consultation-section,
    .consultation-info-section,
    .consultation-content,
    .consultation-image {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }
}

/* ========== 10. スタッフ紹介ページ（旧 style/staff.css） ==========
   スタッフカードグリッド・資格一覧・プロフィール写真 */
/* --- スタッフ紹介：レイアウト --- */


/* スタッフ紹介スタイル */
.staff-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 3rem 2rem;
    background: transparent;
    border-radius: 20px;
    margin-top: 2rem;
    margin-bottom: 2rem;
    animation: staffPop 1s ease-out;
    transform: translateY(0);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}

/* スタッフ紹介スタイル */
.staff-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #28a745, #20c997, #28a745);
    background-size: 200% 100%;
    animation: staffGradientShift 3s ease-in-out infinite;
}

/* スタッフ紹介スタイル */
@keyframes staffGradientShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

/* スタッフ紹介スタイル */
@keyframes staffPop {
    0% {
        opacity: 0;
        transform: translateY(50px) scale(0.9);
    }
    50% {
        transform: translateY(-10px) scale(1.02);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* スタッフ紹介スタイル */
.staff-container h1 {
    font-family: 'Zen Maru Gothic', sans-serif;
    color: #ff69b4;
    text-shadow: 2px 2px 8px #ffe4f7, 0 2px 0 #fff;
    border-radius: 16px;
    padding: 0.5em 1em;
    background: transparent;
    display: block;
    margin: 100px auto 40px auto;
    letter-spacing: 0.08em;
    font-weight: 700;
    text-align: center;
    font-size: 2.5rem;
    position: relative;
    z-index: 2;
    animation: staffTitleSlide 1s ease-out 0.2s both;
    width: fit-content;
}

/* スタッフ紹介スタイル */
.staff-container h1::before {
    content: '';
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 2rem;
    animation: staffBounce 2s infinite;
}

/* スタッフ紹介スタイル */
@keyframes staffBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-5px); }
    60% { transform: translateX(-50%) translateY(-3px); }
}

/* スタッフ紹介スタイル */
@keyframes staffTitleSlide {
    0% {
        opacity: 0;
        transform: translateX(-50px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* スタッフ紹介スタイル */
.staff-header-image {
    width: 100%;
    max-width: 800px;
    margin: 120px auto 3rem;
    text-align: center;
    position: relative;
    z-index: 10;
    animation: staffFadeInUp 1s ease-out 0.4s both;
    background: transparent;
    display: block;
    visibility: visible;
    box-sizing: border-box;
}

/* スタッフ紹介スタイル */
@keyframes staffFadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* スタッフ紹介スタイル */
.staff-header-image img {
    width: 100%;
    height: auto;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    display: block;
    max-width: 100%;
    visibility: visible;
    opacity: 1;
    position: relative;
    z-index: 11;
    box-sizing: border-box;
}

/* スタッフ紹介スタイル */
.staff-header-image img:hover {
    transform: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* スタッフ紹介スタイル */
.staff-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    margin-top: 3rem;
    animation: staffGridSlide 1s ease-out 0.6s both;
}

/* スタッフ紹介スタイル */
@keyframes staffGridSlide {
    0% {
        opacity: 0;
        transform: translateY(30px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* スタッフ紹介スタイル */
.staff-card {
    text-align: center;
    padding: 2rem;
    animation: staffCardPop 0.8s ease-out both;
    animation-delay: calc(1s + var(--card-index, 0) * 0.15s);
    opacity: 0;
    transform: translateY(30px);
    background: rgba(255, 255, 255, 0.95);
    border-radius: 20px;
    border: 2px solid #ff69b4;
    box-shadow: 0 8px 25px rgba(255, 105, 180, 0.2);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    cursor: default;
    backdrop-filter: blur(10px);
}

/* スタッフ紹介スタイル */
.staff-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #ff1493, #ff69b4);
    border-radius: 20px 20px 0 0;
    z-index: 1;
}

/* スタッフ紹介スタイル */
.staff-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(255, 105, 180, 0.3);
    border-color: #ff1493;
}

/* スタッフ紹介スタイル */
.staff-card:nth-child(1) { --card-index: 0; }
.staff-card:nth-child(2) { --card-index: 1; }
.staff-card:nth-child(3) { --card-index: 2; }
.staff-card:nth-child(4) { --card-index: 3; }
.staff-card:nth-child(5) { --card-index: 4; }
.staff-card:nth-child(6) { --card-index: 5; }
.staff-card:nth-child(7) { --card-index: 6; }
.staff-card:nth-child(8) { --card-index: 7; }
.staff-card:nth-child(9) { --card-index: 8; }

/* スタッフ紹介スタイル */
@keyframes staffCardPop {
    0% {
        opacity: 0;
        transform: translateY(30px) scale(0.8);
    }
    50% {
        transform: translateY(-5px) scale(1.05);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* スタッフ紹介スタイル */
.staff-image-container {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 1.5rem;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
    position: relative;
    transition: all 0.3s ease;
}

/* スタッフ紹介スタイル */
.staff-image-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(255, 105, 180, 0.2), rgba(255, 20, 147, 0.2));
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
}

/* スタッフ紹介スタイル */
.staff-image-container:hover::before {
    opacity: 1;
}

/* スタッフ紹介スタイル */
.staff-image-container:hover {
    transform: scale(1.05);
    box-shadow: 0 12px 30px rgba(255, 105, 180, 0.3);
}

/* スタッフ紹介スタイル */
.staff-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

/* スタッフ紹介スタイル */
.staff-image-container:hover img {
    transform: scale(1.1);
}

/* スタッフ紹介スタイル */
.staff-info {
    margin-top: 1.5rem;
    animation: staffFadeIn 1s ease-out 1.5s both;
}

/* スタッフ紹介スタイル */
@keyframes staffFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* スタッフ紹介スタイル */
.staff-position {
    font-size: 1.2rem;
    color: black; /* スタッフ紹介スタイル */
    margin-bottom: 0.8rem;
    font-weight: 500;
    position: relative;
    padding-bottom: 0.5rem;
}

/* スタッフ紹介スタイル */
.staff-position::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: 2px;
    background: linear-gradient(90deg, #ff69b4, #ff1493);
    border-radius: 1px;
}

/* スタッフ紹介スタイル */
.staff-name {
    font-size: 1.5rem;
    font-weight: bold;
    color: black; /* スタッフ紹介スタイル */
    margin-bottom: 1rem;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* スタッフ紹介スタイル */
.staff-quote {
    font-size: 1rem;
    color: #333;
    font-style: italic;
    margin-top: 1rem;
    padding: 1rem;
    border-top: 2px solid #ff69b4;
    background: linear-gradient(135deg, rgba(255, 105, 180, 0.1), rgba(255, 20, 147, 0.1));
    border-radius: 10px;
    position: relative;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(255, 105, 180, 0.1);
}

/* スタッフ紹介スタイル */
.staff-quote::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    background: white;
    padding: 0 10px;
    font-size: 1.2rem;
}

/* スタッフ紹介スタイル */
.staff-quote:hover {
    background: linear-gradient(135deg, rgba(255, 105, 180, 0.2), rgba(255, 20, 147, 0.2));
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(255, 105, 180, 0.2);
}

/* --- スタッフ紹介：レイアウト --- */
.staff-qualifications {
    margin: 4rem auto;
    padding: 3rem 2rem;
    background: transparent;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    max-width: 1200px;
    position: relative;
    overflow: hidden;
    animation: staffQualificationsPop 1s ease-out 1.8s both;
}

/* スタッフ紹介スタイル */
.staff-qualifications::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff69b4, #ff1493, #ff69b4);
    background-size: 200% 100%;
    animation: staffGradientShift 3s ease-in-out infinite;
}

/* スタッフ紹介スタイル */
@keyframes staffQualificationsPop {
    0% {
        opacity: 0;
        transform: translateY(40px) scale(0.95);
    }
    50% {
        transform: translateY(-5px) scale(1.01);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* スタッフ紹介スタイル */
.staff-qualifications h2 {
    text-align: center;
    color: #2c3e50;
    margin-bottom: 3rem;
    font-size: 2.2rem;
    font-weight: 700;
    position: relative;
    padding-bottom: 1rem;
}

/* スタッフ紹介スタイル */
.staff-qualifications h2::before {
    content: '';
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 1.8rem;
    animation: staffPulse 2s infinite;
}

/* スタッフ紹介スタイル */
@keyframes staffPulse {
    0%, 100% { transform: translateX(-50%) scale(1); }
    50% { transform: translateX(-50%) scale(1.1); }
}

/* スタッフ紹介スタイル */
.staff-qualifications h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(90deg, #ff69b4, #ff1493);
    border-radius: 2px;
}

/* スタッフ紹介スタイル */
.qualification-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

/* スタッフ紹介スタイル */
.qualification-card {
    background: transparent;
    border-radius: 15px;
    padding: 2rem;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    border: 1px solid white; /* スタッフ紹介スタイル */
    position: relative;
    overflow: hidden;
    text-align: center;
    cursor: default; /* スタッフ紹介スタイル */
}

/* スタッフ紹介スタイル */
.qualification-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #28a745, #20c997);
}

/* スタッフ紹介スタイル */
.qualification-card:nth-child(2)::before {
    background: linear-gradient(90deg, #17a2b8, #138496);
}

.qualification-card:nth-child(3)::before {
    background: linear-gradient(90deg, #ffc107, #e0a800);
}

.qualification-card:nth-child(4)::before {
    background: linear-gradient(90deg, #6f42c1, #5a32a3);
}

.qualification-card:nth-child(5)::before {
    background: linear-gradient(90deg, #fd7e14, #e55a00);
}

/* スタッフ紹介スタイル */
.qualification-card:hover {
    transform: none;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

/* スタッフ紹介スタイル */
.qualification-card h3 {
    color: black; /* スタッフ紹介スタイル */
    font-size: 1.4rem;
    margin-bottom: 1.5rem;
    font-weight: 600;
    position: relative;
    padding-bottom: 1rem;
}

/* スタッフ紹介スタイル */
.qualification-card h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 2px;
    background: linear-gradient(90deg, #28a745, #20c997);
    border-radius: 1px;
}

/* スタッフ紹介スタイル */
.qualification-card:nth-child(2) h3::after {
    background: linear-gradient(90deg, #17a2b8, #138496);
}

.qualification-card:nth-child(3) h3::after {
    background: linear-gradient(90deg, #ffc107, #e0a800);
}

.qualification-card:nth-child(4) h3::after {
    background: linear-gradient(90deg, #6f42c1, #5a32a3);
}

.qualification-card:nth-child(5) h3::after {
    background: linear-gradient(90deg, #fd7e14, #e55a00);
}

/* スタッフ紹介スタイル */
.qualification-card .staff-count {
    color: black; /* スタッフ紹介スタイル */
    font-weight: bold;
    margin-top: 1rem;
    font-size: 1.8rem;
    text-align: center;
    display: block;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* スタッフ紹介スタイル */
.qualification-card:nth-child(2) .staff-count {
    color: black; /* スタッフ紹介スタイル */
}

.qualification-card:nth-child(3) .staff-count {
    color: black; /* スタッフ紹介スタイル */
}

.qualification-card:nth-child(4) .staff-count {
    color: black; /* スタッフ紹介スタイル */
}

.qualification-card:nth-child(5) .staff-count {
    color: black; /* スタッフ紹介スタイル */
}

/* スタッフ紹介スタイル */

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
    .staff-container {
        padding: 2rem 1rem;
        margin: 0 auto;
        background: transparent;
        overflow-x: hidden;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .staff-card {
        border: 1px solid white;
    }
    
    .staff-container h1 {
        margin: 80px 0 30px;
        font-size: 2rem;
        background: transparent;
    }
    
    .staff-header-image {
        max-width: 100%;
        margin: 100px auto 2rem;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 10 !important;
        width: 100% !important;
        padding: 0 1rem;
        box-sizing: border-box;
        animation: none !important;
        transform: none !important;
    }
    
    .staff-header-image img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
        position: relative !important;
        z-index: 11 !important;
        margin: 0 auto;
        transform: none !important;
        animation: none !important;
    }
    
    .staff-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
    
    .staff-image-container {
        width: 180px;
        height: 180px;
    }
    
    .staff-qualifications {
        margin: 2rem 1rem;
        padding: 2rem 1rem;
        background: transparent;
    }
    
    .staff-qualifications h2 {
        font-size: 1.8rem;
        margin-bottom: 2rem;
    }
    
    .qualification-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* レスポンシブ対応 */
@media screen and (max-width: 480px) {
    .staff-container {
        overflow-x: hidden;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .staff-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .staff-image-container {
        width: 160px;
        height: 160px;
    }
    
    .staff-container h1 {
        font-size: 1.6rem;
        margin: 60px 0 20px;
        background: transparent;
    }
    
    .staff-header-image {
        max-width: 100%;
        margin: 80px auto 1.5rem;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 10 !important;
        width: 100% !important;
        padding: 0 1rem;
        box-sizing: border-box;
        animation: none !important;
        transform: none !important;
    }
    
    .staff-header-image img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
        position: relative !important;
        z-index: 11 !important;
        margin: 0 auto;
        transform: none !important;
        animation: none !important;
    }
    
    .staff-card {
        padding: 1.5rem;
        background: transparent;
        border: 1px solid white;
    }
    
    .staff-name {
        font-size: 1.3rem;
        color: black; /* スタッフ紹介スタイル */
    }
    
    .staff-position {
        font-size: 1.1rem;
        color: black; /* スタッフ紹介スタイル */
    }
    
    .staff-quote {
        font-size: 0.9rem;
        padding: 0.8rem;
        background: transparent;
        color: black; /* スタッフ紹介スタイル */
    }
    
    .qualification-card {
        padding: 1.5rem;
        background: transparent;
        border: 1px solid white; /* スタッフ紹介スタイル */
    }
    
    .qualification-card h3 {
        font-size: 1.2rem;
        color: black; /* スタッフ紹介スタイル */
    }
    
    .qualification-card .staff-count {
        font-size: 1.5rem;
        color: black; /* スタッフ紹介スタイル */
    }
}

