/* === ベース設定 === */
/* ページのはみ出し防止 */
html, body {
  overflow-x: hidden;
  max-width: 100%;
  margin: 0;
  padding: 0;
  height: 100%;
}

/* 画像がはみ出さないように */
img {
  max-width: 95%;
  height: auto;
  display: block;
}

body {
  font-family: "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
  background: url('images/bg.jpg') no-repeat center center fixed;
  background-size: cover;
  color: #333;
  text-align: center;
}

/* モバイルページ背景画像 ← ★ 修正ポイント */
@media screen and (max-width: 768px) {
  body {
    background-attachment: scroll;
    background-position: top center;  /* ← ★ top を指定して余白解消 */
    background-repeat: no-repeat;
    background-size: cover;
  }
}

a {
  color: #0000EE; /* 通常のリンク色 */
  text-decoration: none;
  transition: color 0.3s ease; /* 色がスムーズに変わる */
}

/* 画像リンクをオンマウスでほんのり白っぽく */
a img:hover,
.icon-box img:hover,
.service-item img:hover,
.menu ul li img:hover,
.menu-icon:hover img {
  filter: brightness(1.2); /* 少し明るくする */
  transition: filter 0.3s ease;
}

/* === メインエリア === */
main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  background-color: rgba(0, 0, 0, 0);
  border-radius: 12px;
}

/* === ヘッダー === */
.header {
  background-color: rgba(0, 0, 0, 0);
  padding: 10px 20px;
  position: relative;
  z-index: 10;
}

/* ヘッダーのレイアウト */
.header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

/* ロゴを右寄せ */
.header-logo {
  margin-left: auto;
}

.header-logo img {
  max-height: 80px;
}

/* === 共通ナビゲーションメニュー（PC表示） === */
.nav-menu {
  display: flex;
  gap: 20px;
  list-style: none; /* ← 追加：リストマーカー非表示 */
  padding: 0; /* ← 追加：リセット */
  margin: 0; /* ← 追加：リセット */
}

/* メニューを左寄せ */
.nav-menu {
  justify-content: flex-start;
}

.nav-menu li {
  list-style: none; /* 念のため追加 */
}

.nav-menu a {
  text-decoration: none;
  color: #333;
  font-weight: bold;
  font-size: 16px;
}

.nav-menu a:hover {
  color: #666;
}

/* === ハンバーガーメニュー（モバイル用） === */
.hamburger-menu {
  display: none;
}

/* --- ハンバーガーメニュー左上配置 --- */
.menu-icon {
  display: inline-block;
  position: absolute;
  top: 2px;
  left: 20px; /* ← 右→左に変更 */
  z-index: 1000;
}

/* --- モバイル用メニューをコンパクトかつ見やすく --- */
.menu {
  display: none;
  flex-direction: column;
  background-color: #fff;
  padding: 10px 0;
  position: absolute;
  top: 50px;  /* メニューアイコンの下に配置 */
  left: 20px; /* 左寄せ */
  border-radius: 8px;
  z-index: 999;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  width: 200px; /* コンパクトに */
}

.menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.menu ul li {
  margin: 5px 0;
  padding: 8px 16px;
  text-align: left;
  border-bottom: 1px solid #ddd;
}

.menu ul li:last-child {
  border-bottom: none;
}

.menu ul li a {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #333;
  font-size: 14px;
}

.menu ul li img {
  width: 24px;
  height: auto;
}

.menu-icon span {
  display: block;
  width: 25px;
  height: 3px;
  margin: 5px;
  background: #333;
}

.menu-icon:hover {
  filter: brightness(1.2); /* 少し明るく */
  opacity: 0.85;           /* 少し透ける効果 */
  transition: all 0.3s ease; /* スムーズな変化 */
}

#menu-toggle {
  display: none;
}

.menu {
  display: none;
  flex-direction: column;
  background-color: #fff;
  padding: 10px;
  margin-top: 10px;
  border-radius: 8px;
}

.menu ul {
  list-style: none; /* ← 追加：リストマーカー非表示 */
  padding: 0;
  margin: 0;
}
.menu ul li {
  margin: 10px 0;
  list-style: none;
}
.menu ul li a {
  text-decoration: none;
  color: #333;
  font-size: 16px;
}

/* === 横並びレイアウト === */
.horizontal-layout {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 20px 0;
}

.staff-image, 
.logo-image, 
.activity-image img, 

.message-image img {
  max-width: 100%;
  height: auto;
}

/* === サービスアイコン === */
.service-icons {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  margin: 30px 0;
}
.icon-box {
  text-align: center;
  max-width: 200px;
}
.icon-box img {
  width: 100%;
  height: auto;
}
.icon-box p {
  margin-top: 10px;
  font-size: 14px;
}

/* === サービス紹介セクション === */
.services {
  margin: 40px 0;
}
.services h2 {
  font-size: 24px;
  margin-bottom: 20px;
}
.service-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.service-item {
  max-width: 240px;
  background-color: transparent !important; /* ← 修正点 */
  padding: 10px;
  border-radius: 12px;
  box-shadow: none !important; /* 影も除去する場合 */
}
.service-item img {
  max-width: 100%;
  height: auto;
}
.service-item p {
  font-size: 14px;
  margin-top: 10px;
}

/* サービスアイテムの背景を透過に */
.service-item {
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* 色付きクラスも透過を強制 */
.service-item.orange,
.service-item.blue,
.service-item.green,
.service-item.pink {
  background-color: transparent !important;
}

/* 画像自体の装飾も除去 */
.service-item img {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* 色別背景 
.orange { background-color: non; }
.blue { background-color: non; }
.green { background-color: non; }
.pink { background-color: non; }
*/

/* === フッター === */
.footer {
  background-color: rgba(0, 0, 0, 0);
  padding: 30px 20px;
  margin-top: 40px;
}
.footer .sns-icons {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-bottom: 20px;
}

.footer .map img {
  max-width: 500px;
  justify-content: center;
  height: auto;
  margin-bottom: 10px;
}

.footer-info p {
  margin: 5px 0;
}

/* === スクロール可能な規約エリア === */
.concept {
  margin: 40px 0;
}
.concept-scroll {
  max-height: 250px;
  overflow-y: auto;
  padding: 10px;
  border: 1px solid #ccc;
  text-align: left;
}
.concept-scroll p {
  font-size: 14px;
  line-height: 1.8;
}

/* === モバイル表示 === */
@media (max-width: 768px) {
  .hamburger-menu {
    display: block;
  }
 
  .menu {
    display: none;
    top: 40px; /* ← メニューの展開位置も調整が必要 */
    /* その他のスタイル */
  }

  .menu.active {
    display: flex;
    /* その他のスタイル */
  }

  .menu-icon {
    display: block;
    /* 先ほどの絶対位置指定もここに書いてOK */
  } 
  
.hamburger-menu {
  position: relative;
  display: none;
}

  .menu-icon {
    display: inline-block;
  }

  #menu-toggle:checked + .menu-icon + .menu {
    display: flex;
  }

  .header-top {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .horizontal-layout {
    flex-direction: column;
  }

  .service-list {
    flex-direction: column;
    align-items: center;
  }

/* モバイル表示向け */
@media (max-width: 768px) {
  /* PCメニューを非表示 */
  .nav-menu {
    display: none;
  }

  /* ハンバーガーアイコンを表示 */
  .hamburger-menu {
    display: block;
    position: relative;
  }

  .menu-icon {
    display: inline-block;
    position: absolute;
    top: 0px;
    right: 20px;
    z-index: 1000;
  }

  /* メニュー本体は非表示 */
  .menu {
    display: none;
    flex-direction: column;
    background-color: #fff;
    padding: 10px;
    position: absolute;
    top: 40px; /* ハンバーガーの下に出るように調整 */
    right: 20px;
    border-radius: 8px;
    z-index: 999;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  }

  /* チェックされたら表示 */
  #menu-toggle:checked + .menu-icon + .menu {
    display: flex;
  }

/* day_logo を左上に重ねて表示 */
.hero-text {
  position: relative;
  display: flex;
  align-items: center;
}

/* hero 左ブロックの構造 */
.hero-left {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}

/* ロゴを左上に重ねる */
.logo-overlay {
  position: relative;
  display: inline-block;
}

/* 各ロゴ設定 */
.day-logo-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  z-index: 2;
}

.care-logo-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  z-index: 2;
}

.nurse-logo-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  z-index: 2;
}

.day-message-img {
  margin-left: 50px; /* ロゴと重ならないよう調整 */
  max-width: 70%;
  height: auto;
}

.nurse-message-img {
  margin-left: 50px; /* ロゴと重ならないよう調整 */
  max-width: 70%;
  height: auto;
}

.care-message-img {
  margin-left: 80px; /* ロゴと重ならないよう調整 */
  max-width: 80%;
  height: auto;
}

/* hero 全体を横並び */
.hero.horizontal-layout {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
}

/* サービスアイテムを横並び＆改行なし */
.service-list {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 20px;
  justify-content: flex-start;
  padding-bottom: 10px;
}

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 214px; /* 必要に応じて高さ指定 */
}

/* サービスアイテム背景色を消す */
.service-item.orange,
.service-item.blue,
.service-item.green,
.service-item.pink {
  background-color: transparent !important;
}

/* サービス画像の背景除去（念のため） */
.service-item img {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
.day-logo-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100px; /* サイズ調整は必要に応じて */
  z-index: 2;
}

.day-message-img {
  margin-left: 100px; /* ロゴの横にずらす */
  max-width: 90%;
  height: auto;
}

/* サービスアイコンを横並びで改行させない */
.service-list {
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap; /* 改行しない */
  gap: 20px;
  overflow-x: auto; /* モバイル時横スクロール可 */
  padding: 0 10px;
}

/* アイコン背景を透過に */
.service-item img {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

.container {
  max-width: 960px;
  margin: 0 auto; /* ← 中央寄せ */
  padding: 20px;
  text-align: center;
}

.container img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.services .service-item {
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Googleマップ外枠（中央寄せ） */
.map-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 60px auto;
}

/* iframeをレスポンシブに表示 */
.map-container iframe {
  /* 枠線を完全に消す */
  border: none !important;
  outline: none !important;
  /* フォーカス時の影なども消す */
  box-shadow: none !important;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
  max-width: 100%; /* はみ出し防止 */
  box-sizing: border-box;
}

/* オプション：モバイル最適化がさらに必要な場合 */
@media screen and (max-width: 600px) {
  .map-container iframe {
    aspect-ratio: 16 / 9; /* 維持 */
    height: auto;
  }
}
