.settle-room-search,
.settle-room-search .page_green_ttl_wrap,
.settle-room-search .settle-xd-room-list { background: #fff; }
.settle-room-search .search_top { display: block; }
.settle-room-search .search_room_list { grid-template-columns: repeat(5, 1fr); margin: 1rem 0 2rem; }
.settle-room-search .search_room_list li { padding: 0; background: #bebebe; }
.settle-room-search .search_room_list a { display: block; padding: 10px 4px; color: inherit; text-decoration: none; }
.settle-room-search .search_room_list li.is-unavailable { background: #ededed; color: #aaa; }
.settle-room-search .search_room_list li.is-unavailable span { display: block; padding: 10px 4px; cursor: not-allowed; }
.settle-xd-legend { margin-bottom: 2rem; background: #fcfaf4; }
.settle-xd-legend dl { margin: 0 0 1rem; }
.settle-xd-legend dt { padding: 6px 12px; background: #6b5e40; color: #fff; }
.settle-xd-legend dd { padding: 10px; margin: 0; }
.settle-xd-legend .movin_in_list { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.settle-desktop-floorplan { margin-top: 2rem; }
.settle-desktop-floorplan .floor_img_wrap { display: flex; align-items: center; justify-content: center; width: 100%; height: auto; min-height: 0; aspect-ratio: 1/1; margin-bottom: 1rem; padding: 32px; overflow: hidden; }
.settle-desktop-floorplan .each_floor_img { display: block; position: relative; max-width: 100%; height: auto; max-height: 100%; padding: 0; flex: 0 0 auto; }
.settle-desktop-floorplan .settle-floorplan img { display: block; width: 100%; height: auto; margin: 0; }
.settle-room-search[data-building='side2'][data-floor='2'] .settle-floorplan { overflow: hidden; }
.settle-room-search[data-building='side2'][data-floor='2'] .settle-floorplan::after { content: ''; position: absolute; right: 0; bottom: 0; left: 0; z-index: 4; height: 22px; background: #fff; pointer-events: none; }
.settle-floor-room-link { position: absolute; z-index: 2; display: block; background: rgba(255,255,255,0); cursor: pointer; text-decoration: none; }
.settle-floor-room-link span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.settle-floor-room-link:hover,
.settle-floor-room-link:focus-visible { z-index: 3; background: rgba(225,229,40,.4); outline: 3px solid #e1e528; outline-offset: -2px; filter: drop-shadow(0 0 2px #e1e528); }
.settle-floor-room-unavailable { position: absolute; z-index: 2; display: block; background: rgba(102,102,102,.55); cursor: not-allowed; }
.settle-floor-svg { position: absolute; inset: 0; z-index: 2; display: block; width: 100%; height: 100%; overflow: visible; }
.settle-floor-svg-link rect,
.settle-floor-svg-link polygon { fill: transparent; stroke: transparent; stroke-width: 3; vector-effect: non-scaling-stroke; cursor: pointer; pointer-events: all; transition: fill .15s ease,stroke .15s ease; }
.settle-floor-svg-link:hover rect,
.settle-floor-svg-link:hover polygon,
.settle-floor-svg-link:focus rect,
.settle-floor-svg-link:focus polygon { fill: rgba(225,229,40,.4); stroke: #e1e528; }
.settle-floor-svg-unavailable rect,
.settle-floor-svg-unavailable polygon { fill: rgba(102,102,102,.55); stroke: rgba(102,102,102,.75); stroke-width: 1; vector-effect: non-scaling-stroke; cursor: not-allowed; }
.settle-floor-unavailable-check { fill: #d73b2f; font-size: 22px; font-weight: 700; text-anchor: middle; dominant-baseline: central; pointer-events: none; paint-order: stroke; stroke: #fff; stroke-width: 3px; vector-effect: non-scaling-stroke; }
.settle-floor-room-unavailable::after { content: '✓'; position: absolute; top: var(--check-y, 50%); left: var(--check-x, 50%); color: #d73b2f; font-size: clamp(16px, 4vw, 24px); font-weight: 700; line-height: 1; text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff; transform: translate(-50%, -50%); }
.settle-desktop-floorplan .floor_link_wrap { display: flex; justify-content: center; margin-top: 20px; }
.settle-desktop-floorplan .floor_link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 215px; min-height: 48px; padding: 10px 20px; border: 1px solid #6b5e40; border-radius: 999px; color: #6b5e40; font-family: 'Tsukushi A Round Gothic','筑紫ARゴシックB',sans-serif; font-size: 22px; line-height: 1; text-decoration: none; }
.settle-desktop-floorplan .floor_link::before { content: ''; display: block; width: 22px; height: 22px; flex: 0 0 22px; background: url('../images/common/icon_zoom.svg') center/contain no-repeat; }
.settle-xd-room-list { padding-top: 4rem; }
.settle-xd-room-list .movin_in_wrap { margin-bottom: 3rem; }
.settle-xd-room-list .movin_in_inner { margin-top: 2rem; overflow: hidden; border-radius: 20px; background: #fcfaf4; }
.settle-xd-room-list .movin_in_inner dl { margin: 0; }
.settle-xd-room-list .movin_in_inner dt { padding: 10px 16px; background: #6b5e40; color: #fff; font-size: 20px; line-height: 1; }
.settle-xd-room-list .movin_in_inner dd { padding: 16px; margin: 0; }
.settle-xd-room-list .movin_in_list { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 2em; }
.settle-xd-room-list .movin_in_list li { display: flex; align-items: center; gap: 5px; font-size: 16px; line-height: 1; }
.settle-xd-room-list .room_setsubi li::before { content: ''; display: block; width: 22px; height: 22px; background-position: center; background-size: contain; background-repeat: no-repeat; }
.settle-xd-room-list .room_setsubi .shower::before { background-image: url('../images/search/icon_shower.svg'); }
.settle-xd-room-list .room_setsubi .bath::before { background-image: url('../images/search/icon_bath.svg'); }
.settle-xd-room-list .room_type span { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #6b5e40; color: #fff; font-size: 14px; }
.room_list_table_wrap { width: 100%; overflow-x: visible; }
.room_list_table { width: 100%; min-width: 0; table-layout: fixed; font-size: clamp(9px, 2.33334vw, 14px); }
.room_list_table th,
.room_list_table td { box-sizing: border-box; padding-inline: clamp(2px, .7vw, 7px); overflow-wrap: anywhere; }
.room_list_table th:nth-child(1), .room_list_table td:nth-child(1) { width: 9%; white-space: nowrap; }
.room_list_table th:nth-child(2), .room_list_table td:nth-child(2) { width: 6%; }
.room_list_table th:nth-child(3), .room_list_table td:nth-child(3) { width: 8%; }
.room_list_table th:nth-child(4), .room_list_table td:nth-child(4) { width: 11%; }
.room_list_table th:nth-child(5), .room_list_table td:nth-child(5) { width: 8%; }
.room_list_table th:nth-child(6), .room_list_table td:nth-child(6) { width: 11%; }
.room_list_table th:nth-child(7), .room_list_table td:nth-child(7) { width: 11%; }
.room_list_table th:nth-child(8), .room_list_table td:nth-child(8) { width: 16%; }
.room_list_table th:nth-child(9), .room_list_table td:nth-child(9) { width: 20%; }
.room_list_table a.estimate_btn,
.room_list_table a.entry_btn { display: flex; align-items: center; justify-content: center; min-height: 34px; padding: 5px 8px; border-radius: 30px; color: #fff; text-decoration: none; white-space: nowrap; }
.room_list_table a.estimate_btn { background: #84a63d; }
.room_list_table a.entry_btn { background: #ce8c16; }
.room_list_table a.estimate_btn,
.room_list_table a.entry_btn { min-height: 30px; padding: 4px 3px; font-size: clamp(9px, 2.16667vw, 13px); line-height: 1.15; white-space: nowrap; text-align: center; }
.room_list_table .room-type-icon { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: auto; background-position: center; background-size: contain; background-repeat: no-repeat; color: #fff; font-size: 12px; font-weight: bold; line-height: 1; }
.room_list_table .room-type-icon.type-hs,
.room_list_table .room-type-icon.type-s1 { background-image: url('../images/search/icon_shower.svg'); font-size: 0; }
.room_list_table .room-type-icon.type-hb,
.room_list_table .room-type-icon.type-s1b { background-image: url('../images/search/icon_bath.svg'); font-size: 0; }
.room_list_table .room-type-icon[class*='type-s2'] { border-radius: 50%; background-color: #6b5e40; }
.room_list_table .no-available-rooms { padding: 30px 15px; text-align: center; }
.room_list_table tr.is-unavailable { background: #f4f3ef; color: #888; }
.room_list_table tr { scroll-margin-top: 80px; }
.room_list_table tr.is-selected { animation: settle-row-highlight 1.8s ease; }
@keyframes settle-row-highlight { 0%,55% { outline: 4px solid #e1e528; outline-offset: -4px; } 100% { outline: 0 solid transparent; } }
@media (min-width: 600px) { .settle-mobile-room-boxes { display: none !important; } }
@media (max-width: 599px) { .settle-desktop-floorplan { display: none; } .settle-room-search .search_room_list { display: grid; grid-template-columns: repeat(5,1fr); } .settle-xd-room-list { padding-top: 2.5rem; } }

@media (max-width: 599px) {
  /*
   * SP空室表：
   * 320px付近では9pxを下限、画面幅に応じて可変し、599px付近で12pxを上限にする。
   * qa-fixes.css の375px以下16px !importantより優先させるため、セル側のみ !important を使用。
   */
  .room_list_table_wrap .room_list_table {
    font-size: clamp(9px, 2.75vw, 12px);
  }

  .room_list_table_wrap .room_list_table tr > th,
  .room_list_table_wrap .room_list_table tr > td {
    font-size: clamp(9px, 2.75vw, 12px) !important;
    padding-inline: clamp(1px, .45vw, 3px);
  }

  .room_list_table_wrap .room_list_table :is(th, td):nth-child(1) { width: 9%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(2) { width: 6%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(3) { width: 10%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(4) { width: 14%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(5) { width: 8%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(6) { width: 11%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(7) { width: 12%; }
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(8),
  .room_list_table_wrap .room_list_table :is(th, td):nth-child(9) { width: 15%; }

  .room_list_table_wrap .room_list_table td:not([colspan]):is(:nth-child(1), :nth-child(3), :nth-child(4)) {
    white-space: nowrap;
    overflow-wrap: normal;
  }

  .room_list_table_wrap .room_list_table td a:is(.estimate_btn, .entry_btn) {
    font-size: clamp(9px, 2.55vw, 11px);
    padding: 4px 1px;
    white-space: nowrap;
  }

  .room_list_table_wrap .room_list_table .room-type-icon {
    width: clamp(16px, 4.6vw, 20px);
    height: clamp(16px, 4.6vw, 20px);
  }

  .room_list_table_wrap .room_list_table .room-type-icon[class*='type-s2'] {
    font-size: clamp(8px, 2.3vw, 10px);
  }
}
