
/* ===== ファイル概要 ===== */
/* 
 * 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');

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

/* ===== 背景画像設定 ===== */
/* 
 * 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%に設定 */
    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: 60px;              /* ロゴセクションの60px右側に配置（さらに右に移動） */
    margin-right: 20px;             /* 右側に20pxの余白を作成 */
}

/* 
 * ハンバーガーメニューのアイコン設定
 * フォントサイズ1.75remで設定し、濃いグレーで表示
 */
.hamburger i {
    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;               /* 最大幅を設定 */
    margin-left: auto;               /* 左右のマージンを自動で設定し、中央揃えを実現 */
    margin-right: auto;              /* 左右のマージンを自動で設定し、中央揃えを実現 */
}

/* ===== トップコンテンツ ===== */
/* 
 * トップコンテンツの基本設定
 * テキストを中央揃えにし、上下に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の余白を設定 */
}

/* ===== フッター背景画像 ===== */
/* 
 * フッター背景画像の基本設定
 * 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; /* フレキシブル対応時は大きく */
    }
}





/* フレキシブル対応時の細かい調整 (1024px以下) */
@media (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; 
        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; /* 左右のパディングを調整 */
    }
    .main-nav {
        margin-left: 0;
        flex-shrink: 0;
        position: relative;
    }

    /* 768px以下ではハンバーガーメニューを表示し、ナビメニューをドロップダウン形式に */
    .main-nav .nav-links {
        display: none !important; /* 通常は非表示（強制） */
        flex-direction: column !important;
        position: absolute !important;
        top: 100% !important;
        left: -50px !important; /* 左側により大きくずらす */
        right: -20px !important; /* 右側に20px広げる */
        background: white !important;
        border-radius: 15px !important; /* 角を丸くする */
        box-shadow: 0 4px 8px rgba(0,0,0,0.1) !important;
        padding: 1rem 1.5rem !important; /* 左右のパディングを増やす */
        z-index: 1000 !important;
    }

    .main-nav .nav-links.active {
        display: flex !important; /* JavaScriptでactiveクラスが付与されたら表示（強制） */
    }

    .hamburger {
        display: block !important; /* 768px以下で表示を強制 */
        z-index: 1001;
        position: static; /* 通常フローでロゴの右に配置 */
        right: auto;
        left: auto;
        top: auto;
        transform: none;
        margin-left: 10px; /* ロゴセクションの10px右側に配置 */
        margin-right: 20px; /* 右側に20pxの余白を作成 */
        padding: 6px; /* タップ領域拡大 */
    }

    .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: 600px; /* フレキシブル対応時は横幅をさらに小さく */
        margin: 0 auto;
    }

    .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(100vw);
    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(100vw);
        opacity: 0;
    }
    18.75% { /* 32秒の18.75% = 6秒 */
        transform: translateX(0);
        opacity: 1;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

/* サブメニュー */
.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;
}





    /* スマホ画面いっぱいに表示するための基本設定 */
    body {
        min-width: 100vw;
        min-height: 100vh;
        overflow-x: hidden; /* 横方向のスクロールを無効化 */
    }
    
    /* 背景画像の横はみ出し修正 */
    .body-background {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw; /* 100%から100vwに変更 */
        height: 100vh;
        z-index: -1;
        overflow: hidden;
        box-sizing: border-box; /* ボックスサイズを境界線まで含める */
    }
    
    /* 背景画像をbodyいっぱいに拡大して配置 */
    .body-bg-image { 
        object-position: top center; 
        object-fit: cover; /* スマホ時はbodyいっぱいに拡大 */
        transform: none; /* スケールを削除して縮小を防ぐ */
        width: 100%; /* 100vwから100%に変更 */
        height: 100%;
        max-width: 100vw; /* 最大幅を制限 */
        box-sizing: border-box; /* ボックスサイズを境界線まで含める */
    }
    
    .header-inner {
        padding: 0.5rem 0.8rem; /* 左右のパディングを調整 */
        justify-content: space-between;
        align-items: center;
        width: 100%;
        max-width: 100vw;
    }
    
    .logo {
        height: 40px;
        max-width: 100%;
    }
    
    .company-name {
        height: 40px;
        max-width: 100%;
    }
    
    .main-nav {
        margin-left: 0;
        flex-shrink: 0;
        position: relative;
    }
    
    .nav-links {
        display: none; /* 通常は非表示 */
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: -50px; /* 左側により大きくずらす */
        right: -20px; /* 右側に20px広げる */
        background: white;
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        padding: 1rem 1.5rem; /* 左右のパディングを増やす */
        z-index: 1000;
    }
    
    .main-nav .nav-links.active {
        display: flex !important; /* JavaScriptでactiveクラスが付与されたら表示（強制） */
    }
    
    /* ハンバーガーをロゴの右横に配置（さらに右に移動） */
    .hamburger {
        position: static !important;
        top: auto;
        right: auto;
        left: auto;
        transform: none;
        z-index: 1001;
        margin-left: 35px; /* ロゴの右横から35px右に配置（さらに右に移動） */
        margin-right: 20px; /* 右側に20pxの余白を作成 */
        padding: 8px;
    }
    
    .message-box {
        padding: 0.6rem 0.5rem; /* 左右の余白を調整 */
        font-size: 1.6rem; /* フォントサイズを少し大きく */
        margin-bottom: 6rem;
        width: 100%; /* 幅を最大に */
        max-width: 100%; /* 最大幅を最大に */
        box-sizing: border-box;
    }
    
    .message-list p {
        font-size: 1.6rem; /* フォントサイズを少し大きく */
    }
    
    
    .footer-content {
        padding: 15px 8px;
        width: 100%;
        max-width: 100vw;
        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: 150px; /* フレキシブル対応時は横幅をさらに小さく */
    }
    
    /* スライダーの横はみ出し修正 */
    .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;
    }
    
    .map-container iframe {
        width: 100%; /* footer-sectionいっぱいに広げる */
        height: 200px; /* フレキシブル対応時は大きく */
    }
    
    /* スマホ専用のmessage-boxスタイル */
    .message-box {
        padding: 0.5rem 0.3rem; /* 左右の余白を最小に */
        margin: 2rem auto 12rem; /* 下にさらに大きな余白 */
        max-width: 100%; /* 最大幅を100%に */
        width: 100%; /* 幅を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;
    }

/* 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; /* メールアイコンをピンク色に変更 */
}

    
    /* ハンバーガーメニューの右側余白を追加 */
    .hamburger {
        margin-left: 40px !important; /* 左側に40pxの余白を作成（さらに右に移動） */
        margin-right: 20px !important; /* 右側に20pxの余白を作成 */
    }
    




/* ===== 小画面スマホ対応 (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: 320px; /* 最大幅を調整 */
    }
    
    .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: 280px; /* 最大幅を調整 */
    }
    
    .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: nowrap !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;
}




