/* --- 施設詳細ページ用スタイル --- */
.page-hero {
    background-color: var(--light-bg);
    padding: 60px 0;
    text-align: center;
}

.page-hero h1 {
    font-size: 3em;
    color: var(--primary-color);
}

.page-hero p {
    font-size: 1.2em;
    color: #555;
    margin-top: 10px;
}

.facility-details-section .facility-image {
    margin-bottom: 40px;
}

.facility-image img.full-width-image {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    box-shadow: none;
}

.facility-info,
.facility-gallery,
.facility-location,
.facility-amenities,
.facility-capacity {
    margin-bottom: 60px;
}

/* 紹介文の装飾 */
.facility-details-section .facility-info {
    border: 1px solid #ddd; /* 囲み線を追加 */
    border-left: 5px solid var(--primary-color); /* 左側にアクセントラインを追加 */
    padding: 30px; /* 内側の余白を増やす */
    border-radius: 8px; /* 角を丸くする */
    background-color: #f9f9f9; /* 背景色を少しグレーにする */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); /* 影をつけて浮き上がらせる */
}

/* 紹介文のテキストスタイル */
.facility-info p {
    font-size: 1.1em; /* フォントサイズを少し大きくする */
    line-height: 1.8; /* 行間を広げて読みやすくする */
    color: #333; /* 文字色を濃くする */
    font-family: "Sawarabi Mincho", serif; /* 雰囲気のあるフォントに変更 */
}

/* 紹介文のタイトルスタイル */
.facility-info h2 {
    font-size: 2em;
    margin-bottom: 20px;
    color: var(--primary-color);
    font-family: "Sawarabi Mincho", serif;
}

/* ギャラリーを3列表示にするための修正 */
.gallery-grid {
    display: flex;
    justify-content: center; /* 画像を中央に配置する */
    gap: 1rem; /* 画像の間に余白を作る */
    overflow-x: auto; /* 画面幅を超える場合は横スクロールを可能にする */
}

.gallery-grid img {
    /* 画像の幅を均等にする場合はここを調整 */
    width: 400px; /* 例：画像の幅を固定する */
    flex-shrink: 0; /* 画面が狭くなっても画像が縮まないようにする */
    height: 280px;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.gallery-grid img:hover {
    transform: scale(1.05);
}

.map-container {
    text-align: center;
    margin-top: 20px;
}

/* --- アメニティー一覧 --- */
.facility-amenities h3 {
    font-size: 1.5rem; /* 小見出しのフォントサイズ */
    font-weight: 700;
    margin-top: 2rem;
    margin-bottom: 1rem;
    border-bottom: 2px solid var(--primary-color);
    padding-bottom: 0.5rem;
}

.amenities-icons {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); /* 画面サイズに応じて自動で列数を調整 */
    gap: 20px;
    list-style: none;
    padding: 0;
    text-align: left;
}
/* または、より具体的にアイコンのテキストに適用 */
.amenities-icons li p {
    white-space: nowrap; /* こちらの方がより安全です */
}

.amenities-icons li {
    display: flex;
    flex-direction: column; /* アイコンとテキストを縦に並べる */
    align-items: center; /* 左寄せに修正 */
    justify-content: center;
    text-align: center;
}

.amenities-icons li img {
    width: 50px; /* アイコンのサイズを調整 */
    height: 50px;
}

.amenities-icons p {
    margin-top: 10px;
    font-size: 0.8rem;
    color: #333;
}

/* 提供されていないアメニティを薄く表示 */
.amenities-icons .unavailable {
    opacity: 0.3; /* 透明度を設定してグレーアウト */
}

.amenities-details {
    max-width: 800px;
    margin-top: 40px; /* ★中央寄せのスタイルを削除し、マージンを調整 */
    border-top: 2px solid var(--primary-color);
    padding-top: 20px;
}

.amenities-details h4 {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.amenities-notes {
    list-style: none;
    padding: 0;
}

.amenities-notes li {
    font-size: 1rem;
    color: #555;
    line-height: 1.6;
    margin-bottom: 0.5rem;
    position: relative;
    padding-left: 1.5em; /* 箇条書きアイコンのスペース */
}

/* 箇条書きアイコン（●） */
.amenities-notes li::before {
    content: "・";
    position: absolute;
    left: 0;
    color: var(--primary-color); /* アイコンの色 */
    font-size: 1.2rem;
    font-weight: bold;
}

/* デフォルト（PC）ではハンバーガーボタンとスマホ用メニューは非表示 */
.menu-toggle-btn,
.mobile-nav {
  display: none;
}

/* ハンバーガーアイコンのデザイン */
.hamburger {
  width: 25px;
  height: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  transition: transform 0.3s ease;
}

.hamburger span {
  display: block;
  width: 100%;
  height: 3px;
  background-color: var(--primary-color);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* ハンバーガーボタンのアニメーション */
.menu-toggle-btn.is-active .hamburger span:nth-child(1) {
  transform: translateY(8.5px) rotate(45deg);
}
.menu-toggle-btn.is-active .hamburger span:nth-child(2) {
  opacity: 0;
}
.menu-toggle-btn.is-active .hamburger span:nth-child(3) {
  transform: translateY(-8.5px) rotate(-45deg);
}

/* sr-onlyクラス: スクリーンリーダーのみが読み込む要素 */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* --- ハンバーガーボタンにテキストを追加 --- */
.menu-toggle-btn::before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    opacity: 1;
    transition: opacity 0.3s ease;
    font-size: 0.9em;
    font-family: var(--font-family-body);
    color: var(--primary-color);
}

/* --- メニューが開いたときにテキストを非表示にする --- */
.menu-toggle-btn.is-active::before {
    opacity: 0;
    pointer-events: none; /* クリックイベントを無効にする */
}

/* ハンバーガーアイコンのデザインを調整 */
.menu-toggle-btn {
    position: relative;
    width: 60px; /* 十分な幅を確保 */
    height: 40px; /* 十分な高さを確保 */
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hamburger {
    position: relative;
    z-index: 10;
}
@media (max-width: 768px) {
  /* PC用のメニューを非表示にする */
  .main-nav {
    display: none;
  }
  
  /* ハンバーガーボタンを表示する */
  .menu-toggle-btn {
    display: block;
    background: none;
    border: none;
    padding: 10px;
    cursor: pointer;
    order: 3;
    z-index: 1001;
  }
  
  /* スマートフォン用のメニューを表示する */
  .mobile-nav {
    display: block; /* デフォルトで非表示にするため、このルールを追加 */
    width: 100%;
    position: fixed; /* ヘッダーの下ではなく画面全体を覆うように */
    top: 70px; /* ヘッダーの高さに合わせて調整 */
    left: 0;
    z-index: 999;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transform: translateX(-100%); /* 画面左側に非表示にする */
    transition: transform 0.3s ease-in-out;
  }
  
  /* メニューが開いたときにこのクラスが適用されます */
  .mobile-nav.is-open {
    transform: translateX(0); /* 画面内に表示する */
  }

  .mobile-nav ul {
    flex-direction: column;
    text-align: center;
    background-color: var(--white);
  }
  
  .mobile-nav li {
    padding: 15px 0;
    border-bottom: 1px solid var(--soft-gray);
  }
  
  .mobile-nav li:last-child {
    border-bottom: none;
  }
  
  /* ヘッダーのレイアウト調整 */
  .site-header .container {
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
  }
}
