#hall-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    margin-top: 50px;
  }

  /* セクションのレイアウト */
  .hall-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    max-width: 1000px;
    margin-bottom: 60px;
  }

  /* テキストエリア */
  .hall-content {
    max-width: 600px;
  }

  /* 画像エリア */
  .hall-image img {
    width: 200px;
    height: auto;
    border-radius: 10px;
  }

  /* 見出し */
  .hall-list-header {
    font-size: var(--fs__5l);
    font-weight: bold;
    margin-bottom: 20px;
    text-align: left;
  }

  /* テキストのスタイル */
  .hall-content p {
    font-size: var(--fs__l);
    font-weight: bold;
    line-height: 1.8;
    text-align: left;
    margin-bottom: 5px;
  }

  /* レスポンシブ対応 */
  @media (max-width: 768px) {
    .hall-container {
      flex-direction: column;
      text-align: center;
      margin: 0 auto 30px;
    }

    .hall-content {
      max-width: 100%;
      padding: 0 20px;
    }

    .hall-header {
      font-size: var(--fs__3l);
      text-align: left;
    }

      /* テキストのスタイル */
  .hall-content p {
    line-height: 1.6;
    margin-bottom: 1px;
  }

    .hall-image img {
      width: 150px;
      margin-top: 20px;
    }
  }


  #hall-tamayu-section,
  #hall-hanare-section {
    padding: 0 20px;
  }

  /* タイトルとテキストを横並び */
  .tamayu-container,
  .hanare-container {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto 40px;
    flex-wrap: wrap;
  }

  /* 縦書きタイトル */
  .tamayu-title,
  .hanare-title {
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-weight: bold;
    line-height: 1.9;
    letter-spacing: 0.15em;
    margin: 0;
  }

  /* テキスト本体 */
  .tamayu-text,
  .hanare-text {
    max-width: 700px;
    padding: 20px 25px;
    box-sizing: border-box;
  }

  .tamayu-text p,
  .hanare-text p {
    font-size: var(--fs__l);
    font-weight: bold;
    line-height: 1.9;
    margin-bottom: 12px;
  }

  /* 外観画像 */
  .tamayu-exterior-image {
    width: 100%;
    max-width: 1000px;
    margin: 10px auto;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .tamayu-exterior-image img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
  }

  /* 間取り図とタッチエリア */
  .tamayu-map,
  .hanare-map {
    margin: 50px auto;
    padding: 0 20px;
    width: 100%;
    box-sizing: border-box;
  }

  .tamayu-map-container,
  .hanare-map-container {
    position: relative;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    aspect-ratio: 617 / 426;
    overflow: hidden;
  }

  .map-image,
  .hanare-image {
    display: block;
    width: 100%;
    height: auto;
    z-index: 1;
  }

  /* タップエリア */
  .room-area-tamayu,
  .room-area-hanare {
    position: absolute;
    cursor: pointer;
    z-index: 2;
  }

  /* サムネイルスライダー */
  .thumbnail-slider {
    display: flex;
    overflow-x: auto;
    gap: 10px;
    margin-top: 20px;
    padding: 10px 0;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    min-height: 120px; /* ✅ 空でも見えるようにする */
  }

  .thumbnail-slider img {
    width: 100px;
    height: auto;
    object-fit: cover;
    flex-shrink: 0;
    scroll-snap-align: start;
    border-radius: 6px;
    cursor: pointer;
    transition: transform 0.2s ease;
  }

  .thumbnail-slider img:hover {
    transform: scale(1.05);
  }

  /* レスポンシブ */
  @media (max-width: 768px) {
    .tamayu-map,
    .hanare-map {
      margin: 30px auto;        /* 少し余白を減らす */
      padding: 0 10px;          /* 左右の余白を詰める */
    }

    .tamayu-map-container,
    .hanare-map-container {
      max-width: 100%;          /* スマホでは画面幅に合わせる */
      aspect-ratio: 617 / 426;  /* 比率は維持 */
      padding: 0;
    }

    .map-image,
    .hanare-image {
      width: 100%;
      height: auto;
    }

    .tamayu-exterior-image {
      width: 100%;
      max-width: 100%;
      margin: 20px auto 0;
      padding: 0;
      box-sizing: border-box;
    }

    .tamayu-exterior-image img {
      width: 100%;
      height: auto;
      display: block;
    }

    .tamayu-title,
    .hanare-title {
      writing-mode: horizontal-tb;
      text-orientation: mixed;
      font-size: var(--fs__4l);
      margin-bottom: 5px;
    }

    .tamayu-text,
    .hanare-text {
      max-width: 100%;
      padding: 10px;

    }

    .tamayu-text p,
    .hanare-text p {
      font-size: var(--fs__m);
      font-weight: bold;
      line-height: 1.6;
      margin-bottom: 10px;
      text-align: left;
    }

    .thumbnail-slider {
      padding: 5px 0;
    }
  }


  #room-popup-section {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.7);
    justify-content: center;
    align-items: center;
    z-index: 1000;
  }

  /* ポップアップ本体 */
  .room-popup-content {
    position: relative;
    background: #fff;
    padding: 20px;
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    flex-direction: column; /* 📱 スマホで縦並びにも対応 */
  }

  /* 画像を枠内に収める */
  #popup-room-image {
    max-width: 100%;
    max-height: 80vh;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
  }

  /* 左右のスライドボタン */
  .slide-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0,0,0,0.4);
    color: #fff;
    border: none;
    font-size: 2rem;
    padding: 10px;
    cursor: pointer;
    z-index: 10;
  }

  .slide-btn.prev {
    left: 10px;
  }

  .slide-btn.next {
    right: 10px;
  }

  /* 閉じるボタン */
  .popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 2rem;
    color: #333;
    background: #fff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    font-weight: bold;
    cursor: pointer;
    z-index: 20;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  }

  .popup-close:hover {
    background-color: #f2f2f2;
  }

  @media screen and (min-width: 1200px) {
    #room-popup-section {
      transform: translateX(calc(var(--header-width) / 2));
    }
  }

  @media screen and (max-width: 768px) {
    .room-popup-content {
      padding: 10px;
      max-width: 95vw;
      max-height: 90vh;
    }

    #popup-room-image {
      max-height: 70vh;
    }

    .slide-btn {
      font-size: 1.6rem;
      padding: 8px;
    }

    .popup-close {
      top: 5px;
      right: 5px;
      width: 32px;
      height: 32px;
      font-size: 1.6rem;
      line-height: 32px;
    }
  }
