/* overrides.css - v20250313 */
@layer overrides {
  /* ヘッダー固定時：main がヘッダーと重ならない（実高は header.blade の JS が --fixed-header-height に同期） */
  main {
    padding-top: var(--fixed-header-height, 5.5rem);
  }
  @media screen and (min-width: 768px) {
    main {
      padding-top: var(--fixed-header-height, 6.5rem);
    }
  }

  /*
   * PC ヘッダー検索フォーカス（全ページ共通）
   * components レイヤーより後に適用し、ページ別の詳細度差で効かなくなるのを防ぐ。
   * お問い合わせ列のみ非表示＋入力欄をその分だけ拡張。電話・受付文・LINE は flex-shrink:0 で幅を維持。
   */
  @media screen and (min-width: 768px) {
    header.header nav.menu .menu-head .inquiry .contact-area {
      flex-shrink: 0;
    }
    header.header nav.menu .menu-head .inquiry .line-btn {
      flex-shrink: 0;
    }
    header.header nav.menu .menu-head .inquiry > p.link-contact {
      flex-shrink: 0;
    }
    header.header nav.menu .menu-head:has(.search-wrap:focus-within) .inquiry .link-contact {
      display: none;
    }
    header.header nav.menu .menu-head:has(.search-wrap:focus-within) .search-wrap .textbox-search {
      width: calc(16rem + 4.75rem);
      box-sizing: border-box;
    }
  }

  /* トップ: お友達紹介バナー（お知らせの直上） */
  #top .friend-referral-banner {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0.75rem;
  }
  #top .friend-referral-banner__link {
    display: block;
    position: relative;
    max-width: 728px;
    margin-left: auto;
    margin-right: auto;
    line-height: 0;
  }
  #top .friend-referral-banner__link::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(255, 255, 255, 0);
    transition: background-color 0.2s ease;
    pointer-events: none;
  }
  @media (hover: hover) {
    #top .friend-referral-banner__link:hover::after {
      background-color: rgba(255, 255, 255, 0.2);
    }
  }
  #top .friend-referral-banner__link:focus-visible::after {
    background-color: rgba(255, 255, 255, 0.2);
  }
  #top .friend-referral-banner__img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: top;
  }
  #top .friend-referral-banner--after-recent {
    margin-top: 1.25rem;
    margin-bottom: 0;
  }

  /* コンテナの幅を揃える: トップページのみ中央寄せ */
  #top main,
  #top .map-link-bg-wrap,
  #top .surface-light-1-bg-wrap,
  #top .surface-base-bg-wrap,
  #top .surface-light-2-bg-wrap,
  #top .new-property,
  #top .price-down {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  #top .map-link-bg-wrap,
  #top .map-container,
  #top .surface-light-1-bg-wrap,
  #top .surface-base-bg-wrap,
  #top .surface-light-2-bg-wrap,
  #top .new-property,
  #top .price-down,
  #top .recent-history {
    width: 100%;
  }

  /* こだわり条件のカード5枚分の幅を全コンテンツの基準幅とする（トップページのみ） */
  @media screen and (min-width: 768px) {
    #top .content-container,
    #privacy-doc .content-container {
      width: 100%;
      max-width: 960px;
      margin-left: auto;
      margin-right: auto;
    }
    /* 地図セクションも他のコンテンツと同じ幅に */
    #top .map-link.content-container {
      max-width: 1150px;
    }
    /* カードを親幅いっぱいに広げる: 5枚で100%使う */
    #top .search-future .container {
      width: 100%;
      gap: 5px;
    }
    #top .search-future .container a.img-btn {
      width: calc((100% - 20px) / 5);
    }
  }
  @media screen and (max-width: 767px) {
    #top .content-container,
    #privacy-doc .content-container {
      width: 100%;
      max-width: 100%;
      margin-left: auto;
      margin-right: auto;
    }

    /* エリア/路線ボタン行とキーワード検索バーの左右縁（縦線）を同じインナー幅で揃える */
    #top .search-navigation.content-container {
      padding-left: 1rem;
      padding-right: 1rem;
      box-sizing: border-box;
    }
    #top .search-navigation .search-link .do-btn {
      border-width: 1px;
    }
    #top .search-navigation .search-wrap,
    #top .search-navigation .search-wrap .textbox-search {
      box-sizing: border-box;
    }
  }

  /* 利用規約・プライバシー: 金の縦線を見出し本文の高さに揃える（border-left だと行ボックスより伸びやすい） */
  #privacy-page.privacy-policy h1.accent-line,
  #privacy-page.privacy-policy h2.accent-line,
  #terms-page.terms-of-service h1.accent-line,
  #terms-page.terms-of-service h2.accent-line {
    border-left: none;
    padding-left: 0;
    display: flex;
    align-items: stretch;
    gap: 0.7rem;
  }
  #privacy-page.privacy-policy h1.accent-line::before,
  #privacy-page.privacy-policy h2.accent-line::before,
  #terms-page.terms-of-service h1.accent-line::before,
  #terms-page.terms-of-service h2.accent-line::before {
    content: '';
    width: 4px;
    flex-shrink: 0;
    background-color: var(--decorative-base, #bc9d12);
    align-self: stretch;
  }

  /* 各セクションの左右padding/marginを0に */
  #top main > div.surface-base-bg-wrap > section.search-future.content-container {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
  }

  .search-future .container,
  .content-container .container,
  .content-container > .wrap > .container,
  .ranking .container,
  .ranking .wrap .container,
  .new-property .container,
  .np-carousel,
  .our-strengths .container,
  .property-news .container,
  .faq-area .container {
    margin-left: 0;
    margin-right: 0;
  }

  /* お問い合わせ: PCでお問い合わせ内容を2列表示 */
  @media screen and (min-width: 768px) {
    #contact .from-area .item-field ul.checkbox-area {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 0.2rem 1.5rem;
    }
    #contact .from-area .item-field ul.checkbox-area .calendar-wrap {
      grid-column: 1 / -1;
    }
    /* その他を申し込みを入れたいの右側に配置（最後の2件を同一行に） */
    #contact .from-area .item-field ul.checkbox-area li:last-child {
      grid-column: auto;
    }
  }

  /* お問い合わせ・予約ページ: トップと同様のコンテンツ幅（960px）に統一 */
  @media screen and (min-width: 768px) {
    main#contact,
    main#contact-conf,
    main#contact-complete,
    main#reserve,
    main#reserve-conf,
    main#reserve-complete {
      max-width: 960px;
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
  }

  /* 最近見た物件: 非表示はクラスで制御（JSで削除して表示） */
  #top .recent-history.rh-empty,
  #result-list .recent-history.rh-empty {
    display: none !important;
  }
  #top .recent-history:not(.rh-empty),
  #result-list .recent-history:not(.rh-empty) {
    display: block !important;
    flex: 0 0 auto;
    min-height: 0;
  }
  /* 最近見た物件: 値下げ物件と同じ pd-building-card デザインで統一 */
  #top .recent-history .pd-carousel,
  #detail .recent-history .pd-carousel,
  #result-list .recent-history .pd-carousel,
  #result-list .today-new-arrivals .pd-carousel,
  #detail .today-new-arrivals .pd-carousel {
    position: relative;
  }

  /* 物件ランキング: 3×3グリッド */
  #top .ranking .ranking-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
  }
  #top .ranking .ranking-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.5rem;
    background: linear-gradient(to bottom, aliceblue, lightblue);
    border: 1px solid var(--decorative-base, #BC9D12);
    text-decoration: none;
    color: var(--navy-ttl, #061D3F);
    text-align: center;
  }
  #top .ranking .ranking-card:hover {
    opacity: 0.7;
  }
  #top .ranking .ranking-card-header {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0.25rem;
  }
  #top .ranking .ranking-icon {
    width: 2rem;
    height: 2rem;
  }
  #top .ranking .ranking-icon-1 {
    width: 2.4rem;
    height: 2.4rem;
  }
  #top .ranking .ranking-icon-2 {
    width: 2.2rem;
    height: 2.2rem;
  }
  #top .ranking .ranking-rank {
    font-size: 0.8rem;
    font-weight: normal;
    color: var(--navy-ttl, #061D3F);
  }
  #top .ranking .ranking-card-name {
    margin: 0;
    font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;
    font-weight: bold;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  #top .ranking .ranking-card-divider {
    margin: 0.15rem 0;
    border: none;
    border-top: 1px solid var(--navy-ttl, #061D3F);
    opacity: 0.3;
    width: 100%;
  }
  #top .ranking .ranking-card-detail {
    margin: 0;
    font-size: 0.625rem;
  }
  #top .ranking .ranking-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 1rem;
  }
  @media screen and (max-width: 767px) {
    #top .ranking .ranking-grid {
      grid-template-columns: 1fr;
    }
  }

  .recent-carousel-arrow:disabled {
    opacity: 0.4;
    cursor: default;
  }
  .recent-carousel-track {
    display: flex;
    gap: 5px;
    transition: transform 0.3s ease;
  }
  .recent-card {
    --card-size: 228px;
    flex: 0 0 var(--card-size);
    width: var(--card-size);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    position: relative;
  }
  .recent-card-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-size: cover;
    background-position: center;
    position: relative;
  }
  .recent-card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(50, 50, 50, 0.8);
    color: #fff;
    padding: 0.25rem 0.5rem;
    font-size: 0.5625rem;
    line-height: 1.4;
  }
  .recent-card-overlay p {
    margin: 0;
  }
  .recent-card-info {
    padding: 0.5rem;
    background: linear-gradient(to bottom, aliceblue, lightblue);
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  .recent-card-name {
    font-family: "游明朝", "Yu Mincho", serif;
    font-size: 0.8125rem;
    font-weight: bold;
    margin: 0 0 0.25rem 0;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }
  .recent-card-divider {
    width: 80%;
    border: none;
    border-top: 1px solid #ccc;
    margin: 0.25rem 0;
  }
  .recent-card-detail {
    font-size: 0.7rem;
    margin: 0;
    color: #333;
  }

  /* こだわり条件カルーセル: コンテンツ幅に4枚、＜＞ボタンは外側 */
  .feature-cards-wrap {
    margin-top: 1rem;
    padding: 1rem 0;
  }
  .feature-carousel {
    display: flex;
    align-items: center;
    position: relative;
  }
  .feature-carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--navy-ttl, #061D3F);
    background: #fff;
    color: var(--navy-ttl, #061D3F);
    font-size: 1rem;
    cursor: pointer;
    border-radius: 4px;
    z-index: 5;
  }
  .feature-carousel-arrow:hover:not(:disabled) {
    background: var(--primary-light-1);
    color: var(--navy-ttl, #061D3F);
    border-color: var(--decorative-base, #BC9D12);
  }
  .feature-carousel-arrow:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }
  @media screen and (min-width: 768px) {
    .feature-carousel-prev { left: -3.5rem; }
    .feature-carousel-next { right: -3.5rem; }
  }
  @media screen and (max-width: 767px) {
    .feature-carousel-prev { left: 0.5rem; }
    .feature-carousel-next { right: 0.5rem; }
  }
  .feature-carousel-viewport {
    flex: 1;
    overflow: hidden;
    container-type: inline-size;
    container-name: feature-viewport;
    width: 100%;
  }
  .feature-carousel-track {
    display: flex;
    gap: 5px;
    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  /* こだわりカルーセル読み込み（新着グリッドの sunburst と同系） */
  .feature-carousel-track .np-recent-loading-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 6rem;
    width: 100%;
    padding: 1rem;
    box-sizing: border-box;
    flex-shrink: 0;
  }
  .feature-carousel-track .np-recent-loading-icon {
    display: block;
    color: #bc9d12;
    animation: np-recent-loading-spin 2s linear infinite;
  }
  .feature-carousel-track .np-recent-loading-text {
    margin: 0;
    font-size: var(--font-small);
    color: var(--text-secondary);
  }
  .feature-carousel-track .feature-card {
    position: relative;
  }
  .feature-carousel-track .feature-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.2);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 10;
  }
  .feature-carousel-track .feature-card:hover::after {
    opacity: 1;
  }

  @keyframes featureCardSlideIn {
    from {
      opacity: 0;
      transform: translateY(12px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  .feature-card.animate-in {
    animation: featureCardSlideIn 0.4s ease forwards;
    opacity: 0;
  }
  .feature-card {
    --card-size: calc((100cqw - 15px) / 4);
    width: var(--card-size);
    height: var(--card-size);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    background-color: #fff;
    position: relative;
  }
  .feature-card .feature-card-image {
    flex: 1 1 77%;
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  .feature-card .feature-card-overlay {
    background-color: rgba(50, 50, 50, 0.8);
    color: #fff;
    padding: 0.25rem 0.5rem;
    font-size: 0.5625rem;
    line-height: 1.3;
    text-align: center;
  }
  .feature-card .feature-card-location,
  .feature-card .feature-card-built {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .feature-card .feature-card-info {
    flex: 0 0 23%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.25rem 0.5rem;
    background: linear-gradient(to bottom, aliceblue, lightblue);
    color: var(--navy-ttl, #061D3F);
    font-size: 0.625rem;
    line-height: 1.2;
    text-align: center;
  }
  .feature-card .feature-card-name {
    margin: 0;
    font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;
    font-weight: bold;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .feature-card .feature-card-divider {
    margin: 0.15rem 0;
    border: none;
    border-top: 1px solid var(--navy-ttl, #061D3F);
    opacity: 0.3;
    width: 100%;
  }
  .feature-card .feature-card-detail {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .feature-title {
    text-align: center;
    font-size: 1.25rem;
    font-weight: bold;
    font-family: var(--font-serif, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "MS PMincho", "MS Mincho", "Noto Serif JP", serif);
    color: var(--navy-ttl, #061D3F);
    margin: 1rem 0 0.5rem;
  }
  .feature-title .feature-count {
    font-size: 1rem;
    font-weight: normal;
  }
  .feature-cards-wrap .title-line {
    margin: 0 auto 0.5rem;
  }
  .feature-comment {
    text-align: center;
    padding: 0.75rem 1rem;
    margin: 0.5rem 0;
    font-size: 0.875rem;
    font-family: var(--font-serif, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "MS PMincho", "MS Mincho", "Noto Serif JP", serif);
    color: var(--navy-ttl, #061D3F);
    background-color: var(--surface-base, #E9E9E9);
    border-radius: 4px;
  }
  .feature-comment:empty {
    display: none;
  }
  .feature-more-wrap {
    display: flex;
    justify-content: center;
    padding: 1rem 0 0.5rem;
  }
  .feature-more-btn {
    display: inline-block;
    padding: 0.75rem 2rem;
    background-color: var(--navy-ttl, #061D3F);
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.875rem;
    transition: opacity 0.2s;
  }
  .feature-more-btn:hover {
    opacity: 0.8;
  }
  /* こだわり条件カード: 選択時の枠線は@layer外で定義 */

  .feature-card {
    border: 1px solid var(--decorative-base, #BC9D12);
    box-sizing: border-box;
    position: relative;
    transition: border-color 0.2s, border-width 0.2s;
  }

  @media screen and (max-width: 767px) {
    .feature-carousel-track {
      gap: 3px;
    }
    .feature-card {
      --card-size: calc((100vw - 60px - 9px) / 4);
    }
  }

  /* 新着物件: カルーセルラッパー（スマホ時のみ矢印表示） */
  #top .new-property .np-carousel {
    position: relative;
    width: 100%;
    align-self: stretch;
  }
  #top .new-property .np-carousel-arrow {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--navy-ttl, #061D3F);
    background: #fff;
    color: var(--navy-ttl, #061D3F);
    font-size: 1rem;
    cursor: pointer;
    border-radius: 4px;
    z-index: 5;
  }
  #top .new-property .np-carousel-arrow:disabled {
    opacity: 0.4;
    cursor: default;
  }
  @media screen and (max-width: 767px) {
    #top .new-property .np-carousel-arrow {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    #top .new-property .np-carousel-prev {
      left: 0.5rem;
    }
    #top .new-property .np-carousel-next {
      right: 0.5rem;
    }
  }

  /* 最近見た物件: 値下げ物件と同じカルーセル・グリッド（トップ・物件詳細共通） */
  #top .recent-history .pd-carousel-arrow,
  #detail .recent-history .pd-carousel-arrow,
  #result-list .recent-history .pd-carousel-arrow,
  #result-list .today-new-arrivals .pd-carousel-arrow,
  #detail .today-new-arrivals .pd-carousel-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2rem;
    height: 2rem;
    border: none;
    background: rgba(255, 255, 255, 0.85);
    color: var(--navy-ttl, #061D3F);
    font-size: 1rem;
    cursor: pointer;
    border-radius: 50%;
    z-index: 5;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  }
  #top .recent-history .pd-carousel-arrow svg,
  #detail .recent-history .pd-carousel-arrow svg,
  #result-list .recent-history .pd-carousel-arrow svg,
  #result-list .today-new-arrivals .pd-carousel-arrow svg,
  #detail .today-new-arrivals .pd-carousel-arrow svg {
    width: 1rem;
    height: 1rem;
  }
  #top .recent-history .pd-carousel-arrow:disabled,
  #detail .recent-history .pd-carousel-arrow:disabled,
  #result-list .recent-history .pd-carousel-arrow:disabled,
  #result-list .today-new-arrivals .pd-carousel-arrow:disabled,
  #detail .today-new-arrivals .pd-carousel-arrow:disabled {
    opacity: 0;
    cursor: default;
    pointer-events: none;
  }
  #top .recent-history .pd-carousel-prev,
  #detail .recent-history .pd-carousel-prev,
  #result-list .recent-history .pd-carousel-prev,
    #result-list .today-new-arrivals .pd-carousel-prev,
    #detail .today-new-arrivals .pd-carousel-prev {
      left: 0.5rem;
    }
    #top .recent-history .pd-carousel-next,
    #detail .recent-history .pd-carousel-next,
    #result-list .recent-history .pd-carousel-next,
    #result-list .today-new-arrivals .pd-carousel-next,
    #detail .today-new-arrivals .pd-carousel-next {
      right: 0.5rem;
    }

  @media screen and (max-width: 767px) {
    #top .area-link .area-link-prev-btn,
    #top .area-link .area-link-next-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 2rem;
      height: 2rem;
      border: none;
      background: rgba(255, 255, 255, 0.85);
      color: var(--navy-ttl, #061D3F);
      font-size: 1rem;
      cursor: pointer;
      border-radius: 50%;
      z-index: 5;
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    }
    #top .area-link .area-link-prev-btn {
      left: 0.5rem;
    }
    #top .area-link .area-link-next-btn {
      right: 0.5rem;
    }
    /* カード内の区説明テキスト（画像下〜ボタン上）は SP では非表示 */
    #top .area-link .wrap .container > p {
      display: none;
    }
  }

  /* 新着物件: 縦スクロール可能なグリッド（正方形カード・建物ごと）
     4列均等分割、スクロールバー分を考慮 */
  #top .new-property .np-grid {
    width: 100%;
    max-width: 960px;
    --gap: 5px;
    --card-size: calc((960px - var(--gap) * 3) / 4);
    max-height: calc(var(--card-size) * 3 + var(--gap) * 2);
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
  }
  #top .new-property .np-grid::-webkit-scrollbar {
    display: none;
  }
  #top .new-property .np-grid .new-property-grid {
    --gap: 5px;
    --cols: 4;
    container-type: inline-size;
    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    padding: 0;
  }
  #top .new-property .np-grid .np-building-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: calc((100cqi - var(--gap) * 3) / var(--cols));
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    background-color: #fff;
    position: relative;
  }
  /* バッジ：建物カード左上に密着、margin/padding強制0：公開日で色分け */
  #top .new-property .np-grid .np-building-card .corner-badge {
    position: absolute;
    top: -1px;
    left: -1px;
    width: auto;
    height: 2rem;
    min-width: 3.6rem;
    margin: 0 !important;
    padding: 0 !important;
    display: block;
    z-index: 4;
  }
  #top .new-property .np-grid .np-building-card .corner-badge text {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
  }
  #top .new-property .np-grid .np-building-card .corner-badge-d0 { color: #dc2626; }
  #top .new-property .np-grid .np-building-card .corner-badge-d1 { color: #ea580c; }
  #top .new-property .np-grid .np-building-card .corner-badge-d2,
  #top .new-property .np-grid .np-building-card .corner-badge-d3 { color: #ca8a04; }
  #top .new-property .np-grid .np-building-card .corner-badge-d4 { color: #16a34a; }
  #top .new-property .np-grid .np-building-card .corner-badge-d5 { color: #0ea5e9; }
  #top .new-property .np-grid .np-building-card .corner-badge-d6 { color: #2563eb; }
  #top .new-property .np-grid .np-building-card .corner-badge-d7 { color: #6b7280; }
  #top .new-property .np-grid .np-building-card .np-card-image {
    flex: 1 1 77%;
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  #top .new-property .np-grid .np-building-card .np-card-overlay {
    background-color: rgba(50, 50, 50, 0.8);
    color: #fff;
    padding: 0.25rem 0.5rem;
    font-size: 0.5625rem;
    line-height: 1.3;
    text-align: center;
  }
  #top .new-property .np-grid .np-building-card .np-card-location,
  #top .new-property .np-grid .np-building-card .np-card-built {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #top .new-property .np-grid .np-building-card .np-card-info {
    flex: 0 0 23%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.25rem 0.5rem;
    background: linear-gradient(to bottom, aliceblue, lightblue);
    color: var(--navy-ttl, #061D3F);
    font-size: 0.625rem;
    line-height: 1.2;
    text-align: center;
  }
  #top .new-property .np-grid .np-building-card .np-card-name {
    margin: 0;
    font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;
    font-weight: bold;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  #top .new-property .np-grid .np-building-card .np-card-divider {
    margin: 0.15rem 0;
    border: none;
    border-top: 1px solid var(--navy-ttl, #061D3F);
    opacity: 0.3;
    width: 100%;
  }
  #top .new-property .np-grid .np-building-card .np-card-detail {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  @media screen and (max-width: 767px) {
    #top .new-property .np-carousel {
      padding-left: 0;
      padding-right: 0;
      width: 100%;
    }
    #top .new-property .np-grid {
      --gap: 5px;
      display: block;
      max-height: none;
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      width: 100%;
      padding: 0;
      box-sizing: border-box;
    }
    #top .new-property .np-grid::-webkit-scrollbar {
      display: none;
    }
  #top .new-property .np-grid .new-property-grid {
      display: flex;
      flex-wrap: nowrap;
      gap: var(--gap);
      grid-template-columns: none;
      padding: 0;
      width: max-content;
      min-width: 100%;
    }
  #top .new-property .np-grid .np-building-card {
      flex: 0 0 calc((100vw - var(--gap)) / 2);
      min-width: calc((100vw - var(--gap)) / 2);
      height: calc((100vw - var(--gap)) / 2);
      scroll-snap-align: start;
    }
  }

  /* スマホ：新着物件のフィルターボタンを画面サイズに合わせて小さく */
  @media screen and (max-width: 767px) {
    #top .new-property .floor-wrap .floor-plan {
      gap: 0.25rem;
      padding: 0.35rem 0;
    }
    #top .new-property .floor-wrap .floor-plan .floor-btn {
      width: 2.8rem;
      padding: 0.15rem 0;
      font-size: 0.5625rem;
    }
    #top .new-property .floor-wrap .floor-plan .ward-filter-select {
      padding: 0.1rem 0.2rem;
      font-size: 0.5rem;
      max-width: 4.5rem;
    }
  }

  /* 新着物件「もっと見る」ボタン */
  .np-more-wrap {
    display: flex;
    justify-content: center;
    padding: 1rem 0 1.5rem;
  }
  .np-more-btn {
    display: inline-block;
    padding: 0.75rem 2rem;
    background-color: var(--navy-ttl, #061D3F);
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.875rem;
    transition: opacity 0.2s;
  }
  .np-more-btn:hover {
    opacity: 0.8;
  }

  /* 値下げ物件: タイル表示（グリッド） */
  #top .price-down {
    padding: 1rem 0;
  }
  #top .price-down .pd-grid {
    width: 100%;
    max-width: 960px;
    min-width: 0;
    box-sizing: border-box;
    --gap: 5px;
    /* 建物カード: 横幅はそのまま、高さだけ少し増やす（幅:高さ = 1 : この値） */
    --pd-price-down-card-h-ratio: 1.2;
    --card-size: calc((960px - var(--gap) * 3) / 4);
    max-height: calc(var(--card-size) * var(--pd-price-down-card-h-ratio) * 3 + var(--gap) * 2);
    overflow-x: hidden;
    overflow-y: auto;
  }
  #top .price-down .pd-grid .price-down-grid {
    --gap: 5px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--gap);
    padding: 0;
    min-width: 0;
  }
  #top .price-down .pd-grid .price-down-grid > * {
    aspect-ratio: 1 / var(--pd-price-down-card-h-ratio);
  }

  /* 最近見た物件: 4枚（スマホ2枚）のカルーセル表示 */
  #top .recent-history .pd-grid,
  #detail .recent-history .pd-grid,
  #result-list .recent-history .pd-grid,
  #result-list .today-new-arrivals .pd-grid,
  #detail .today-new-arrivals .pd-grid {
    width: 100%;
    max-width: 960px;
    min-width: 0;
    box-sizing: border-box;
    --gap: 5px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  #top .recent-history .pd-grid::-webkit-scrollbar,
  #detail .recent-history .pd-grid::-webkit-scrollbar,
  #result-list .recent-history .pd-grid::-webkit-scrollbar,
  #result-list .today-new-arrivals .pd-grid::-webkit-scrollbar,
  #detail .today-new-arrivals .pd-grid::-webkit-scrollbar {
    display: none;
  }
  #top .recent-history .pd-grid .price-down-grid,
  #detail .recent-history .pd-grid .price-down-grid,
  #result-list .recent-history .pd-grid .price-down-grid,
  #result-list .today-new-arrivals .pd-grid .price-down-grid,
  #detail .today-new-arrivals .pd-grid .price-down-grid {
    --gap: 5px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: var(--gap);
    padding: 0;
    min-width: 0;
  }
  #top .recent-history .pd-grid .price-down-grid > *,
  #detail .recent-history .pd-grid .price-down-grid > *,
  #result-list .recent-history .pd-grid .price-down-grid > *,
  #result-list .today-new-arrivals .pd-grid .price-down-grid > *,
  #detail .today-new-arrivals .pd-grid .price-down-grid > * {
    flex: 0 0 calc((100% - var(--gap) * 3) / 4);
    min-width: calc((100% - var(--gap) * 3) / 4);
    aspect-ratio: 1 / 1;
  }
  #top .price-down .pd-grid .pd-building-card,
  #top .recent-history .pd-grid .pd-building-card,
  #detail .recent-history .pd-grid .pd-building-card,
  #result-list .recent-history .pd-grid .pd-building-card,
  #result-list .today-new-arrivals .pd-grid .pd-building-card,
  #detail .today-new-arrivals .pd-grid .pd-building-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    height: 100%;
    text-decoration: none;
    overflow: hidden;
    background-color: #fff;
    position: relative;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-image,
  #top .recent-history .pd-grid .pd-building-card .pd-card-image,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-image,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-image,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-image,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-image {
    flex: 1 1 77%;
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-overlay,
  #top .recent-history .pd-grid .pd-building-card .pd-card-overlay,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-overlay,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-overlay,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-overlay,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-overlay {
    background-color: rgba(50, 50, 50, 0.8);
    color: #fff;
    padding: 0.25rem 0.5rem;
    font-size: 0.5625rem;
    line-height: 1.3;
    text-align: center;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-location,
  #top .price-down .pd-grid .pd-building-card .pd-card-rate,
  #top .recent-history .pd-grid .pd-building-card .pd-card-location,
  #top .recent-history .pd-grid .pd-building-card .pd-card-rate,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-location,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-rate,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-location,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-rate,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-location,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-rate,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-location,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-rate {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: inherit;
    font-size: inherit;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-info,
  #top .recent-history .pd-grid .pd-building-card .pd-card-info,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-info,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-info,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-info,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-info {
    flex: 0 0 23%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.25rem 0.5rem;
    background: linear-gradient(to bottom, aliceblue, lightblue);
    color: var(--navy-ttl, #061D3F);
    font-size: 0.625rem;
    line-height: 1.2;
    text-align: center;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-info {
    background: linear-gradient(to bottom, #fffde7, #fff9c4);
  }
  #detail .recent-history .pd-grid .pd-building-card .pd-card-info,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-info {
    background: linear-gradient(to bottom, #f3e5f5, #e1bee7);
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-name,
  #top .recent-history .pd-grid .pd-building-card .pd-card-name,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-name,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-name,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-name,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-name {
    margin: 0;
    font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;
    font-weight: bold;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-divider,
  #top .recent-history .pd-grid .pd-building-card .pd-card-divider,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-divider,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-divider,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-divider,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-divider {
    margin: 0.15rem 0;
    border: none;
    border-top: 1px solid var(--navy-ttl, #061D3F);
    opacity: 0.3;
    width: 100%;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-detail,
  #top .recent-history .pd-grid .pd-building-card .pd-card-detail,
  #detail .recent-history .pd-grid .pd-building-card .pd-card-detail,
  #result-list .recent-history .pd-grid .pd-building-card .pd-card-detail,
  #result-list .today-new-arrivals .pd-grid .pd-building-card .pd-card-detail,
  #detail .today-new-arrivals .pd-grid .pd-building-card .pd-card-detail {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  #top .price-down .pd-grid .pd-building-card .pd-card-detail-rent {
    margin-top: 0.15rem;
  }
  #top .price-down .pd-grid .pd-building-card .pd-old-rent {
    text-decoration: line-through;
    color: #999;
  }
  #top .price-down .pd-grid .pd-building-card .pd-new-rent {
    color: #e74c3c;
    font-weight: bold;
  }
  @media screen and (max-width: 767px) {
    #top .price-down .pd-grid {
      --card-size: calc((100vw - var(--gap)) / 2);
      max-height: calc(var(--card-size) * var(--pd-price-down-card-h-ratio) * 3 + var(--gap) * 2);
    }
    #top .price-down .pd-grid .price-down-grid {
      grid-template-columns: repeat(2, 1fr);
    }
    /* 最近見た物件: スマホは2枚表示 */
    #top .recent-history .pd-grid .price-down-grid > *,
    #detail .recent-history .pd-grid .price-down-grid > *,
    #result-list .recent-history .pd-grid .price-down-grid > *,
    #result-list .today-new-arrivals .pd-grid .price-down-grid > *,
    #detail .today-new-arrivals .pd-grid .price-down-grid > * {
      flex: 0 0 calc((100% - var(--gap)) / 2);
      min-width: calc((100% - var(--gap)) / 2);
    }
  }

  .inquiry-room-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .inquiry-room-checklist.inquiry-room-checklist--scroll {
    max-height: 11rem;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.25rem;
  }
  .inquiry-room-checklist li {
    margin: 0;
    padding: 0;
  }
  .inquiry-room-label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    cursor: pointer;
  }
  .inquiry-room-label input[type="checkbox"] {
    flex-shrink: 0;
  }
  .inquiry-room-label .room-main {
    font-weight: 600;
  }
  .inquiry-room-label .room-detail {
    color: var(--text-secondary, #666);
    font-size: 0.95em;
  }

/* お問い合わせ: バリデーション（Blade の text-red-600 はユーティリティ未定義のため赤字を明示） */
main#contact #inquiry-form p.text-red-600 {
  color: var(--text-red) !important;
  font-size: var(--font-ultra-small, 0.75rem);
  margin-top: 0.25rem;
  line-height: 1.4;
}

#contact .inquiry-building-preview {
  margin-bottom: 1rem;
  border-left: 1px solid var(--border-base);
  border-right: 1px solid var(--border-base);
  box-shadow: var(--shadow-reco-cell);
}

#contact .inquiry-building-preview > h3 {
  width: 100%;
  margin: 0;
  background: linear-gradient(to right, var(--dark-blue) 50%, rgba(10, 33, 61, 0.75));
  border-top: 2px solid var(--decorative-base);
  border-bottom: 2px solid var(--decorative-base);
  box-shadow: var(--shadow-result-list-top);
}

#contact .inquiry-building-preview > h3 .building-header-name {
  color: var(--property-name);
}

#contact .inquiry-building-preview .property-area {
  display: flex;
  gap: 1rem;
  border-bottom: 1px solid var(--border-base);
}

#contact .inquiry-building-preview .property-area .property-img-area {
  width: 7rem;
  height: 7rem;
  flex-shrink: 0;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}

#contact .inquiry-building-preview .property-area .inner {
  display: block;
  width: calc(100% - 8rem);
  padding: 0.25rem 1rem 0.25rem 0;
}

#contact .inquiry-building-preview .property-area .inner > p {
  margin: 0 0 0.35rem;
}

#contact .inquiry-building-preview .property-area .inner > p:last-child {
  margin-bottom: 0;
}

#contact .property-wrapper-sell .property-area .inner {
  display: block;
  width: calc(100% - 8rem);
  padding: 0.25rem 1rem 0.25rem 0;
}

#contact .property-wrapper-sell .property-area .inner > p {
  margin: 0 0 0.35rem;
}

#contact .property-wrapper-sell .property-area .inner > p:last-child {
  margin-bottom: 0;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info {
  display: grid;
  grid-template-columns: auto auto auto;
  justify-content: start;
  column-gap: 0;
  row-gap: 0.2rem;
  align-items: center;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info .initial-fees-area {
  grid-column: 1 / -1;
  margin: 0.25rem 0;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info .room-floor-plan,
#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info .room-area,
#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info .room-num {
  display: inline-flex;
  align-items: center;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info .room-area::before,
#contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only .terms-property-info .room-num::before {
  content: " | ";
  white-space: pre;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-plan,
#contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-area,
#contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-floor {
  display: inline;
  white-space: nowrap;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-plan {
  display: inline-block;
  margin-top: 0.35rem;
}

#contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-area::before,
#contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-floor::before {
  content: " | ";
}

@media screen and (max-width: 767px) {
  #contact .property-area,
  #contact .property-area .carousel,
  #contact .property-area .carousel .carousel-viewport,
  #contact .property-area .carousel .carousel-viewport .carousel-track,
  #contact .property-area .carousel .carousel-viewport .carousel-track > .carousel-item,
  #contact .property-area .carousel .carousel-viewport .carousel-track > .carousel-item > .property-wrapper-sell,
  #contact .property-wrapper-sell,
  #contact .property-wrapper-sell .property-area,
  #contact .property-wrapper-sell .property-area .inner,
  #contact .property-wrapper-sell .result-list-sell,
  #contact .property-wrapper-sell .result-list-sell .main-area,
  #contact .property-wrapper-sell .result-list-sell .main-area > a.terms-link,
  #contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only,
  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area,
  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel,
  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport,
  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-track {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  #contact .property-area .carousel .carousel-viewport {
    overflow: hidden;
  }

  #contact .property-area .carousel .carousel-viewport .carousel-track > .carousel-item {
    min-width: 100%;
    flex: 0 0 100%;
  }

  #contact .inquiry-building-preview .property-area {
    display: block;
  }

  #contact .inquiry-building-preview .property-area .property-img-area {
    width: 100%;
    height: auto;
    min-height: 12rem;
    aspect-ratio: 4 / 3;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  #contact .inquiry-building-preview .property-area .inner {
    width: 100%;
    padding: 0.75rem 0.75rem 1rem;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 1rem;
    padding-left: 1rem;
    padding-right: 0.25rem;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area > a.terms-link {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area .terms.pc-only {
    display: none;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only {
    display: block;
    width: 100%;
    min-width: 0;
    line-height: 1.5;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area .img-block {
    flex-shrink: 0;
    margin-right: 0;
    align-self: flex-start;
  }

  #contact .property-wrapper-sell .property-area .inner {
    display: block;
    width: calc(100% - 8rem);
    padding: 0.25rem 1rem 0.25rem 0;
  }

  #contact .property-wrapper-sell .property-area .inner > p {
    margin: 0 0 0.35rem;
  }

  #contact .property-wrapper-sell .property-area .inner > p:last-child {
    margin-bottom: 0;
  }

  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport {
    overflow-x: auto;
    overflow-y: hidden;
  }

  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-track .carousel-item,
  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .carousel-floor-plan {
    flex: 0 0 5rem;
    width: 5rem;
    height: 5rem;
    min-width: 5rem;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area {
    position: static;
    flex-shrink: 0;
    margin-left: auto;
    width: 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    align-self: flex-start;
    padding-bottom: 0;
    padding-right: 0;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .terms-rent {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.25rem;
    margin-bottom: 0.3rem;
  }

  #contact .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .initial-fees-area {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
  }
}

  [id^="result-building-"] {
    scroll-margin-top: 5rem;
  }

  /* 口コミ・コメントのフォントサイズを小さく */
  .review-item-contents,
  .review-content {
    font-size: 0.7rem;
  }
  .review-item-title {
    font-size: 0.75rem;
  }
  .review-item-name,
  .review-author {
    font-size: 0.65rem;
  }
  /* 口コミ・コメントのSVGアイコンを75%に */
  .review-icon-svg {
    transform: scale(0.6);
    transform-origin: center;
  }
  /* 口コミ・コメント：各カード内はアイコン＋本文を横並び、アイコン列だけ縦積み */
  section.review-box .container .llist-inner .review-item-row,
  section.staff-message-box .container .llist-inner .review-item-row,
  section.comment-box .container .llist-inner .review-item-row {
    display: flex;
    align-items: center;
  }
  section.review-box .container .llist-inner .review-icon-block,
  section.staff-message-box .container .llist-inner .review-icon-block,
  section.comment-box .container .llist-inner .review-icon-block {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  /* 複数件は縦に並べる（.container に flex 指定がある場合の既定 row を打ち消す） */
  section.review-box > .container,
  section.comment-box > .container,
  section.staff-message-box > .container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  section.review-box svg.review-icon-svg,
  section.staff-message-box svg.review-icon-svg,
  section.comment-box svg {
    vertical-align: middle;
  }

  /* こだわり条件カルーセル（上書き用） */
  .feature-carousel-viewport {
    container-type: inline-size;
    container-name: feature-viewport;
  }
  .feature-carousel-track .feature-card {
    --card-size: calc((100cqw - 15px) / 4);
    width: var(--card-size);
    height: var(--card-size);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    background-color: #fff;
    position: relative;
  }
  .feature-carousel-track .feature-card .feature-card-image {
    flex: 1 1 77%;
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  .feature-carousel-track .feature-card .feature-card-overlay {
    background-color: rgba(50, 50, 50, 0.8);
    color: #fff;
    padding: 0.25rem 0.5rem;
    font-size: 0.5625rem;
    line-height: 1.3;
    text-align: center;
  }
  .feature-carousel-track .feature-card .feature-card-overlay p {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .feature-carousel-track .feature-card .feature-card-info {
    flex: 0 0 23%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.25rem 0.5rem;
    background: linear-gradient(to bottom, aliceblue, lightblue);
    color: var(--navy-ttl, #061D3F);
    font-size: 0.625rem;
    line-height: 1.2;
    text-align: center;
  }
  .feature-carousel-track .feature-card .feature-card-name {
    margin: 0;
    font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;
    font-weight: bold;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .feature-carousel-track .feature-card .feature-card-divider {
    margin: 0.15rem 0;
    border: none;
    border-top: 1px solid var(--navy-ttl, #061D3F);
    opacity: 0.3;
    width: 100%;
  }
  .feature-carousel-track .feature-card .feature-card-detail {
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .feature-more-wrap {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
  }
  .feature-more-btn {
    display: inline-block;
    padding: 0.5rem 1.5rem;
    background-color: var(--navy-ttl, #061D3F);
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.875rem;
    transition: opacity 0.2s;
  }
  .feature-more-btn:hover {
    opacity: 0.8;
  }
  @media screen and (max-width: 767px) {
    .feature-carousel-track .feature-card {
      --card-size: calc((100cqw - 5px) / 2);
    }
  }
  @container feature-viewport (max-width: 767px) {
    .feature-carousel-track .feature-card {
      --card-size: calc((100cqw - 5px) / 2);
    }
  }

  /*
   * 保存した条件ドロワー
   * - z-index は触らない
   * - top / max-height は --fixed-header-height（.header 実測）に合わせる
   */
  #saved-conditions-drawer.saved-conditions-drawer {
    top: var(--fixed-header-height, 5.5rem);
    max-height: calc(100dvh - var(--fixed-header-height, 5.5rem));
  }
  .drawer-overlay.is-open {
    inset: auto;
    top: var(--fixed-header-height, 5.5rem);
    left: 0;
    right: 0;
    bottom: 0;
  }
  #saved-conditions-drawer h1,
  #saved-conditions-drawer h1 span {
    font-family: var(--font-serif);
  }

}

/* 採用ページ CTA: 白背景・紺文字（#0A213D）・ゴールド枠（#BC9D12） */
#recruit-page .cta-box .cta-btn {
  display: inline-block;
  background: #fff;
  color: #0a213d;
  border: 1px solid #bc9d12;
  padding: 0.75rem 2.5rem;
  border-radius: 4px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}
#recruit-page .cta-box .cta-btn:hover {
  background: #faf8f3;
  border-color: #a68b0f;
  color: #0a213d;
}

/* 物件一覧・建物詳細: 間取図ホバー/クリック拡大
   拡大のヒット領域は .img-block-zoom-hit（もっと見る帯より上）のみ */
#results .result-list-sell .img-block,
#building-detail .result-list-sell .img-block {
  overflow: visible;
  transition: transform 0.3s ease;
}
/* サブ画像あり: 縦フレックスで間取り（flex:1）の直下にボタンだけの高さ（帯の余白なし） */
.result-list-sell .img-block.has-sub-carousel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.result-list-sell .img-block-zoom-hit {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  transform-origin: right bottom;
  transition: transform 0.3s ease;
}
.result-list-sell .img-block.has-sub-carousel .img-block-zoom-hit {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  inset: auto;
}
/* 拡大ヒット内の虫眼鏡（左下・30%透過・クリックは背面の img-block-zoom-hit へ）
   ※ .property-img-area は .result-list-sell 外のため、セレクタを img-block-zoom-hit 基準に統一 */
.img-block-zoom-hit .img-block-floor-zoom-icon {
  position: absolute;
  left: 0.35rem;
  bottom: 0.35rem;
  right: auto;
  top: auto;
  z-index: 2;
  pointer-events: none;
  opacity: 0.3;
  width: 1.25rem;
  height: 1.25rem;
  display: block;
  color: #4b4b4b;
}
.img-block-zoom-hit .img-block-floor-zoom-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
/* 一覧カード上部の建物外観（property-img-area） */
.property-wrapper-sell .property-img-area {
  position: relative;
}
.property-wrapper-sell .property-img-area > .img-block-zoom-hit {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}
/* サブカルーセル外観：ヒット領域＝子の img-block-zoom-hit（間取りと同じ拡大・左下アイコン） */
.result-list-sell .sub-img-view-area .carousel-item {
  position: relative;
}
.result-list-sell .sub-img-view-area .carousel-item .img-block-zoom-hit {
  z-index: 1;
  pointer-events: auto;
}
.result-list-sell .img-block-toggle-strip {
  position: relative;
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  padding: 0;
  margin: 0;
  gap: 0;
  z-index: 1002;
  pointer-events: auto;
}
.result-list-sell .img-block-toggle-strip .toggle-btn {
  pointer-events: auto;
  position: relative;
  z-index: 1003;
  touch-action: manipulation;
  bottom: auto;
  left: auto;
  transform: none;
  margin: 0;
  line-height: 1.2;
}
/* PC: ホバーで間取図3倍拡大 */
@media screen and (min-width: 768px) {
  #results .result-list-sell .corner-badge {
    z-index: 500;
  }
  #results .result-list-sell .img-block .toggle-btn,
  #building-detail .result-list-sell .img-block .toggle-btn {
    z-index: 1;
  }
  #results .result-list-sell .img-block:has(.toggle-btn:hover) .img-block-zoom-hit,
  #building-detail .result-list-sell .img-block:has(.toggle-btn:hover) .img-block-zoom-hit {
    transform: none;
  }
  /* 右下固定・左上へ拡大（#building-detail のみ。検索結果はJS fixedオーバーレイ）。メイン間取りのみ（サブカル外観は別要素） */
  #building-detail .result-list-sell:has(.img-block-zoom-hit:hover) {
    position: relative;
    z-index: 9999;
    transform: translateZ(0);
  }
  #building-detail .result-list-sell:has(.img-block-zoom-hit:hover):not(:has(.toggle-btn:hover)) .img-block > .img-block-zoom-hit {
    transform: scale(3);
    z-index: 1000;
    background-color: #fff;
  }
}


/* トップページ：当社からのお知らせのブロックを中央寄せ、左右paddingゼロ */
#top > section.company-notice.content-container {
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}
@media screen and (max-width: 767px) {
  #top > section.company-notice.content-container {
    padding-left: 3px;
    padding-right: 3px;
  }
}

/* 背景色をfloralwhiteからグレーに統一（PC・スマホ共通） */
body {
  background-color: #F9F9F9;
}
.page-container {
  background-color: #F9F9F9;
}

/* スマホ：横はみ出し防止でヘッダー＋コンテンツを画面幅に収める */
@media screen and (max-width: 767px) {
  html, body {
    overflow-x: hidden;
    width: 100%;
  }
}

/* 最近見た物件：レイヤー外で最優先（他CSSで隠されないように） */
#top .recent-history.rh-empty,
#result-list .recent-history.rh-empty { display: none !important; }
#top .recent-history:not(.rh-empty),
#result-list .recent-history:not(.rh-empty) { display: block !important; visibility: visible !important; opacity: 1 !important; }

/* サイドバー建物カードのバッジ色 */
.sidebar-badge.badge-shinchiku {
  background: linear-gradient(to right, #1F2A44 0%, #3A4A6A 100%);
  color: #E0D090;
}
.sidebar-badge.badge-net {
  background: linear-gradient(to right, #4A637D 0%, #7A93AD 100%);
  color: #FFFFFF;
}
.sidebar-badge.badge-freerent {
  background: linear-gradient(to right, #2F4F4F 0%, #5F7F7F 100%);
  color: #FFFFFF;
}
.sidebar-badge.badge-chukai {
  background: linear-gradient(to right, #7A1F2B 0%, #AA4F5B 100%);
  color: #FFFFFF;
}
.sidebar-badge.badge-reikin {
  background: linear-gradient(to right, #1E3D34 0%, #4E6D64 100%);
  color: #FFFFFF;
}
.sidebar-badge.badge-pet {
  background: linear-gradient(to right, #4B3F36 0%, #7B6F66 100%);
  color: #FFFFFF;
}
.sidebar-badge.badge-walk5 {
  background: linear-gradient(to right, #1B3556 0%, #4B6586 100%);
  color: #FFFFFF;
}
.sidebar-badge.badge-corner {
  background: linear-gradient(to right, #423A58 0%, #726A88 100%);
  color: #FFFFFF;
}
.sidebar-badge-row .sidebar-badge {
  font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "MS PMincho", "MS Mincho", "Noto Serif JP", serif !important;
  border-radius: var(--radius-xsmall) !important;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  margin-bottom: 0.2rem;
}
@media (max-width: 767px) {
  .sidebar-badge-row {
    gap: 0.25rem;
  }
  .sidebar-badge-row .sidebar-badge {
    font-size: 0.5625rem;
    line-height: 1.25;
    padding: 0.18rem 0.42rem;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
}

/* 物件詳細: 2カラム（左メイン + 右サイドバー追従）、最近見た物件の上まで追従 */
@media screen and (min-width: 768px) {
  #detail .detail-two-column {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
  }
  #detail .detail-two-column .detail-main-flow {
    flex: 0 0 calc(72% - 0.6rem);
    min-width: 0;
  }
  #detail .detail-two-column .detail-main-flow .detail-main-column {
    width: 100%;
  }
  #detail .detail-main-flow .detail-main-width-wrap,
  #room-detail .detail-main-flow .detail-main-width-wrap {
    display: block;
    gap: 0;
  }
  #detail .detail-main-flow .detail-main-width-inner,
  #room-detail .detail-main-flow .detail-main-width-inner {
    flex: unset;
    width: 100%;
    max-width: 100%;
  }
  #detail .detail-main-flow .detail-main-width-wrap::after,
  #room-detail .detail-main-flow .detail-main-width-wrap::after {
    display: none;
    content: none;
  }
  #room-detail .page-container > .breadcrumbs.bottom-bc.breadcrumbs-above-footer {
    padding-left: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* 物件詳細: page-container の影を main の下端に付ける（リンク集の上） */
@media screen and (min-width: 768px) {
  #room-detail .page-container {
    box-shadow: none;
  }
  #room-detail .page-container > main {
    box-shadow: 0 4px 12px rgba(26, 26, 26, 0.2);
  }
  #detail .detail-two-column .detail-sidebar {
    flex: 0 0 calc(28% - 0.6rem);
    position: sticky;
    top: calc(3.5rem + 3rem);
    max-height: calc(100vh - 6.5rem);
    overflow-y: auto;
  }
}

/* 物件詳細 features-wrap: 建物カードと同じバッジ表示 */
#detail .features-wrap .sidebar-badge-row {
  justify-content: center;
  margin: 0 auto 0.5rem;
}
/* 建物詳細: カード内バッジ（.property-wrapper-sell 外のヘッダー行は別定義） */
#building-detail .property-wrapper-sell .sidebar-badge-row,
#building-detail .property-wrapper-sell .inner .sidebar-badge-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}

/* サイドバー建物カードの背景色 */
.sidebar-building-card {
  background: #dcdcdc;
  border-radius: var(--radius-xxsmall);
}

/* サイドバー建物カードの建物種別・建物名を明朝体に、種別バッジ背景は白 */
  .sidebar-building-card .sidebar-building-label,
  .sidebar-building-card .building-type-prefix,
  .sidebar-building-card .sidebar-building-name {
    font-family: var(--font-serif);
}
.sidebar-building-card .building-type-prefix {
  background-color: #fff;
}

/* 建物名・種別バッジを明朝体に（検索結果・閲覧履歴・お気に入り・建物詳細の部屋一覧など #result-list 外も含む） */
.property-wrapper-sell > h3 .building-type-icon,
.property-wrapper-sell > h3 > .building-header-name,
.property-wrapper-sell > h3 .building-name-link,
.property-wrapper-sell > .building-header-link h3 .building-type-icon,
.property-wrapper-sell > .building-header-link h3 > .building-header-name {
  font-family: var(--font-serif);
}
.building-header-link {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.building-header-link:link,
.building-header-link:visited,
.building-header-link:active {
  text-decoration: none;
  color: inherit;
}
.building-header-link:hover h3 > .building-header-name {
  text-decoration: underline;
}
.property-wrapper-sell h3 > .building-header-name {
  font-size: 20px;
  padding: 5px;
}

/* 一覧まわりの物件名（建物見出し）を左寄せ（components の center を上書き）。建物詳細ブロック内は下記 #building-detail で中央のまま */
#result-list .property-wrapper-sell > h3 > .building-header-name,
#result-list .property-wrapper-sell > .building-header-link > h3 > .building-header-name,
#history .property-wrapper-sell > h3 > .building-header-name,
#history .property-wrapper-sell > .building-header-link > h3 > .building-header-name,
#favorites .property-wrapper-sell > h3 > .building-header-name,
#favorites .property-wrapper-sell > .building-header-link > h3 > .building-header-name,
#detail .other-property .property-wrapper-sell > h3 > .building-header-name,
#detail .other-property .property-wrapper-sell > .building-header-link > h3 > .building-header-name {
  text-align: left;
}

/* 建物詳細・部屋一覧ブロック内の建物見出し（#result-list 外でも種別＋建物名を1行に） */
#building-detail .property-wrapper-sell > h3 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
#building-detail .property-wrapper-sell > h3 .building-type-icon {
  position: absolute;
  left: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
}
#building-detail .property-wrapper-sell > h3 > .building-header-name {
  text-align: center;
  display: block;
  width: 100%;
  padding-left: 4.5rem;
  padding-right: 4.5rem;
  min-width: 0;
}

/* 建物詳細ページのタイトル（種別バッジ・建物名）を明朝体に */
h2.content-ttl .building-type-prefix,
h2.content-ttl .building-name-center {
  font-family: var(--font-serif);
}

/* カード・ランキング等の建物名（トークンと同じ明朝スタック） */
.pd-building-card .pd-card-name,
.np-building-card .np-card-name,
#top .ranking .ranking-card-name,
.feature-card .feature-card-name,
.feature-carousel-track .feature-card .feature-card-name {
  font-family: var(--font-serif);
}

/* 物件詳細ページ：画像領域の下に間取図を常に表示（建物詳細用） */
#building-detail .detail-floor-plan-below {
  width: 100%;
  height: 12rem;
  margin-top: 1rem;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #fff;
  border: 1px solid var(--border-base);
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  #building-detail .detail-floor-plan-below {
    height: 16rem;
    max-width: 24rem;
  }
}

/* メイン画像カルーセルの背景グレーを矢印部分まで拡張 */
#detail .main-carousel,
#building-detail .main-carousel {
  background-color: var(--surface-light-2);
}
/* components.css の 0.78s より詳細度で上書き（JS の MAIN_CAROUSEL_SLIDE_TRANSITION と一致） */
#detail .main-carousel .carousel-viewport .carousel-track {
  transition: transform 0.42s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
#detail .main-carousel .carousel-track {
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  #detail .main-carousel .carousel-viewport .carousel-track {
    transition-duration: 0.01ms;
  }
}
@media screen and (max-width: 767px) {
  /* カルーセル操作中に背面へ縦スクロールが伝播しないよう抑止 */
  #detail .main-carousel .carousel-viewport {
    touch-action: none;
    overscroll-behavior: contain;
  }
  .common-images-modal-main .carousel-viewport {
    touch-action: none;
    overscroll-behavior: contain;
  }
  #building-detail .building-page-main-img-viewport {
    touch-action: none;
    overscroll-behavior: contain;
  }
  #detail .sub-img-view-area .sub-carousel .carousel-viewport,
  #detail .sub-and-floor-plan-row .sub-carousel .carousel-viewport,
  #detail .other-property .sub-img-view-area .sub-carousel .carousel-viewport {
    touch-action: pan-x;
    overscroll-behavior: contain;
  }
  .image-lightbox .lightbox-media-viewport {
    touch-action: none;
    overscroll-behavior: contain;
  }
  .np-carousel__viewport {
    touch-action: none;
    overscroll-behavior: contain;
  }
  .carousel:not(.sub-carousel):not(.common-images-carousel) .carousel-viewport {
    touch-action: none;
    overscroll-behavior: contain;
  }
  .pd-carousel [data-recent-history-track],
  .recommended-history .np-grid,
  .new-property .np-grid {
    touch-action: pan-x;
    overscroll-behavior: contain;
  }
}

/* 部屋詳細：サムネイルカルーセル＋賃料管理費｜間取図を横並び（左が2段） */
#detail .sub-and-floor-plan-row {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
#detail .sub-and-floor-plan-row .sub-and-rent-left {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
#detail .sub-and-floor-plan-row .sub-img-view-area {
  flex: 0 0 auto;
  min-width: 0;
}
#detail .sub-and-floor-plan-row .detail-rent-info-wrap {
  flex: 0 0 auto;
}
#detail .sub-and-floor-plan-row .detail-floor-plan-beside {
  flex: 0 0 50%;
  width: 50%;
  min-width: 50%;
  height: auto;
  min-height: 11rem;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #fff;
  border: 1px solid var(--border-base);
  border-radius: 4px;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  #detail .sub-and-floor-plan-row .detail-floor-plan-beside {
    flex: 0 0 15rem;
    width: auto;
    min-width: 0;
    min-height: 11rem;
  }
}
/* サムネイルカルーセル：6枚以上でスクロール可能に */
#detail .sub-and-floor-plan-row .sub-carousel .carousel-viewport {
  overflow-x: auto;
  overflow-y: hidden;
}
/* サムネイルカルーセル：PCは6枚、スマホは2枚表示 */
#detail .sub-and-floor-plan-row .sub-carousel .carousel-item,
#detail .sub-img-view-area .sub-carousel .carousel-item {
  flex: 0 0 calc(100% / 2);
  border: 1px solid transparent;
  transition: border-color 0.2s, box-shadow 0.2s;
}
#detail .sub-and-floor-plan-row .sub-carousel .carousel-item.is-active,
#detail .sub-img-view-area .sub-carousel .carousel-item.is-active {
  border-color: var(--decorative-base, #BC9D12) !important;
  box-shadow: inset 0 0 0 1px var(--decorative-base, #BC9D12);
}
@media screen and (min-width: 768px) {
  #detail .sub-and-floor-plan-row .sub-carousel .carousel-item,
  #detail .sub-img-view-area .sub-carousel .carousel-item {
    flex: 0 0 calc(100% / 6);
  }
  #detail .other-property .sub-img-view-area .sub-carousel .carousel-item {
    height: 8rem;
    flex: 0 0 16%;
    border-right: 4px solid var(--neutral-white);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
}


/* サイドバー建物カードの空室状況問い合わせボタン：白地・紺文字・ゴールド枠、ホバーは薄い紺系ハイライト */
.sidebar-cta-btn.primary {
  background: #fff;
  color: var(--dark-blue);
  border: 2px solid var(--decorative-base);
}
.sidebar-cta-btn.primary:hover {
  background: var(--primary-light-1);
  color: var(--dark-blue);
  border-color: var(--decorative-base);
}

/* メイン画像の右下に拡大アイコン */
.main-img-zoom-icon {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  z-index: 50;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  pointer-events: auto;
}
.main-img-zoom-icon svg {
  width: 20px;
  height: 20px;
}
#detail .main-img-zoom-icon {
  width: 48px;
  height: 48px;
}
#building-detail .main-img-zoom-icon {
  width: 48px;
  height: 48px;
}
#detail .main-img-zoom-icon svg {
  width: 32px;
  height: 32px;
}
#building-detail .main-img-zoom-icon svg {
  width: 32px;
  height: 32px;
}
#detail .main-carousel .carousel-viewport {
  position: relative;
}
#building-detail .building-page-main-img-wrap {
  position: relative;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* 物件詳細メイン／サムネ：透かしを画像レイヤーと同じボックス内に置き、カルーセル移動・背景位置変更と同期 */
#detail .main-carousel .carousel-item,
#detail .sub-img-view-area .carousel-item {
  position: relative;
  overflow: hidden;
}
#detail .main-carousel .carousel-item::after,
#detail .sub-img-view-area .carousel-item::after {
  content: none !important;
  display: none !important;
}
#detail .main-carousel .carousel-item .detail-carousel-photo,
#detail .sub-img-view-area .carousel-item .detail-carousel-photo,
#building-detail .building-page-main-img-pane .detail-carousel-photo {
  position: absolute;
  inset: 0;
  background-color: var(--surface-light-2);
  background-image: var(--detail-carousel-bg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
}
#detail .main-carousel .carousel-item .detail-carousel-wm,
#detail .sub-img-view-area .carousel-item .detail-carousel-wm,
#building-detail .building-page-main-img-pane .detail-carousel-wm {
  position: absolute;
  inset: 0;
  background-image: url('/assets/images/common/firstrent-logo-serif-white.png');
  background-size: 15%;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
  z-index: 10;
  opacity: 0.18;
}
#detail .sub-img-view-area .carousel-item .detail-carousel-wm {
  opacity: 0.15;
}
/* 物件詳細・外観/共用モーダル メインカルーセルと同じロゴ透かし */
.common-images-modal-main .carousel-item .detail-carousel-wm {
  position: absolute;
  inset: 0;
  background-image: url('/assets/images/common/firstrent-logo-serif-white.png');
  background-size: 15%;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
  z-index: 10;
  opacity: 0.18;
}
@media screen and (max-width: 767px) {
  .common-images-modal-main .carousel-item .detail-carousel-wm {
    background-size: min(32vw, 150px);
  }
}
#top .new-property .reco-property-cell .cell-inner .clickable-area .reco-img::after,
.page-container > .recent-history .reco-property-cell .cell-inner .clickable-area .reco-img::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-image: url('/assets/images/common/firstrent-logo-serif-white.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  /* 画像サイズに合わせて15%（config watermark_ratio 相当） */
  width: 15%;
  height: 15%;
  max-width: 100%;
  max-height: 100%;
  box-sizing: border-box;
  opacity: 0.18;
  font-size: 0;
  color: transparent;
  text-shadow: none;
  pointer-events: none;
  z-index: 10;
}

/* 建物詳細ページ用スタイル */
@media (max-width: 767px) {
  #building-detail .breadcrumbs.content-container,
  #detail .breadcrumbs.content-container:not(.bottom-bc) {
    margin-top: 1.25rem;
  }
}
/* 建物詳細：パンくずを building-page-header と左端揃え */
#building-detail .breadcrumbs.content-container {
  padding-left: 1rem;
  padding-right: 1rem;
}
@media screen and (min-width: 768px) {
  #building-detail .breadcrumbs.content-container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

#room-detail > div.page-container > div.breadcrumbs.content-container.breadcrumbs-below-header {
  padding-left: 0.5rem;
}

#results #result-list > h1 {
  font-family: var(--font-serif);
}
@media screen and (max-width: 767px) {
  #results #result-list > h1 {
    font-size: 1.125rem;
  }
  .property-wrapper-sell h3 > .building-header-name {
    font-size: 1rem;
  }
}
/* 建物詳細ヘッダー内バッジ: components の .property-wrapper-sell .sidebar-badge-row が当たらないため display:flex を明示 */
#building-detail .building-page-header {
  margin-bottom: 0.75rem;
  text-align: center;
}
#building-detail .building-page-header .detail-title-wrap {
  position: relative;
}
#building-detail .building-page-header h2.content-ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 0.5rem 1rem;
  white-space: normal;
  overflow: visible;
  background-color: var(--dark-blue);
  border-top: 2px solid var(--decorative-base);
  border-bottom: 2px solid var(--decorative-base);
  box-shadow: var(--shadow-result-list-top);
}
#building-detail .building-page-header h2.content-ttl .content-ttl-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}
#building-detail .building-page-header .building-type-prefix {
  flex-shrink: 0;
  display: inline-block;
  font-size: 0.58em;
  color: #0A213D;
  background-color: var(--neutral-white, #fff);
  font-weight: 500;
  padding: 0.15em 0.4em 0.15em 0.2em;
  border: 1px solid #0A213D;
  border-radius: 3px;
}
#building-detail .building-page-header .building-name-center {
  min-width: 0;
  color: var(--property-name);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: var(--font-serif);
}
#building-detail .building-page-header .sidebar-badge-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0.3rem auto 0;
}
#building-detail .reco-ttl.accent-line { padding-top: 0; padding-bottom: 0; margin-top: 0; margin-bottom: 0; }
#building-detail .building-page-map { margin-top: -1rem; }
#building-detail .bottom-modal {
  width: 100%;
  z-index: 9999;
}
#building-detail .building-page-header .building-page-header-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
  padding-bottom: 0;
  text-align: center;
  color: var(--text-main, #333);
  font-size: 0.95rem;
}
#building-detail .building-page-header .detail-ttl-info-text {
  display: inline-block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 959px) {
  #building-detail .building-page-header .building-page-header-meta { font-size: 0.8rem; }
}
@media screen and (max-width: 767px) {
  #building-detail .building-page-main-wrap > .reco-ttl.accent-line,
  #building-detail .nearby-facilities-area > .reco-ttl.accent-line { margin-left: 0.5rem; }
  #building-detail .review-box,
  #building-detail .comment-box { padding-left: 3px; padding-right: 3px; }
  #building-detail .review-box > .container,
  #building-detail .comment-box > .container { padding-left: 3px; padding-right: 3px; }
}
/* 建物詳細: お気に入りモーダル */
#building-detail .favorite-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
#building-detail .favorite-modal-content {
  background: #fff;
  border-radius: 12px;
  text-align: center;
  max-width: 320px;
  width: 90%;
  position: relative;
  overflow: hidden;
}
#building-detail .favorite-modal-content h3 {
  margin: 0;
  padding: 16px 24px;
  font-size: 18px;
  color: #fff;
  background: #3a4a5c;
}
#building-detail .favorite-modal-body {
  padding: 24px;
}
#building-detail .favorite-modal-content p {
  margin: 0 0 20px;
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 4px;
}
#building-detail .favorite-modal-content p .inline-icon {
  width: 20px;
  height: 20px;
  fill: #e74c3c;
}
#building-detail .favorite-modal-ok {
  background: #fff;
  color: var(--primary-base, #061D3F);
  border: 2px solid var(--decorative-base, #BC9D12);
  border-radius: 8px;
  padding: 12px 48px;
  font-size: 16px;
  cursor: pointer;
}
#building-detail .favorite-tooltip {
  position: fixed;
  top: 80px;
  left: 50%;
  transform: translateX(-50%);
  background: #333;
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  z-index: 9998;
  opacity: 0;
}
@keyframes fadeInOut {
  0% { opacity: 0; transform: translateX(-50%) translateY(-10px); }
  20% { opacity: 1; transform: translateX(-50%) translateY(0); }
  80% { opacity: 1; transform: translateX(-50%) translateY(0); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-10px); }
}
@media (min-width: 960px) {
  #building-detail .building-page-two-col { display: flex; flex-wrap: nowrap; gap: 1.2rem; align-items: flex-start; }
  #building-detail .building-page-two-col .detail-main-column { flex: 0 0 calc(72% - 0.6rem); min-width: 0; max-width: calc(72% - 0.6rem); overflow: hidden; }
  #building-detail .building-page-two-col .detail-sidebar { flex: 0 0 calc(28% - 0.6rem); min-width: 0; flex-shrink: 0; position: sticky; top: calc(3.5rem + 3rem); max-height: calc(100vh - 6.5rem); overflow-y: auto; }
}
@media (max-width: 959px) {
  #building-detail .building-page-two-col .detail-sidebar { display: none; }
  #building-detail .building-page-two-col .building-page-gallery-wrap { width: 100%; }
}
#building-detail .building-page-main-wrap { display: flex; flex-direction: column; gap: 1rem; min-width: 0; overflow: hidden; }
#building-detail .building-page-gallery { background: transparent; border-radius: 8px; max-width: 100%; overflow: hidden; }
#building-detail .building-page-main-img-area { width: 100%; }
#building-detail .main-carousel { position: relative; }
#building-detail .main-carousel > .arrow,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s, opacity 0.2s;
}
#building-detail .main-carousel > .arrow:hover:not(:disabled),
#building-detail .main-carousel > .arrow.is-hover,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow:hover:not(:disabled),
#building-detail .main-carousel > .building-page-carousel-arrow.arrow.is-hover { background: rgba(0, 0, 0, 0.65); }
#building-detail .main-carousel > .arrow:disabled,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow:disabled { opacity: 0.3; cursor: default; }
#building-detail .main-carousel > .arrow > svg,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow > svg { width: 14px; height: 14px; fill: #fff; }
#building-detail .main-carousel > .arrow:disabled > svg,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow:disabled > svg { fill: #fff; }
#building-detail .main-carousel > .arrow.prev,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow.prev { left: 0.5rem; }
#building-detail .main-carousel > .arrow.next,
#building-detail .main-carousel > .building-page-carousel-arrow.arrow.next { right: 0.5rem; }
#building-detail .building-page-main-img-wrap { width: 100%; max-width: 100%; position: relative; }
#building-detail .building-page-main-counter {
  position: absolute;
  top: 0.5rem;
  left: -0.2rem;
  z-index: 10;
  padding: 0 0.5rem;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  font-family: "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
#building-detail .building-page-main-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
  padding: 0;
}
#building-detail .building-page-main-dots .main-carousel-dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: 2px solid rgba(0,0,0,0.3);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
#building-detail .building-page-main-dots .main-carousel-dot:hover {
  border-color: rgba(0,0,0,0.5);
}
#building-detail .building-page-main-dots .main-carousel-dot.is-active {
  background: var(--decorative-base, #BC9D12);
  border-color: var(--decorative-base, #BC9D12);
  transform: scale(1.2);
}
/* メインギャラリー2ペイン（物件詳細ライトボックスと同じトランジション） */
#building-detail .building-page-main-img-viewport {
  width: 100%;
  max-width: 100%;
  height: 16rem;
  overflow: hidden;
  border-radius: 4px 4px 0 0;
  background-color: var(--surface-light-1, #f9f9f9);
  position: relative;
}
#building-detail .building-page-main-img-track {
  display: flex;
  width: 200%;
  height: 100%;
  transform: translateX(0);
  transition: transform 0.78s cubic-bezier(0.48, 0.06, 0.24, 1);
}
#building-detail .building-page-main-img-track.is-at-a {
  transform: translateX(0);
}
#building-detail .building-page-main-img-track.is-at-b {
  transform: translateX(-50%);
}
#building-detail .building-page-main-img-pane {
  flex: 0 0 50%;
  width: 50%;
  height: 100%;
  min-height: 16rem;
  position: relative;
  overflow: hidden;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-color: var(--surface-light-1, #f9f9f9);
}
#building-detail .building-page-main-img-area .arrow {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
@media screen and (max-width: 767px) {
  #building-detail .building-page-main-img-area .building-page-carousel-arrow.arrow {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
}
@media screen and (min-width: 768px) {
  #building-detail .building-page-main-img-viewport {
    height: 24rem;
  }
  #building-detail .building-page-main-img-pane {
    min-height: 24rem;
  }
}
#building-detail .building-page-main-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; border-radius: 4px 4px 0 0; background: var(--surface-light-1, #f9f9f9); }
#building-detail .building-page-main-caption { position: absolute; bottom: 0; left: 0; right: 0; margin: 0; padding: 0.5rem 0.75rem; font-size: 0.75rem; color: #333; background: rgba(255,255,255,0.9); border-radius: 0 0 4px 4px; text-align: center; }
#building-detail .building-page-thumbnails { padding: 0.5rem 0.75rem 0; }
#building-detail .building-page-thumb-group { display: flex; flex-direction: column; gap: 0.35rem; }
#building-detail .building-page-thumb-label { font-size: 0.85rem; color: #555; font-weight: 500; }
#building-detail .building-page-thumb-list { display: flex; flex-wrap: wrap; gap: 0.5rem; }
#building-detail .building-page-thumb { width: 56px; height: 42px; min-width: 56px; min-height: 42px; border: 1px solid #ccc; border-radius: 4px; background-size: cover; background-repeat: no-repeat; background-position: center; cursor: pointer; padding: 0; flex-shrink: 0; }
#building-detail .building-page-thumb:hover { border-color: #999; outline: 2px solid var(--primary-base, #007bff); outline-offset: 1px; }
#building-detail .building-page-gallery-btns { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; gap: 0.5rem; width: 100%; box-sizing: border-box; padding: 0.75rem; }
#building-detail .building-page-gallery-btn { padding: 0.4rem 0.8rem; font-size: 0.9rem; background: #e0e0e0; color: #333; border: 1px solid #ccc; border-radius: 4px; cursor: pointer; }
#building-detail .building-page-gallery-btn:hover { background: #d0d0d0; }
#building-detail .building-page-gallery-btn.is-active { background: #fff; border-color: #999; border-bottom-color: transparent; margin-bottom: -1px; border-radius: 4px 4px 0 0; }
#building-detail .building-page-content-area { background: var(--bg-base, #f5f5f5); border: 1px solid #ccc; border-top: none; border-radius: 0 0 8px 8px; overflow: hidden; }
#building-detail .building-page-content-panel { padding: 0.75rem; }
#building-detail .building-page-thumb-carousel {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
}
#building-detail .building-page-thumb-carousel-viewport {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
#building-detail .building-page-thumb-carousel-track.building-page-tile-grid {
  display: flex !important;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.5rem;
  width: max-content;
  min-height: 0;
  padding: 0.15rem 0;
}
#building-detail .building-page-thumb-carousel-track .building-page-tile-item {
  flex: 0 0 auto;
  width: 5.8125rem;
  min-width: 5.8125rem;
  max-width: 5.8125rem;
  aspect-ratio: 4/3;
}
#building-detail .building-page-thumb-carousel-arrow {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  color: #333;
  cursor: pointer;
  transition: background 0.2s, opacity 0.2s;
}
#building-detail .building-page-thumb-carousel-arrow:hover:not(:disabled) {
  background: #eee;
}
#building-detail .building-page-thumb-carousel-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}
#building-detail .building-page-thumb-carousel-arrow svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}
#building-detail .building-page-tile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(93px, 1fr)); gap: 0.35rem; }
#building-detail .building-page-tile-item { aspect-ratio: 4/3; background-size: cover; background-repeat: no-repeat; background-position: center; border-radius: 4px; background-color: var(--surface-light-1, #f9f9f9); cursor: pointer; border: 1px solid transparent; transition: border-color 0.2s; }
/* 動画タイル：向きに合わせ object-contain で見切れ防止 */
#building-detail .building-page-tile-item--video { background-image: none; display: flex; align-items: center; justify-content: center; overflow: hidden; }
#building-detail .building-page-tile-item--video .building-page-tile-video { width: 100%; height: 100%; object-fit: contain; display: block; }
#building-detail .building-page-tile-item.is-active {
  border-color: var(--decorative-base, #BC9D12) !important;
  box-shadow: inset 0 0 0 1px var(--decorative-base, #BC9D12);
}
#building-detail .building-page-panel-floorplan .detail-floor-plan-below { width: 100%; aspect-ratio: 4/3; min-height: 200px; background-size: contain; background-repeat: no-repeat; background-position: center; border-radius: 4px; }
#building-detail .building-gallery-modal { position: fixed; inset: 0; z-index: 9998; display: flex; align-items: center; justify-content: center; padding: 1rem; }
#building-detail .building-gallery-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.6); }
#building-detail .building-gallery-modal-content { position: relative; background: #fff; border-radius: 12px; max-width: 90vw; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; z-index: 1; }
#building-detail .building-gallery-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #e5e7eb; flex-shrink: 0; }
#building-detail .building-gallery-modal-ttl { margin: 0; font-size: 1.1rem; font-weight: 700; }
#building-detail .building-gallery-modal-close { width: 2.5rem; height: 2.5rem; font-size: 1.5rem; line-height: 1; border: none; background: none; cursor: pointer; color: #666; }
#building-detail .building-gallery-modal-close:hover { color: #333; }
#building-detail .building-gallery-modal-body { overflow-y: auto; padding: 1.25rem; flex: 1; min-height: 0; }
#building-detail .building-page-gallery-grid { display: flex; flex-direction: column; gap: 0.75rem; }
#building-detail .building-page-gallery-item { width: 100%; aspect-ratio: 4/3; min-height: 180px; background-size: contain; background-repeat: no-repeat; background-position: center; border-radius: 4px; background-color: var(--surface-light-1, #f9f9f9); }
#building-detail .sidebar-building-label { margin-bottom: 0.35rem; }
#building-detail .sidebar-building-label .building-type-prefix { display: inline-block; font-size: 0.58em; color: #0A213D; background-color: var(--neutral-white, #fff); font-weight: 500; padding: 0.15em 0.4em; border: 1px solid #0A213D; border-radius: 3px; }
#building-detail .building-page-map .inner { width: 100%; aspect-ratio: 16/9; border: 1px solid var(--border-dark); }
#building-detail .building-page-rooms-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; overflow: visible; position: relative; z-index: 0; }
/* 建物詳細: 見出し＝部屋行 .main-area と同じ flex（padding + サムネ幅 + margin + terms 内6列）。padding-left 一括は行と一致せず列がずれる */
#building-detail .building-page-rooms-grid .terms-head-col {
  display: none !important;
}
#building-detail .building-page-rooms-grid .terms-head-col-thumb-spacer {
  flex: 0 0 5rem;
  width: 5rem;
  min-width: 5rem;
  margin-right: var(--sell-thumb-gap);
  flex-shrink: 0;
  align-self: stretch;
  min-height: 0.5rem;
  pointer-events: none;
}
#building-detail .building-page-rooms-grid .terms-head-col-labels {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: var(--sell-terms-cols);
  column-gap: var(--sell-terms-col-gap);
  align-items: center;
  justify-items: stretch;
  box-sizing: border-box;
}
#building-detail .building-page-rooms-grid .terms-head-label-rent,
#building-detail .building-page-rooms-grid .terms-head-label-fees {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  text-align: center;
  font-size: 0.8rem;
}
#building-detail .building-page-rooms-grid .terms-head-label-rent {
  grid-column: 1;
}
#building-detail .building-page-rooms-grid .terms-head-label-fees {
  grid-column: 2;
}
#building-detail .building-page-rooms-grid .terms-head-labels-meta-row {
  grid-column: 3 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-around;
  gap: 0.05rem 0.2rem;
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
#building-detail .building-page-rooms-grid .terms-head-labels-meta-row > span:not(.terms-head-meta-sep) {
  text-align: center;
  white-space: nowrap;
}
#building-detail .building-page-rooms-grid .terms-head-meta-sep {
  opacity: 0.75;
  user-select: none;
  pointer-events: none;
}
/* 建物詳細 SP 見出しはマークアップを検索結果の .terms-head-sp と揃え、下記 sell-sp-head と同一グリッド */
#building-detail .building-page-rooms-grid .property-hide-list { display: none; }
#building-detail .building-page-rooms-grid .property-hide-list.is-open { display: contents; }
#building-detail .building-page-rooms-grid .show-all-btn { grid-column: 1 / -1; }
#building-detail .building-page-rooms-grid .result-list-sell { min-width: 0; padding-top: 0.42rem; padding-bottom: 0.42rem; }
#building-detail .building-page-rooms-grid .result-list-sell .main-area { padding-left: var(--sell-thumb-pad); padding-right: var(--sell-terms-head-pad-right); }
#building-detail .building-page-rooms-grid .result-list-sell .img-block { margin-right: 0.35rem; width: 5rem; height: 5rem; min-width: 5rem; min-height: 5rem; flex-shrink: 0; }
#building-detail .building-page-rooms-grid .result-list-sell .terms-property-info { gap: 0.75rem; flex-wrap: nowrap; }
/* item-wrap の列・隙間は下記「物件一覧グリッド」ブロックで統一 */

/* building-detail 内の全 result-list-sell にスタッキングコンテキストを作り corner-badge を封じ込める */
#building-detail .result-list-sell {
  position: relative;
  z-index: 0;
}
/* グリッド内：2行目を背面に。3・4行目の拡大画像が2行目にかからないように */
#building-detail .building-page-rooms-grid .result-list-sell {
  position: relative;
  z-index: 0;
}
/* row-2 は通常時のみ背面。ホバー中は z-index: -1 を外して前面に出られるようにする */
#building-detail .building-page-rooms-grid > .result-list-sell.grid-row-2:not(:hover) {
  z-index: -1;
}
#building-detail .building-page-rooms-grid .result-list-sell:hover {
  z-index: 9999;
  transform: translateZ(0);
}
/* ホバー中は全 corner-badge を z-index: 0 に下げて拡大画像の前面表示を保証する */
#building-detail .building-page-rooms-grid:has(.result-list-sell:hover) .corner-badge {
  z-index: 0;
}

/* 建物詳細：部屋一覧セクションを上の2カラムと同じ幅に（overflow: visible で拡大画像のクリップ防止） */
/* 親要素にも position + z-index を明示（auto オーバーライド防止・スタッキング確立） */
#building-detail .building-page-rooms-full { display: block; overflow: visible; position: relative; z-index: 0; }
#building-detail .building-page-rooms-full .main-contents { width: 100%; padding-right: 0; overflow: visible; position: relative; z-index: 0; }
#building-detail .building-page-rooms-full .property-wrapper-sell { padding-left: 0; padding-right: 0; overflow: visible; position: relative; z-index: 0; }

/* 間取図ポップアップ（左下起点で拡大表示） */
.sp-floor-plan-popup {
  display: none;
  position: fixed;
  z-index: 9999;
  background-color: #fff;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  border: 2px solid var(--navy-ttl, #061D3F);
  border-radius: 6px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.35);
}
.sp-floor-plan-popup.is-active { display: block; }

/* 拡大画像モーダル（建物詳細・物件詳細で共通、画像・動画対応） */
.image-lightbox {
  position: fixed;
  inset: 0;
  --lightbox-header-inset: 16px;
  --lightbox-control-bg: rgba(0, 0, 0, 0.35);
  --lightbox-control-bg-hover: rgba(0, 0, 0, 0.65);
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  z-index: 10000;
  overscroll-behavior: contain;
  touch-action: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.45s ease, visibility 0s linear 0.45s;
}
.image-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.45s ease, visibility 0s;
}
.image-lightbox.is-closing {
  opacity: 0;
  transition: opacity 0.45s ease;
}
.image-lightbox.is-closing .lightbox-img-wrap { transform: scale(0) translate(-10px, 0); }
/* 透かしは疑似要素ではなく span（SP の flex 環境でもロゴ PNG が確実に載る／物件詳細 .detail-carousel-wm と同系） */
.image-lightbox .lightbox-slide {
  position: relative;
  flex: 0 0 50%;
  width: 50%;
  min-width: 0;
  min-height: 0;
  max-height: 85vh;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}
.image-lightbox .lightbox-slide .lightbox-wm {
  position: absolute;
  inset: 0;
  background-image: url('/assets/images/common/firstrent-logo-serif-white.png');
  background-size: 15%;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none;
  z-index: 1;
  opacity: 0.18;
}
@media screen and (max-width: 767px) {
  .image-lightbox .lightbox-slide .lightbox-wm {
    background-size: min(32vw, 150px);
  }
}
.image-lightbox .lightbox-img-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(100vw - 120px);
  max-width: 900px;
  flex-shrink: 1;
  min-width: 0;
  transform-origin: right bottom;
  transform: scale(0) translate(-10px, 0);
  opacity: 0;
  transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.45s ease;
}
.image-lightbox.is-open .lightbox-img-wrap {
  transform: scale(1) translate(0, 0);
  opacity: 1;
}
.image-lightbox .lightbox-media-viewport {
  position: relative;
  width: 100%;
  max-height: 85vh;
  overflow: hidden;
}
.image-lightbox .lightbox-media-track {
  display: flex;
  width: 200%;
  align-items: center;
  min-height: 0;
  max-height: 85vh;
  transform: translateX(0);
  /* 初動は遅め(P1)、中盤は速め(P2を左寄せで一気に進行→終端はなだらか) */
  transition: transform 0.78s cubic-bezier(0.48, 0.06, 0.24, 1);
}
.image-lightbox .lightbox-media-track.is-at-a { transform: translateX(0); }
.image-lightbox .lightbox-media-track.is-at-b { transform: translateX(-50%); }
.image-lightbox .lightbox-media-track .lightbox-img {
  display: block;
  position: relative;
  z-index: 0;
  max-width: 100%;
  max-height: 85vh;
  width: auto;
  height: auto;
  min-height: 0;
  object-fit: contain;
  object-position: center center;
}
.image-lightbox .lightbox-video {
  max-width: 100%;
  max-height: 85vh;
  object-fit: contain;
  background: #000;
  transition: opacity 0.25s ease;
}
.image-lightbox .lightbox-video.is-sliding {
  opacity: 0;
}
.image-lightbox .lightbox-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 0.5rem;
  padding: 0 0.25rem;
}
.image-lightbox .lightbox-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.image-lightbox .lightbox-dots .lightbox-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.7);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
.image-lightbox .lightbox-dots .lightbox-dot:hover { border-color: rgba(255,255,255,0.9); }
.image-lightbox .lightbox-dots .lightbox-dot.is-active { background: #fff; border-color: #fff; transform: scale(1.2); }
/* 枚数表示: × と同じ包含ブロック・上端、横方向は中央 */
.image-lightbox > .lightbox-counter {
  position: absolute;
  top: var(--lightbox-header-inset);
  left: 50%;
  transform: translateX(-50%);
  z-index: 12;
  padding: 0.2rem 0.5rem;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 999px;
  font-size: 0.875rem;
  color: #333;
  font-family: "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-variant-east-asian: normal;
  pointer-events: none;
}
.image-lightbox > .lightbox-counter .current,
.image-lightbox > .lightbox-counter .total {
  font-family: inherit;
}
.image-lightbox .lightbox-thumbs {
  margin-top: 0.5rem;
  width: 100%;
  max-width: 95vw;
}
.image-lightbox .lightbox-thumbs .carousel-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
.image-lightbox .lightbox-thumbs .carousel-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0 0.25rem;
  list-style: none;
}
.image-lightbox .lightbox-thumbs .carousel-item {
  flex: 0 0 5rem;
  width: 5rem;
  height: 4rem;
  border-radius: 4px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.image-lightbox .lightbox-thumbs .carousel-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.8);
  pointer-events: none;
  transition: opacity 0.25s ease;
  z-index: 1;
}
.image-lightbox .lightbox-thumbs .carousel-item.is-active::before { opacity: 0; }
.image-lightbox .lightbox-thumbs .carousel-item img,
.image-lightbox .lightbox-thumbs .carousel-item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.image-lightbox .lightbox-thumbs .carousel-item:hover::before { opacity: 0.5; }
.image-lightbox .lightbox-thumbs .carousel-item.is-active { border-color: #BC9D12; box-shadow: inset 0 0 0 1px #BC9D12; }
.image-lightbox .lightbox-close {
  position: absolute;
  top: var(--lightbox-header-inset);
  right: var(--lightbox-header-inset);
  width: 44px;
  height: 44px;
  font-size: 28px;
  line-height: 1;
  color: #fff;
  background: var(--lightbox-control-bg);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, opacity 0.2s;
  z-index: 11;
}
.image-lightbox .lightbox-close:hover {
  background: var(--lightbox-control-bg-hover);
}
.image-lightbox .lightbox-arrow {
  position: relative;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: var(--lightbox-control-bg);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, opacity 0.2s;
  z-index: 10;
}
.image-lightbox .lightbox-arrow:hover:not(:disabled),
.image-lightbox .lightbox-arrow.is-hover:not(:disabled) {
  background: var(--lightbox-control-bg-hover);
}
.image-lightbox .lightbox-arrow:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
.image-lightbox .lightbox-arrow svg {
  width: 24px;
  height: 24px;
  fill: #fff;
}

/* 建物詳細PC: グリッド内はCSS scale を使用（2行目 z-index:-1 で拡大画像が前面に） */

/* lightbox 矢印: スマホでは画像上に絶対位置で常時オーバーレイ */
@media screen and (max-width: 767px) {
  .image-lightbox {
    flex-direction: column;
    --lightbox-control-bg: rgba(0, 0, 0, 0.55);
  }
  .image-lightbox .lightbox-img-wrap {
    width: 74vw;
    max-width: 74vw;
  }
  .image-lightbox .lightbox-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10001;
    width: 40px;
    height: 40px;
  }
  .image-lightbox .lightbox-arrow.prev { left: 8px; }
  .image-lightbox .lightbox-arrow.next { right: 8px; }
}

/* 建物詳細・部屋一覧: スマホ〜狭いタブレットは常に1列（横向きで768px超でも2列にしない）。2列用の見出しは1つだけ */
@media screen and (max-width: 1023px) {
  #building-detail .building-page-rooms-grid {
    grid-template-columns: 1fr;
  }
  #building-detail .building-page-rooms-grid > .terms-head-col ~ .terms-head-col {
    display: none !important;
  }
  /* 見出し: 1行目＝賃料・管理／敷礼保、2行目＝間取り｜面積｜階｜更新日（データ行の2段と揃える） */
  #building-detail .building-page-rooms-grid .terms-head-col {
    align-items: flex-start;
  }
  #building-detail .building-page-rooms-grid .terms-head-col-labels {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 0.85rem;
    row-gap: 0.35rem;
    align-items: start;
  }
  #building-detail .building-page-rooms-grid .terms-head-label-rent {
    grid-column: 1;
    grid-row: 1;
  }
  #building-detail .building-page-rooms-grid .terms-head-label-fees {
    grid-column: 2;
    grid-row: 1;
    text-align: left;
  }
  #building-detail .building-page-rooms-grid .terms-head-labels-meta-row {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }
}

/* 建物詳細ページ: スマホ用 */
@media screen and (max-width: 767px) {
  .sp-zoom-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.7);
    z-index: 9998;
  }
  .sp-zoom-overlay.is-active { display: block; }
}

/* 「もっと見る」サブカルーセル1枚: 検索結果一覧と同一（横6枚相当・高さ7rem・枠4px）。SPは .sub-carousel 共通の 5rem・calc(100%/6) */
@media screen and (min-width: 768px) {
  #result-list .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item,
  #favorites .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item,
  #history .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item,
  #building-detail .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item,
  #detail .other-property .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item,
  #contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item {
    height: 7rem;
    flex: 0 0 calc(100% / 6);
    min-width: 0;
    box-sizing: border-box;
    border-right: 4px solid var(--neutral-white);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
    background-color: var(--surface-light-2);
  }
}

/* inquiry の上段 .carousel の min-width:100% 伝播を打ち消す */
#contact .property-wrapper-sell .result-list-sell .sub-img-view-area .sub-carousel .carousel-viewport .carousel-track .carousel-item {
  min-width: 0;
}

/* トップページ 区カード: 区名オーバーレイを50%透過で後ろの画像を見せる */
/* .area-link .img-area .text-bg {
  opacity: 0.67;
} */

/* こだわり条件カード: ホバー時は他のボタンが白くなる、ホバー対象はそのまま */
#top .search-future .container a.img-btn {
  position: relative;
  transition: none;
}
#top .search-future .container a.img-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.5);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 10;
}
#top .search-future .container a.img-btn:hover {
  opacity: 1;
}
@media (hover: hover) {
  #top .search-future .container:hover a.img-btn::after {
    opacity: 1;
  }
  #top .search-future .container a.img-btn:hover::after {
    opacity: 0;
  }
}
#top .search-future .container a.img-btn.feature-active {
  box-shadow: 0 0 0 2px var(--decorative-base, #B59A5C);
  z-index: 1;
}

/* おすすめ物件（物件詳細）: 新着物件と同じnpカードデザイン */
.recommended-history .recommended-np-carousel {
  position: relative;
}
.recommended-history .recommended-np-carousel .np-carousel-arrow {
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--navy-ttl, #061D3F);
  background: #fff;
  color: var(--navy-ttl, #061D3F);
  font-size: 1rem;
  cursor: pointer;
  border-radius: 4px;
  z-index: 5;
}
.recommended-history .recommended-np-carousel .np-carousel-arrow:disabled {
  opacity: 0.4;
  cursor: default;
}
@media screen and (max-width: 767px) {
  .recommended-history .recommended-np-carousel .np-carousel-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .recommended-history .recommended-np-carousel .np-carousel-prev {
    left: 0.5rem;
  }
  .recommended-history .recommended-np-carousel .np-carousel-next {
    right: 0.5rem;
  }
}
.recommended-history .np-grid {
  width: 100%;
  max-width: 960px;
  --gap: 5px;
  --card-size: calc((960px - var(--gap) * 3) / 4);
  max-height: calc(var(--card-size) * 3 + var(--gap) * 2);
  overflow-x: hidden;
  overflow-y: auto;
}
.recommended-history .np-grid .new-property-grid {
  --gap: 5px;
  --cols: 4;
  container-type: inline-size;
  display: grid;
  grid-template-columns: repeat(var(--cols), 1fr);
  gap: var(--gap);
  padding: 0;
}
.recommended-history .np-grid .np-building-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: calc((100cqi - var(--gap) * 3) / var(--cols));
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  background-color: #fff;
  position: relative;
  border: 1px solid var(--decorative-base, #BC9D12);
  box-sizing: border-box;
}
.recommended-history .np-grid .np-building-card .corner-badge {
  display: none;
}
.recommended-history .np-grid .np-building-card .np-card-image {
  flex: 1 1 77%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.recommended-history .np-grid .np-building-card .np-card-overlay {
  background-color: rgba(50, 50, 50, 0.8);
  color: #fff;
  padding: 0.25rem 0.5rem;
  font-size: 0.5625rem;
  line-height: 1.3;
  text-align: center;
}
.recommended-history .np-grid .np-building-card .np-card-location,
.recommended-history .np-grid .np-building-card .np-card-built {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.recommended-history .np-grid .np-building-card .np-card-info {
  flex: 0 0 23%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0.25rem 0.5rem;
  background: linear-gradient(to bottom, aliceblue, lightblue);
  color: var(--navy-ttl, #061D3F);
  font-size: 0.625rem;
  line-height: 1.2;
  text-align: center;
}
.recommended-history .np-grid .np-building-card .np-card-name {
  margin: 0;
  font-family: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;
  font-weight: bold;
  font-size: 0.8125rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.recommended-history .np-grid .np-building-card .np-card-divider {
  margin: 0.15rem 0;
  border: none;
  border-top: 1px solid var(--navy-ttl, #061D3F);
  opacity: 0.3;
  width: 100%;
}
.recommended-history .np-grid .np-building-card .np-card-detail {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
  /* スマホ：おすすめ賃貸は1行2列（トップ新着と同じく横スクロール） */
  .recommended-history .np-grid {
    --gap: 5px;
    display: block;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    width: 100%;
    padding: 0;
    box-sizing: border-box;
  }
  .recommended-history .np-grid::-webkit-scrollbar {
    display: none;
  }
  .recommended-history .np-grid .new-property-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--gap);
    grid-template-columns: none;
    padding: 0;
    width: max-content;
    min-width: 100%;
  }
  .recommended-history .np-grid .np-building-card {
    height: auto;
  }
  .recommended-history .np-grid .new-property-grid > * {
    flex: 0 0 calc((100vw - var(--gap)) / 2);
    min-width: calc((100vw - var(--gap)) / 2);
    scroll-snap-align: start;
    aspect-ratio: 1 / 1;
  }
}
.recommended-history .np-grid .np-building-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.25);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 5;
}
@media (hover: hover) {
  .recommended-history .np-grid .np-building-card:hover::after {
    opacity: 1;
  }
}

/* 新着・値下げ・最近見た: ホバーした建物カードに白マスク */
#top .new-property .np-grid .np-building-card::after,
#top .price-down .pd-grid .pd-building-card::after,
#top .recent-history .pd-grid .pd-building-card::after,
#detail .recent-history .pd-grid .pd-building-card::after,
#result-list .recent-history .pd-grid .pd-building-card::after,
#result-list .today-new-arrivals .pd-grid .pd-building-card::after,
#detail .today-new-arrivals .pd-grid .pd-building-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.25);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 5;
}
@media (hover: hover) {
  #top .new-property .np-grid .np-building-card:hover::after,
  #top .price-down .pd-grid .pd-building-card:hover::after,
  #top .recent-history .pd-grid .pd-building-card:hover::after,
  #detail .recent-history .pd-grid .pd-building-card:hover::after,
  #result-list .recent-history .pd-grid .pd-building-card:hover::after,
  #result-list .today-new-arrivals .pd-grid .pd-building-card:hover::after,
  #detail .today-new-arrivals .pd-grid .pd-building-card:hover::after {
    opacity: 1;
  }
}

/* 検索結果一覧・建物詳細：部屋行ホバー時のスタイル */
#results .result-list-sell,
#building-detail .result-list-sell {
  transition: all 0.18s ease;
}
#results .result-list-sell:hover,
#building-detail .result-list-sell:hover {
  background-color: #f5f6f8;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
}
#results .result-list-sell:hover .terms-rent,
#building-detail .result-list-sell:hover .terms-rent {
  color: #0F2544;
}

/* 検索結果一覧 SP: ページネーション（.paging）直上の余白 */
@media screen and (max-width: 767px) {
  #result-list .paging {
    padding-top: 1rem;
  }
}

/* 検索結果一覧: 条件ヘッダは上部と重複のため PC ではページ下部ブロックを出さない */
@media screen and (min-width: 768px) {
  #result-list .result-condition-head--bottom {
    display: none !important;
  }
}

/* パンくずをヘッダー直下・フッター直上に置く（.page-container の直接子） */
.page-container > .breadcrumbs.breadcrumbs-below-header {
  padding-top: var(--fixed-header-height, 5.5rem);
}
@media screen and (min-width: 768px) {
  .page-container > .breadcrumbs.breadcrumbs-below-header {
    padding-top: var(--fixed-header-height, 6.5rem);
  }
}
.page-container > .breadcrumbs.breadcrumbs-below-header ~ main {
  padding-top: 0.35rem;
}

/* SP共通: ヘッダー直下パンくずを常に表示し、固定要素に埋もれないようにする */
@media screen and (max-width: 767px) {
  .page-container > .breadcrumbs.breadcrumbs-below-header {
    display: block !important;
    position: relative;
    z-index: 900;
    min-height: 1.25rem;
    padding-top: var(--fixed-header-height, 5.5rem);
    background-color: var(--surface-base, #fff);
    opacity: 1;
    visibility: visible;
  }
  /* 検索結果: sticky filter より前面を維持 */
  body#results .page-container > .breadcrumbs.breadcrumbs-below-header {
    z-index: 950;
    padding-bottom: 0.25rem;
  }
  #sticky-filter:not(.is-show) {
    pointer-events: none;
  }
  body#results #sticky-filter {
    padding-top: calc(var(--fixed-header-height, 5.5rem) + 1.75rem);
  }
}

.page-container > .breadcrumbs.breadcrumbs-above-footer {
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .page-container:has(> main#contact) > .breadcrumbs,
  .page-container:has(> main#contact-conf) > .breadcrumbs,
  .page-container:has(> main#contact-complete) > .breadcrumbs,
  .page-container:has(> main#reserve) > .breadcrumbs,
  .page-container:has(> main#reserve-conf) > .breadcrumbs,
  .page-container:has(> main#reserve-complete) > .breadcrumbs,
  .page-container:has(> main#waitlist) > .breadcrumbs,
  .page-container:has(> main#waitlist-conf) > .breadcrumbs {
    padding-left: 0;
  }
}

/* -------------------------------------------------------------------------
   物件一覧 6列: 見出し・データ行は --sell-thumb-pad / --sell-terms-head-pad-right で揃える
   SP（〜767px）は従来の列・余白。768px〜で幅調整（お気に入り列・賃料〜階のバランス等）を適用
   ------------------------------------------------------------------------- */
/* 見出し行は .main-area と同じ左右インデントにしないと、6列グリッドの利用幅がズレる */
#result-list .property-wrapper-sell {
  --sell-thumb-pad: 0.5rem;
  --sell-thumb-size: 6rem;
  --sell-thumb-gap: 0.35rem;
  --sell-terms-head-pad-left: calc(var(--sell-thumb-pad) + var(--sell-thumb-size) + var(--sell-thumb-gap));
  --sell-terms-head-pad-right: 2.5rem;
  --sell-terms-col-gap: 0.2rem;
  --sell-terms-cols: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 0.75fr) minmax(0, 0.46fr);
  --sell-terms-rent-max: 100%;
  --sell-col-mid-max: 100%;
  --sell-col-floor-max: 100%;
  --sell-col-floor-num-max: 100%;
  --sell-col-updated-max: 100%;
}

#history .property-wrapper-sell,
#favorites .property-wrapper-sell {
  --sell-thumb-pad: 0.5rem;
  --sell-thumb-size: 6rem;
  --sell-thumb-gap: 0.35rem;
  --sell-terms-head-pad-left: calc(var(--sell-thumb-pad) + var(--sell-thumb-size) + var(--sell-thumb-gap));
  --sell-terms-head-pad-right: 2.5rem;
  --sell-terms-col-gap: 0.2rem;
  --sell-terms-cols: minmax(8.75rem, 11rem) minmax(6rem, 7.75rem) minmax(4.5rem, 6rem) minmax(4.5rem, 6rem) minmax(2.35rem, 3.35rem);
  --sell-terms-rent-max: 100%;
  --sell-col-mid-max: 7.75rem;
  --sell-col-floor-max: 7.75rem;
  --sell-col-floor-num-max: 3.35rem;
  --sell-col-updated-max: 7.75rem;
}

/* グリッドは section 直下の子なので「子 .property-wrapper-sell」ではマッチしない。:has でラッパーに変数を載せる */
#building-detail .property-wrapper-sell:has(.building-page-rooms-grid) {
  --sell-thumb-pad: 0.5rem;
  --sell-thumb-size: 5rem;
  --sell-thumb-gap: 0.35rem;
  --sell-terms-head-pad-left: calc(var(--sell-thumb-pad) + var(--sell-thumb-size) + var(--sell-thumb-gap));
  --sell-terms-head-pad-right: 3.5rem;
  --sell-terms-col-gap: 0.2rem;
  --sell-terms-cols: minmax(0, 1.08fr) minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 0.75fr) minmax(0, 0.4fr);
  --sell-terms-rent-max: 100%;
  --sell-col-mid-max: 100%;
  --sell-col-floor-max: 100%;
  --sell-col-floor-num-max: 100%;
  --sell-col-updated-max: 100%;
}

#detail .other-property {
  --sell-thumb-pad: 0.5rem;
  --sell-thumb-size: 6rem;
  --sell-thumb-gap: 0.35rem;
  --sell-terms-head-pad-left: calc(var(--sell-thumb-pad) + var(--sell-thumb-size) + var(--sell-thumb-gap));
  --sell-terms-head-pad-right: 2.5rem;
  --sell-terms-col-gap: 0.2rem;
  --sell-terms-cols: minmax(8.75rem, 11rem) minmax(6rem, 7.75rem) minmax(4.5rem, 6rem) minmax(4.5rem, 6rem) minmax(2.35rem, 3.35rem);
  --sell-terms-rent-max: 100%;
  --sell-col-mid-max: 7.75rem;
  --sell-col-floor-max: 7.75rem;
  --sell-col-floor-num-max: 3.35rem;
}

@media screen and (min-width: 768px) {
  #result-list .property-wrapper-sell {
    --sell-thumb-pad: 1.25rem;
    --sell-thumb-gap: 0.9rem;
    --sell-fav-slot-width: calc(3rem + 5vw);
    --sell-terms-head-pad-right: calc(var(--sell-fav-slot-width) + 1.65rem);
    --sell-terms-col-gap: 0.08rem;
    --sell-terms-cols: minmax(0, 0.86fr) minmax(0, 0.74fr) minmax(0, 0.58fr) minmax(0, 0.54fr) minmax(0, 0.32fr);
  }
  #history .property-wrapper-sell,
  #favorites .property-wrapper-sell {
    --sell-thumb-pad: 1.25rem;
    --sell-thumb-gap: 0.9rem;
    --sell-fav-slot-width: calc(3rem + 5vw);
    --sell-terms-head-pad-right: calc(var(--sell-fav-slot-width) + 1.65rem);
    --sell-terms-col-gap: 0.08rem;
    --sell-terms-cols: minmax(5.75rem, 7.75rem) minmax(4rem, 5.5rem) minmax(3rem, 4.25rem) minmax(3rem, 4.25rem) minmax(1.65rem, 2.5rem);
    --sell-col-mid-max: 5.5rem;
    --sell-col-floor-max: 4.25rem;
    --sell-col-floor-num-max: 2.5rem;
    --sell-col-updated-max: 5.5rem;
  }
  #building-detail .property-wrapper-sell:has(.building-page-rooms-grid) {
    --sell-thumb-pad: 0.65rem;
    --sell-thumb-gap: 0.42rem;
    --sell-fav-slot-width: calc(3rem + 5vw);
    --sell-terms-head-pad-right: calc(var(--sell-fav-slot-width) + 1.65rem);
    --sell-terms-col-gap: 0.08rem;
    --sell-terms-cols: minmax(0, 0.84fr) minmax(0, 0.76fr) minmax(0, 0.58fr) minmax(0, 0.54fr) minmax(0, 0.3fr);
  }
  #detail .other-property {
    --sell-thumb-pad: 1.25rem;
    --sell-thumb-gap: 0.9rem;
    --sell-fav-slot-width: calc(3rem + 5vw);
    --sell-terms-head-pad-right: calc(var(--sell-fav-slot-width) + 1.65rem);
    --sell-terms-col-gap: 0.08rem;
    --sell-terms-cols: minmax(5.75rem, 7.75rem) minmax(4rem, 5.5rem) minmax(3rem, 4.25rem) minmax(3rem, 4.25rem) minmax(1.65rem, 2.5rem);
    --sell-col-mid-max: 5.5rem;
    --sell-col-floor-max: 4.25rem;
    --sell-col-floor-num-max: 2.5rem;
  }
}

/* 1列レイアウトの見出し（検索結果・履歴・お気に入り） */
#result-list .property-wrapper-sell .terms-head:not(:has(.terms-head-group)),
#history .property-wrapper-sell .terms-head:not(:has(.terms-head-group)),
#favorites .property-wrapper-sell .terms-head:not(:has(.terms-head-group)),
#detail .other-property .terms-head:not(:has(.terms-head-group)),
#building-detail .building-page-rooms-grid .terms-head:not(:has(.terms-head-group)) {
  display: grid;
  grid-template-columns: var(--sell-terms-cols);
  column-gap: var(--sell-terms-col-gap);
  align-items: center;
  justify-items: stretch;
  padding: 0.2rem var(--sell-terms-head-pad-right) 0.2rem var(--sell-terms-head-pad-left);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  font-size: var(--font-small);
  color: var(--text-secondary);
  background-color: var(--surface-light-2);
  box-sizing: border-box;
}
#result-list .property-wrapper-sell .terms-head:not(:has(.terms-head-group)) > span,
#history .property-wrapper-sell .terms-head:not(:has(.terms-head-group)) > span,
#favorites .property-wrapper-sell .terms-head:not(:has(.terms-head-group)) > span,
#detail .other-property .terms-head:not(:has(.terms-head-group)) > span,
#building-detail .building-page-rooms-grid .terms-head:not(:has(.terms-head-group)) > span {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  text-align: center;
}

/* 検索結果一覧ページのみ: 一覧上段「検索結果・建物/部屋件数」、物件グリッドの列見出しを明朝体に（ソート等 .container は対象外） */
#result-list header.list-header .header-inner {
  font-family: var(--font-serif);
}
#result-list header.list-header .list-header-controls {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
}
#result-list header.list-header .list-header-controls-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 0.5rem;
  flex-wrap: nowrap;
}
#result-list header.list-header .list-header-filter-row {
  width: 100%;
  display: flex;
  justify-content: flex-start;
}
#result-list .property-wrapper-sell .terms-head:not(:has(.terms-head-group)),
#result-list .property-wrapper-sell .terms-head-sp.sell-sp-terms-head {
  font-family: var(--font-serif);
}

/* 更新日バッジ（PC/SP共通） */
.sell-updated-badge {
  display: inline-block;
  font-size: var(--font-ultra-small, 0.65rem);
  font-weight: 700;
  white-space: nowrap;
  padding: 0.15em 0.4em;
  border-radius: 0.2rem;
  color: #fff;
  line-height: 1.4;
  text-align: center;
}
.sell-updated-badge.updated-d0 { background-color: #dc2626; }
.sell-updated-badge.updated-d1 { background-color: #ea580c; }
.sell-updated-badge.updated-d2,
.sell-updated-badge.updated-d3 { background-color: #ca8a04; }
.sell-updated-badge.updated-d4 { background-color: #16a34a; }
.sell-updated-badge.updated-d5 { background-color: #0ea5e9; }
.sell-updated-badge.updated-d6 { background-color: #2563eb; }
.sell-updated-badge.updated-d7 { background-color: #6b7280; }

/* 更新日バッジと「申込あり」（.disp-view）が右上で重なるとき、申込ありを手前に */
#result-list .property-wrapper-sell .result-list-sell .disp-view,
#history .property-wrapper-sell .result-list-sell .disp-view,
#favorites .property-wrapper-sell .result-list-sell .disp-view,
#detail .other-property .result-list-sell .disp-view,
#building-detail .building-page-rooms-grid .result-list-sell .disp-view {
  z-index: 10;
}
#result-list .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .sell-updated-badge,
#history .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .sell-updated-badge,
#favorites .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .sell-updated-badge,
#detail .other-property .result-list-sell .main-area .free-inquiry-area .sell-updated-badge,
#building-detail .building-page-rooms-grid .result-list-sell .main-area .free-inquiry-area .sell-updated-badge {
  position: relative;
  z-index: 1;
}
/* free-inquiry-area 内の「申込あり」バッジも更新日より手前 */
#result-list .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .sell-status-badge-app,
#history .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .sell-status-badge-app,
#favorites .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .sell-status-badge-app,
#detail .other-property .result-list-sell .main-area .free-inquiry-area .sell-status-badge-app,
#building-detail .building-page-rooms-grid .result-list-sell .main-area .free-inquiry-area .sell-status-badge-app {
  position: relative;
  z-index: 2;
}

/* 物件一覧 詳細リンク矢印ボタン: スマホのみ表示 */
.result-list-arrow-btn {
  display: none;
}
@media screen and (max-width: 767px) {
  .result-list-arrow-btn {
    display: block;
    line-height: 0;
  }
  .result-list-arrow-btn img {
    width: 32px;
    height: 32px;
  }
}

/* free-inquiry-area: result-list-sell の右端に absolute で固定（main-area のグリッドを崩さない） */
#result-list .property-wrapper-sell .result-list-sell > .free-inquiry-area,
#history .property-wrapper-sell .result-list-sell > .free-inquiry-area,
#favorites .property-wrapper-sell .result-list-sell > .free-inquiry-area,
#detail .other-property .result-list-sell > .free-inquiry-area,
#building-detail .building-page-rooms-grid .result-list-sell > .free-inquiry-area {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-width: 3.5rem;
  z-index: 20;
}

/* 「申込あり」バッジの見た目 */
#result-list .property-wrapper-sell .result-list-sell .sell-status-badge,
#history .property-wrapper-sell .result-list-sell .sell-status-badge,
#favorites .property-wrapper-sell .result-list-sell .sell-status-badge,
#detail .other-property .result-list-sell .sell-status-badge,
#building-detail .building-page-rooms-grid .result-list-sell .sell-status-badge {
  display: inline-block;
  font-size: var(--font-ultra-small, 0.65rem);
  font-weight: 700;
  white-space: nowrap;
  padding: 0.15em 0.4em;
  border-radius: 0.2rem;
  color: #fff;
  line-height: 1.4;
  text-align: center;
}

#result-list .property-wrapper-sell .result-list-sell .sell-status-badge-app,
#history .property-wrapper-sell .result-list-sell .sell-status-badge-app,
#favorites .property-wrapper-sell .result-list-sell .sell-status-badge-app,
#detail .other-property .result-list-sell .sell-status-badge-app,
#building-detail .building-page-rooms-grid .result-list-sell .sell-status-badge-app {
  background-color: var(--accent-base);
}

/* SP 専用見出し: 6列グリッド サムネ(row1-2) | 賃料管理費(col2-3) | 敷礼保(col4-5) | お気に入り(row1-2) / 2行目: 間取り・面積・階・変更日 */
.sell-sp-terms-head {
  display: none;
  align-items: center;
  padding: 0.3rem var(--sell-thumb-pad);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  font-size: var(--font-small);
  color: var(--text-secondary);
  background-color: var(--surface-light-2);
}
/* sell-sp-terms-head 子要素: 6列グリッド配置 */
.sell-sp-terms-head .sell-sp-head-thumb   { grid-column: 1; grid-row: 1 / span 2; }
.sell-sp-terms-head .sell-sp-head-rent    { grid-column: 2 / span 2; grid-row: 1; text-align: center; min-width: 0; }
.sell-sp-terms-head .sell-sp-head-fees    { grid-column: 4 / span 2; grid-row: 1; text-align: center; min-width: 0; }
.sell-sp-terms-head .sell-sp-head-fav     { grid-column: 6; grid-row: 1 / span 2; }
.sell-sp-terms-head .sell-sp-head-plan    { grid-column: 2; grid-row: 2; text-align: center; min-width: 0; }
.sell-sp-terms-head .sell-sp-head-area    { grid-column: 3; grid-row: 2; text-align: center; min-width: 0; }
.sell-sp-terms-head .sell-sp-head-floor   { grid-column: 4; grid-row: 2; text-align: center; min-width: 0; }
.sell-sp-terms-head .sell-sp-head-updated { grid-column: 5; grid-row: 2; text-align: center; min-width: 0; }

/* SP: PC用見出しを隠す + building-detail の terms-head-col flex 上書き */
@media screen and (max-width: 767px) {
  #result-list .property-wrapper-sell .terms-head.pc-only:not(:has(.terms-head-group)),
  #history .property-wrapper-sell .terms-head.pc-only:not(:has(.terms-head-group)),
  #favorites .property-wrapper-sell .terms-head.pc-only:not(:has(.terms-head-group)),
  #detail .other-property .terms-head.pc-only:not(:has(.terms-head-group)),
  #building-detail .building-page-rooms-grid .terms-head-col {
    display: none;
  }
  .sell-sp-terms-head {
    display: none;
  }

  /* SP データ行: flex row（画像左 | テキスト中 | fav右） */
  /* テキスト開始位置を .property-area .inner と揃える: pad-left(1rem) + thumb(6rem) + gap(1rem) = 8rem */
  #result-list .property-wrapper-sell .result-list-sell .main-area,
  #history .property-wrapper-sell .result-list-sell .main-area,
  #favorites .property-wrapper-sell .result-list-sell .main-area,
  #detail .other-property .result-list-sell .main-area,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 1rem;
    padding-left: 1rem;
    padding-right: 0.25rem;
  }
  /* a.terms-link: コンテンツ幅に合わせる（ガラ空き防止） */
  #result-list .property-wrapper-sell .result-list-sell .main-area > a.terms-link,
  #history .property-wrapper-sell .result-list-sell .main-area > a.terms-link,
  #favorites .property-wrapper-sell .result-list-sell .main-area > a.terms-link,
  #detail .other-property .result-list-sell .main-area > a.terms-link,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area > a.terms-link {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    max-width: fit-content;
  }
  /* terms.sp-only: ブロックフロー（div=独立行、span=インライン連続1行） */
  #result-list .property-wrapper-sell .result-list-sell .main-area .terms.sp-only,
  #history .property-wrapper-sell .result-list-sell .main-area .terms.sp-only,
  #favorites .property-wrapper-sell .result-list-sell .main-area .terms.sp-only,
  #detail .other-property .result-list-sell .main-area .terms.sp-only,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .terms.sp-only {
    display: block;
    width: 100%;
    min-width: 0;
    line-height: 1.5;
  }
  /* 間取り図: 固定幅・左配置 */
  #result-list .property-wrapper-sell .result-list-sell .main-area .img-block,
  #history .property-wrapper-sell .result-list-sell .main-area .img-block,
  #favorites .property-wrapper-sell .result-list-sell .main-area .img-block,
  #detail .other-property .result-list-sell .main-area .img-block,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .img-block {
    flex-shrink: 0;
    margin-right: 0;
    align-self: flex-start;
  }
  /* お気に入り列: 更新日＋ハートを縦積み、右端固定 */
  #result-list .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area,
  #history .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area,
  #favorites .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area,
  #detail .other-property .result-list-sell .main-area .free-inquiry-area,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .free-inquiry-area {
    position: static;
    flex-shrink: 0;
    margin-left: auto;
    width: 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    align-self: flex-start;
    padding-bottom: 0;
  }
  /* 更新日バッジ（SP） */
  /* 賃料管理費: 横並び・左寄せ */
  #result-list .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .terms-rent,
  #history .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .terms-rent,
  #favorites .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .terms-rent,
  #detail .other-property .result-list-sell .main-area .terms.sp-only .terms-rent,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .terms.sp-only .terms-rent {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.25rem;
    margin-bottom: 0.3rem;
  }
  /* 敷礼保: 横並び */
  #result-list .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .initial-fees-area,
  #history .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .initial-fees-area,
  #favorites .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .initial-fees-area,
  #detail .other-property .result-list-sell .main-area .terms.sp-only .initial-fees-area,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .terms.sp-only .initial-fees-area {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
  }
  /* 敷礼保 p: 四角アイコン + テキスト横並び */
  .terms.sp-only .initial-fees-area p {
    display: flex;
    align-items: center;
    gap: 0.3rem;
  }
  .terms.sp-only .initial-fees-area p > span:first-of-type {
    display: inline-block;
    width: 1.2rem;
    height: 1.2rem;
    line-height: 1.2rem;
    text-align: center;
    font-size: var(--font-small);
  }
  .terms.sp-only .initial-fees-area p.default {
    color: var(--text-primary);
  }
  .terms.sp-only .initial-fees-area p.default > span:first-of-type {
    border: 1px solid var(--neutral-black);
  }
  .terms.sp-only .initial-fees-area p.free {
    color: var(--text-red);
  }
  .terms.sp-only .initial-fees-area p.free > span:first-of-type {
    border: 1px solid var(--text-red);
  }
  /* メタ行（間取り・面積・階）: 上に余白 + インライン + "|" 区切り */
  .terms.sp-only .sell-sp-plan {
    display: inline-block;
    margin-top: 0.35rem;
  }
  #result-list .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-area::before,
  #history .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-area::before,
  #favorites .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-area::before,
  #detail .other-property .result-list-sell .main-area .terms.sp-only .sell-sp-area::before,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .terms.sp-only .sell-sp-area::before,
  #result-list .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-floor::before,
  #history .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-floor::before,
  #favorites .property-wrapper-sell .result-list-sell .main-area .terms.sp-only .sell-sp-floor::before,
  #detail .other-property .result-list-sell .main-area .terms.sp-only .sell-sp-floor::before,
  #building-detail .building-page-rooms-grid .result-list-sell .main-area .terms.sp-only .sell-sp-floor::before {
    content: " | ";
    color: var(--text-secondary, #999);
  }
}

#result-list .result-list-sell .main-area > a.terms-link,
#history .result-list-sell .main-area > a.terms-link,
#favorites .result-list-sell .main-area > a.terms-link,
#building-detail .building-page-rooms-grid .result-list-sell .main-area > a.terms-link,
#detail .other-property .result-list-sell .main-area > a.terms-link {
  flex: 1;
  min-width: 0;
}

#result-list .result-list-sell .terms.pc-only .item-wrap,
#history .result-list-sell .terms.pc-only .item-wrap,
#favorites .result-list-sell .terms.pc-only .item-wrap,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .item-wrap,
#detail .other-property .result-list-sell .terms.pc-only .item-wrap {
  display: grid;
  grid-template-columns: var(--sell-terms-cols);
  column-gap: var(--sell-terms-col-gap);
  align-items: center;
  justify-items: stretch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

#result-list .result-list-sell .terms.pc-only .item-wrap .terms-property-info,
#history .result-list-sell .terms.pc-only .item-wrap .terms-property-info,
#favorites .result-list-sell .terms.pc-only .item-wrap .terms-property-info,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .item-wrap .terms-property-info,
#detail .other-property .result-list-sell .terms.pc-only .item-wrap .terms-property-info {
  display: contents;
}

/* 賃料・管理費は縦積み（管理費を賃料の下に改行） */
#result-list .result-list-sell .terms .terms-rent,
#history .result-list-sell .terms .terms-rent,
#favorites .result-list-sell .terms .terms-rent,
#building-detail .building-page-rooms-grid .result-list-sell .terms .terms-rent,
#detail .other-property .result-list-sell .terms .terms-rent {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
}

#result-list .result-list-sell .terms.pc-only .terms-rent,
#history .result-list-sell .terms.pc-only .terms-rent,
#favorites .result-list-sell .terms.pc-only .terms-rent,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .terms-rent,
#detail .other-property .result-list-sell .terms.pc-only .terms-rent {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: var(--sell-terms-rent-max);
  min-width: 0;
  box-sizing: border-box;
}

#result-list .result-list-sell .terms.pc-only .terms-rent > p:first-of-type,
#history .result-list-sell .terms.pc-only .terms-rent > p:first-of-type,
#favorites .result-list-sell .terms.pc-only .terms-rent > p:first-of-type,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .terms-rent > p:first-of-type,
#detail .other-property .result-list-sell .terms.pc-only .terms-rent > p:first-of-type {
  margin: 0;
  white-space: nowrap;
  width: 100%;
  text-align: center;
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 0.15rem;
}

#result-list .result-list-sell .terms.pc-only .terms-rent > p:last-of-type,
#history .result-list-sell .terms.pc-only .terms-rent > p:last-of-type,
#favorites .result-list-sell .terms.pc-only .terms-rent > p:last-of-type,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .terms-rent > p:last-of-type,
#detail .other-property .result-list-sell .terms.pc-only .terms-rent > p:last-of-type {
  margin: 0;
  white-space: normal;
  text-align: center;
  font-size: var(--font-small);
  line-height: 1.35;
}

#result-list .result-list-sell .terms.sp-only .terms-rent > p:last-of-type,
#history .result-list-sell .terms.sp-only .terms-rent > p:last-of-type,
#favorites .result-list-sell .terms.sp-only .terms-rent > p:last-of-type,
#building-detail .building-page-rooms-grid .result-list-sell .terms.sp-only .terms-rent > p:last-of-type,
#detail .other-property .result-list-sell .terms.sp-only .terms-rent > p:last-of-type {
  white-space: normal;
  text-align: center;
  font-size: var(--font-small);
  line-height: 1.35;
}

/* SP データの列配置は max-width:767px の .main-area グリッド（見出し .sell-sp-terms-head と同一比率） */
#result-list .result-list-sell .terms.sp-only .terms-property-info,
#history .result-list-sell .terms.sp-only .terms-property-info,
#favorites .result-list-sell .terms.sp-only .terms-property-info,
#building-detail .building-page-rooms-grid .result-list-sell .terms.sp-only .terms-property-info,
#detail .other-property .result-list-sell .terms.sp-only .terms-property-info {
  display: contents;
}
#result-list .result-list-sell .terms.sp-only .initial-fees-area > p,
#history .result-list-sell .terms.sp-only .initial-fees-area > p,
#favorites .result-list-sell .terms.sp-only .initial-fees-area > p,
#building-detail .building-page-rooms-grid .result-list-sell .terms.sp-only .initial-fees-area > p,
#detail .other-property .result-list-sell .terms.sp-only .initial-fees-area > p {
  white-space: normal;
  max-width: 100%;
}

#result-list .result-list-sell .terms.pc-only .initial-fees-area,
#history .result-list-sell .terms.pc-only .initial-fees-area,
#favorites .result-list-sell .terms.pc-only .initial-fees-area,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .initial-fees-area,
#detail .other-property .result-list-sell .terms.pc-only .initial-fees-area {
  width: 100%;
  max-width: var(--sell-col-mid-max);
  justify-self: center;
  justify-content: center;
  flex-wrap: wrap;
  box-sizing: border-box;
  min-width: 0;
}

/* グリッドセル内で見出しと同じ中心に揃える */
#result-list .result-list-sell .terms.pc-only .room-floor-plan > p,
#history .result-list-sell .terms.pc-only .room-floor-plan > p,
#favorites .result-list-sell .terms.pc-only .room-floor-plan > p,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-floor-plan > p,
#detail .other-property .result-list-sell .terms.pc-only .room-floor-plan > p,
#result-list .result-list-sell .terms.pc-only .room-area > p,
#history .result-list-sell .terms.pc-only .room-area > p,
#favorites .result-list-sell .terms.pc-only .room-area > p,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-area > p,
#detail .other-property .result-list-sell .terms.pc-only .room-area > p,
#result-list .result-list-sell .terms.pc-only .room-num > p,
#history .result-list-sell .terms.pc-only .room-num > p,
#favorites .result-list-sell .terms.pc-only .room-num > p,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-num > p,
#detail .other-property .result-list-sell .terms.pc-only .room-num > p {
  margin: 0;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

#result-list .result-list-sell .terms.pc-only .room-floor-plan,
#history .result-list-sell .terms.pc-only .room-floor-plan,
#favorites .result-list-sell .terms.pc-only .room-floor-plan,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-floor-plan,
#detail .other-property .result-list-sell .terms.pc-only .room-floor-plan {
  width: 100%;
  max-width: var(--sell-col-floor-max);
  white-space: nowrap;
  text-align: center;
  box-sizing: border-box;
  min-width: 0;
}

#result-list .result-list-sell .terms.pc-only .room-area,
#history .result-list-sell .terms.pc-only .room-area,
#favorites .result-list-sell .terms.pc-only .room-area,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-area,
#detail .other-property .result-list-sell .terms.pc-only .room-area {
  width: 100%;
  max-width: var(--sell-col-floor-max);
  white-space: nowrap;
  text-align: center;
  box-sizing: border-box;
  min-width: 0;
}

#result-list .result-list-sell .terms.pc-only .room-num,
#history .result-list-sell .terms.pc-only .room-num,
#favorites .result-list-sell .terms.pc-only .room-num,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-num,
#detail .other-property .result-list-sell .terms.pc-only .room-num {
  width: 100%;
  max-width: var(--sell-col-floor-num-max);
  text-align: center;
  box-sizing: border-box;
  min-width: 0;
}

#result-list .result-list-sell .terms.pc-only .room-updated,
#history .result-list-sell .terms.pc-only .room-updated,
#favorites .result-list-sell .terms.pc-only .room-updated,
#detail .other-property .result-list-sell .terms.pc-only .room-updated {
  width: 100%;
  max-width: var(--sell-col-updated-max);
  font-size: var(--font-small);
  white-space: nowrap;
  text-align: center;
  box-sizing: border-box;
  min-width: 0;
}

/* 建物詳細: 更新日を「n/j」改行「更新」で2行にするため nowrap を外す */
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-updated {
  width: 100%;
  max-width: var(--sell-col-updated-max);
  font-size: var(--font-small);
  white-space: normal;
  line-height: 1.35;
  text-align: center;
  box-sizing: border-box;
  min-width: 0;
}

#result-list .result-list-sell .terms.pc-only .room-updated p,
#history .result-list-sell .terms.pc-only .room-updated p,
#favorites .result-list-sell .terms.pc-only .room-updated p,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-updated p,
#detail .other-property .result-list-sell .terms.pc-only .room-updated p {
  margin: 0;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

#result-list .result-list-sell .terms.pc-only .room-floor-plan,
#result-list .result-list-sell .terms.pc-only .room-area,
#history .result-list-sell .terms.pc-only .room-floor-plan,
#history .result-list-sell .terms.pc-only .room-area,
#favorites .result-list-sell .terms.pc-only .room-floor-plan,
#favorites .result-list-sell .terms.pc-only .room-area,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-floor-plan,
#building-detail .building-page-rooms-grid .result-list-sell .terms.pc-only .room-area,
#detail .other-property .result-list-sell .terms.pc-only .room-floor-plan,
#detail .other-property .result-list-sell .terms.pc-only .room-area {
  color: var(--text-primary);
}

/* データ行の左右＝見出しの --sell-terms-head-pad-* と同じ変数（components の 1.5rem/3rem を上書き） */
#result-list .property-wrapper-sell .result-list-sell .main-area,
#history .property-wrapper-sell .result-list-sell .main-area,
#favorites .property-wrapper-sell .result-list-sell .main-area,
#detail .other-property .result-list-sell .main-area {
  padding-left: var(--sell-thumb-pad);
  padding-right: var(--sell-terms-head-pad-right);
}
/* PC のみ（SP は max-width:767 の .main-area グリッドで margin-right:0） */
@media screen and (min-width: 768px) {
  #result-list .property-wrapper-sell .result-list-sell .main-area .img-block,
  #history .property-wrapper-sell .result-list-sell .main-area .img-block,
  #favorites .property-wrapper-sell .result-list-sell .main-area .img-block,
  #detail .other-property .result-list-sell .main-area .img-block {
    margin-right: var(--sell-thumb-gap);
  }
}
#building-detail .result-list-sell .room-floor-plan,
#building-detail .result-list-sell .room-area { color: var(--text-primary); }
#building-detail .result-list-sell:hover .room-floor-plan,
#building-detail .result-list-sell:hover .room-area { color: #0F2544; }

/* 物件一覧: お気に入りボタン寸法は components .fav-button（3rem）のまま。右列幅は --sell-fav-slot-width / --sell-terms-head-pad-right。間取り図 .img-block は触らない */

/* お気に入りボタン：ホバー時に薄いピンク＋ツールチップ */
.fav-button { position: relative; }
.fav-button:hover .icon-off { display: none; }
.fav-button:hover .icon-on { display: block; fill: #ffcdd2; }
.fav-button::after {
  content: 'お気に入りに追加';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.3rem 0.5rem;
  font-size: 0.75rem;
  white-space: nowrap;
  color: #fff;
  background: #333;
  border-radius: 4px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 100;
}
.fav-button:hover::after { opacity: 1; }
.fav-button[data-active="true"]::after { content: 'お気に入りから削除'; }

/* 右列でのツールチップはボタン直上ではなく、バッヂ列の上に出す */
#result-list .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .fav-button::after,
#history .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .fav-button::after,
#favorites .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area .fav-button::after,
#detail .other-property .result-list-sell .main-area .free-inquiry-area .fav-button::after,
#building-detail .building-page-rooms-grid .result-list-sell .main-area .free-inquiry-area .fav-button::after {
  bottom: calc(100% + 2rem);
}

#result-list .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area:has(.sell-status-badge-app) .fav-button::after,
#history .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area:has(.sell-status-badge-app) .fav-button::after,
#favorites .property-wrapper-sell .result-list-sell .main-area .free-inquiry-area:has(.sell-status-badge-app) .fav-button::after,
#detail .other-property .result-list-sell .main-area .free-inquiry-area:has(.sell-status-badge-app) .fav-button::after,
#building-detail .building-page-rooms-grid .result-list-sell .main-area .free-inquiry-area:has(.sell-status-badge-app) .fav-button::after {
  bottom: calc(100% + 3.9rem);
}

/* もっと見るボタンの背景色 */
.toggle-btn { background-color: #1C2F4A; }

/* 全XX室を見るボタン / 次の20室を見るボタン */
.show-all-btn, .load-more-rooms-btn { color: #1C2F4A; cursor: pointer; }
.show-all-btn:hover, .load-more-rooms-btn:hover,
.show-all-btn:active, .load-more-rooms-btn:active { text-decoration: underline; }

/* PC: 設備チェックボックス 1行3span、10文字=1span/11文字以上=2span、31文字以上=3span+改行 */
/* 設備カテゴリ: 1行2列で表示（検索結果一覧の絞り込みのみ） */
@media screen and (min-width: 768px) {
  #result-list .applied-conditions .checkbox-area.pc-facility-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-flow: dense;
  }
  #result-list .applied-conditions .checkbox-area.pc-facility-grid li.pc-facility-span.span-1 {
    grid-column: span 1;
  }
  #result-list .applied-conditions .checkbox-area.pc-facility-grid li.pc-facility-span.span-2 {
    grid-column: span 2;
  }
  #result-list .applied-conditions .checkbox-area.pc-facility-grid li.pc-facility-span.span-3 {
    grid-column: span 2;
  }
}

/* results-link-list: 人気な路線×駅の「もっと見る」用 */
@media screen and (max-width: 767px) {
  #results-hide-list {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-out;
  }
}
.hide-button #results-hide-list-open,
.hide-button #results-hide-list-close {
  width: 100%;
  padding: 0.4rem 0 0.5rem;
  text-align: center;
  color: var(--link-default);
  border-top: 1px dotted var(--border-dark);
}
.hide-button #results-hide-list-open {
  display: block;
}
.hide-button #results-hide-list-close {
  display: none;
}

/* 家賃統計 棒グラフ（相場：クリーンな縦棒・ミュートゴールド・軸線なし） */
.rent-stats-chart {
  padding: 1.25rem 0;
  --rent-chart-bar-height: 17rem;
  --rent-chart-y-col: 2.75rem;
}
.rent-stats-chart .shortcut-ttl {
  margin-bottom: 0.5rem;
}
.rent-stats-chart h2.shortcut-ttl {
  display: block;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-align: left;
  color: var(--text-primary, #333);
  padding: 0.5rem 0 0.5rem 0.85rem;
  margin: 0 0 0.5rem 0;
}
.rent-stats-chart h2.shortcut-ttl.accent-line {
  border-left-width: 5px;
  border-left-color: #c4b56a;
}
.rent-stats-chart-disclaimer {
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--text-secondary, #666);
  margin: 0 0 1rem 0;
}
.rent-stats-chart-summary {
  font-size: 0.85rem;
  line-height: 1.8;
  margin: 1rem 0 0 0;
  color: var(--text-primary, #333);
}

/* 家賃相場グラフ: 左Y軸＋各列は「値ラベル→棒→間取り」（値は棒の直上） */
.rent-stats-chart-plot {
  display: grid;
  width: min(100%, 50vw);
  margin: 0.75rem auto 0;
  grid-template-columns: var(--rent-chart-y-col) repeat(var(--rent-chart-cols, 7), minmax(0, 1fr));
  grid-template-rows: auto var(--rent-chart-bar-height) auto;
  align-items: stretch;
  column-gap: 0;
  padding: 1.25rem 1rem 1rem;
  background: #f5f4ef;
  border-radius: 6px;
  overflow-x: auto;
  min-width: 0;
}
.rent-stats-chart-y-corner--top {
  grid-column: 1;
  grid-row: 1;
}
.rent-stats-chart-y-axis {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  align-self: stretch;
  height: var(--rent-chart-bar-height);
  padding-right: 0.15rem;
  font-size: 0.65rem;
  line-height: 1.15;
  color: var(--text-secondary, #666);
}
.rent-stats-chart-y-tick {
  display: block;
  white-space: nowrap;
  text-align: right;
}
.rent-stats-chart-y-corner--bottom {
  grid-column: 1;
  grid-row: 3;
}
.rent-stats-chart-grid {
  grid-column: 2 / -1;
  grid-row: 2;
  position: relative;
  z-index: 0;
  pointer-events: none;
  min-height: 0;
  align-self: stretch;
}
.rent-stats-chart-grid-line {
  position: absolute;
  left: 0;
  right: 0;
  border: none;
  border-top: 1px dotted rgba(0, 0, 0, 0.12);
  margin: 0;
  padding: 0;
  height: 0;
}
.rent-stats-chart-plot > .rent-stats-chart-item {
  /* 棒行＋間取り行のみ（値は棒エリア内で棒の直上） */
  grid-row: 2 / 4;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  max-width: 5.5rem;
  margin: 0 auto;
  width: 100%;
  padding: 0;
  box-sizing: border-box;
}
.rent-stats-chart-plot .rent-stats-chart-bar-wrap .rent-stats-chart-label {
  width: 100%;
  text-align: center;
  margin-bottom: 0.12rem;
  margin-top: 0;
}
.rent-stats-chart-plot .rent-stats-chart-plan {
  margin-top: 0.3rem;
}

/* 街・駅情報 */
.town-info {
  padding: 1rem 0;
}
.town-info-block {
  margin-bottom: 1rem;
}
.town-info-block:last-child {
  margin-bottom: 0;
}
.town-info-ttl {
  font-size: 1rem;
  margin-bottom: 0.5rem;
}
h2.town-info-ttl {
  display: block;
  font-size: 1rem;
  font-weight: bold;
  line-height: inherit;
  text-align: left;
  color: var(--navy-ttl);
  padding: 0 0 0 0.7rem;
  margin: 0 0 0.5rem 0;
}
.town-info-subtitle {
  font-size: 0.9rem;
  color: var(--text-secondary, #666);
  margin: 0 0 0.5rem 0;
}
.town-info-contents {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--text-primary, #333);
}
.town-info-divider {
  border: none;
  border-top: 1px solid var(--border-subtle, #ddd);
  margin: 1.25rem 0;
}

@media screen and (max-width: 767px) {
  .rent-stats-chart-plot {
    width: 100%;
  }
  .rent-stats-chart .content-container,
  .town-info .town-info-inner,
  .shortcut-link.content-container,
  .selected-ward.content-container,
  .selected-conditions.content-container,
  .seo-property-cross-links.content-container,
  .recommended-history.content-container,
  #area-search .search-page-title-row.content-container,
  #route-search .search-page-title-row.content-container {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  #area-search .search-page-title-row > h1,
  #route-search .search-page-title-row > h1 {
    padding-inline: 0;
  }
  .selected-ward .button-wrap {
    display: flex;
    justify-content: center;
  }
}

/* エリア／路線駅検索: 絞り込みの下、「この条件で検索」と同じブロック内（その上）に選択した条件 */
:is(#area-search, #route-search) .do-search-btn-area--with-selected-conditions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}
/* 見出しは紺。各項目は項目名を金（文字色のみ・縦線なし）→罫線→値 */
:is(#area-search, #route-search) .do-search-btn-area .selected-conditions h4 {
  margin: 0 0 0.5rem;
  color: var(--navy-ttl, #061d3f);
  font-size: var(--font-body, 1rem);
  font-weight: bold;
}
:is(#area-search, #route-search) .selected-conditions > .inner {
  display: flex;
  flex-direction: column;
  gap: 0;
}
:is(#area-search, #route-search) .selected-conditions .condition-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  margin-bottom: 0.65rem;
}
:is(#area-search, #route-search) .selected-conditions .condition-item:last-child {
  margin-bottom: 0;
}
:is(#area-search, #route-search) .selected-conditions .condition-label {
  margin: 0;
  padding: 0 0 0.35rem 0;
  border-left: none;
  font-weight: bold;
  font-size: var(--font-small);
  color: var(--decorative-base, #bc9d12);
  border-bottom: 1px solid var(--border-base, #ddd);
}
:is(#area-search, #route-search) .selected-conditions .condition-value {
  margin: 0;
  font-size: var(--font-small);
  line-height: 1.6;
  color: var(--text-primary, #333);
}
:is(#area-search, #route-search) .selected-conditions .condition-error .condition-value {
  color: var(--text-red, #c62828);
}

/* エリア検索「選択したエリア」: 区ごとに縦並び（区名 → 罫線 → 全域／町名） */
#area-search .selected-ward.area-display > .inner {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 1rem;
}
#area-search .selected-ward.area-display .selected-area-ward-block {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.4rem;
  width: 100%;
}
#area-search .selected-ward.area-display .selected-area-ward-name {
  margin: 0;
  margin-right: 0;
  font-weight: bold;
  font-size: var(--font-small);
  color: var(--decorative-base);
}
#area-search .selected-ward.area-display hr.selected-area-ward-rule {
  border: none;
  border-top: 1px solid var(--border-base, #ddd);
  margin: 0;
}
#area-search .selected-ward.area-display .selected-area-towns {
  display: block;
  padding-bottom: 0;
  margin: 0;
}
#area-search .selected-ward.area-display .selected-area-towns > p {
  margin: 0;
  font-size: var(--font-small);
  line-height: 1.65;
}

/* 路線・エリア検索 PC: 選択サマリー（駅名・町名）を全幅に、検索ボタン列の空きを一覧で使う */
@media screen and (min-width: 768px) {
  #route-search .selected-ward.route-display,
  #area-search .selected-ward.area-display {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }
  #route-search .selected-ward.route-display > h4,
  #area-search .selected-ward.area-display > h4 {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  #route-search .selected-ward.route-display > .route-inner-wrpa,
  #area-search .selected-ward.area-display > .inner {
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
  }
  #route-search .selected-ward.route-display > .button-wrap,
  #area-search .selected-ward.area-display > .button-wrap {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-self: end;
    width: 100%;
    padding-left: 0;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
  }
}

/* 設備テンプレート（条件ヒット時） */
.facility-template {
  padding: 1rem 0;
}
.facility-template-ttl {
  font-size: 1rem;
  margin-bottom: 0.5rem;
}
h2.facility-template-ttl {
  display: block;
  font-size: 1rem;
  font-weight: bold;
  line-height: inherit;
  text-align: left;
  color: var(--navy-ttl);
  padding: 0 0 0 0.7rem;
  margin: 0 0 0.5rem 0;
}
.facility-template-subtitle {
  font-size: 0.9rem;
  color: var(--text-secondary, #666);
  margin: 0 0 0.5rem 0;
}
.facility-template-contents {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--text-primary, #333);
}
.rent-stats-chart-inner {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.85rem;
  overflow-x: auto;
  padding: 1.25rem 1rem 1rem;
  margin-top: 0.75rem;
  background: #f5f4ef;
  border-radius: 6px;
}
.rent-stats-chart-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 5vw;
  padding: 0 0.35rem;
  min-width: 2.75rem;
  max-width: 5.5rem;
}
.rent-stats-chart-label {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--text-primary, #444);
  margin-bottom: 0.35rem;
  white-space: nowrap;
}
.rent-stats-chart-label span {
  font-size: 0.65rem;
  font-weight: 400;
}
.rent-stats-chart-bar-wrap {
  width: 100%;
  height: var(--rent-chart-bar-height, 17rem);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: stretch;
  flex-shrink: 0;
}
.rent-stats-chart-bar {
  width: 66.666%;
  align-self: center;
  background: #d6c685;
  border-radius: 0;
  min-height: 2px;
  transition: height 0.3s ease;
}
.rent-stats-chart-item:not(.is-highlight) .rent-stats-chart-bar {
  background: #e2dab0;
}
.rent-stats-chart-item.is-highlight .rent-stats-chart-bar {
  background: #c9b87a;
}
.rent-stats-chart-item.is-highlight .rent-stats-chart-label {
  color: var(--text-primary, #333);
  font-weight: 700;
}
.rent-stats-chart-item.is-highlight .rent-stats-chart-plan {
  color: var(--text-primary, #333);
  font-weight: 700;
}
.rent-stats-chart-item.no-data .rent-stats-chart-bar {
  background: transparent;
}
.rent-stats-chart-item.no-data .rent-stats-chart-label {
  color: transparent;
}
.rent-stats-chart-item.no-data .rent-stats-chart-plan {
  color: var(--text-muted, #aaa);
}
.rent-stats-chart-plan {
  font-size: 0.7rem;
  margin-top: 0.35rem;
  color: var(--text-primary, #555);
  white-space: nowrap;
}

/* 家賃統計 */
.rent-statistics {
  margin-bottom: 1.5rem;
}
.rent-statistics-ttl {
  font-size: 1rem;
  font-weight: bold;
  margin: 0 0 0.5rem 0;
  color: var(--text-primary, #333);
}
.rent-statistics-table-wrap {
  overflow-x: auto;
}
.rent-statistics-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.rent-statistics-table th,
.rent-statistics-table td {
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--border-base, #ddd);
  text-align: left;
}
.rent-statistics-table th {
  background: var(--surface-light-1, #f5f5f5);
  font-weight: 600;
}
#detail .rent-statistics {
  margin: 1rem 0;
}
#detail .rent-statistics-ttl {
  font-size: 0.9rem;
}

/* 検索結果一覧: 絞り込み条件はスクロールなし（全体を表示） */

/* 検索結果一覧: 絞り込み28%左・メイン72%右、下部コンテンツをメイン幅に揃える */
@media screen and (min-width: 768px) {
  #result-list .pc-only-wrap {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
  }
  #result-list .pc-only-wrap .applied-conditions {
    flex: 0 0 calc(28% - 0.6rem);
    min-width: 0;
  }
  /* 検索ボタン: flex カラムの stretch に引き伸ばされないよう fit-content で動的幅 */
  #result-list .applied-conditions .button-wrap {
    display: flex;
    justify-content: center;
  }
  #result-list .applied-conditions .button-wrap button.do-search-btn {
    width: fit-content;
    white-space: nowrap;
  }
  #result-list .pc-only-wrap .main-contents {
    flex: 0 0 calc(72% - 0.6rem);
    min-width: 0;
  }
  #result-list .result-list-main-align-wrap {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
  }
  #result-list .result-list-main-align-wrap::before {
    content: '';
    flex: 0 0 calc(28% - 0.6rem);
    min-width: 0;
  }
  #result-list .result-list-main-align-inner {
    flex: 0 0 calc(72% - 0.6rem);
    min-width: 0;
  }
}

/* 物件詳細: 地図・空室一覧・パンくず・平均家賃をメインカラム幅に（サイドバーを含めない） */
@media screen and (min-width: 768px) {
  #detail .detail-main-width-wrap,
  #room-detail .detail-main-width-wrap {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
  }
  #detail .detail-main-width-inner,
  #room-detail .detail-main-width-inner {
    flex: 0 0 calc(72% - 0.6rem);
    min-width: 0;
  }
  #detail .detail-main-width-wrap::after,
  #room-detail .detail-main-width-wrap::after {
    content: '';
    flex: 0 0 calc(28% - 0.6rem);
    min-width: 0;
  }
}

/* h2.reco-ttl: h5.reco-ttl と同じ見た目にする */
h2.reco-ttl {
  display: block;
  font-size: var(--font-h5);
  font-weight: bold;
  line-height: inherit;
  text-align: left;
  color: var(--navy-ttl);
  padding: 0 0 0 1.5rem;
  margin: 0 0 0.75rem 0;
}

/* 本日の新着物件セクション */
.today-new-arrivals {
  margin-bottom: 1.5rem;
}

/* 周辺情報セクション */
.nearby-facilities-area {
  margin: 1.5rem 0;
}
.nearby-facilities-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.5rem;
}
@media screen and (max-width: 767px) {
  .nearby-facilities-grid {
    grid-template-columns: 1fr;
  }
}
.nearby-facility-group {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  padding: 0.8rem 1rem;
  overflow: hidden;
  min-width: 0;
}
.nearby-facility-type {
  font-size: 0.9rem;
  font-weight: bold;
  color: var(--navy-ttl, #2c3e50);
  margin: 0 0 0.5rem 0;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #e8e8e8;
}
.nearby-facility-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nearby-facility-list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.3rem 0;
  font-size: 0.85rem;
  border-bottom: 1px dotted #eee;
}
.nearby-facility-list li:last-child {
  border-bottom: none;
}
.nearby-facility-name {
  color: #333;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-right: 0.5rem;
}
.nearby-facility-distance {
  color: #888;
  font-size: 0.8rem;
  white-space: nowrap;
}

/* SEO-only visually hidden H1 */
.seo-h1-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Commons media badges */
.sidebar-badge-row .sidebar-badge.badge-commons-media {
  background: linear-gradient(to right, #e06000 0%, #FF8C00 100%);
  color: #fff;
  white-space: nowrap;
}
.inner .sidebar-badge-row.commons-media-row {
  flex-wrap: nowrap;
}

/* エリア・路線検索: 「絞り込み条件」見出し（h2）を明朝体に */
:is(#area-search, #route-search) section.from-area#filters > h2 {
  font-family: var(--font-serif);
}

/* 絞り込み条件: 行間を狭く・フォントサイズ14px */
.from-area .container .item-title {
  font-size: 14px;
  padding-top: 0.4rem;
}
.from-area .container .item-field {
  font-size: 14px;
  padding: 0.4rem 1rem;
}
.from-area .container .item-field ul.checkbox-area {
  line-height: 2;
}

/* エリア・路線 条件検索：間取り以降のチェックボックス文言を 14px（ul に var(--font-body) が当たり 16pt 相当に見えるため） */
:is(#area-search, #route-search)
  .from-area
  .container
  #conditions-visible-list
  > h5.item-title:nth-of-type(5)
  + .item-field
  ul.checkbox-area,
:is(#area-search, #route-search)
  .from-area
  .container
  #conditions-visible-list
  > h5.item-title:nth-of-type(6)
  + .item-field
  ul.checkbox-area,
:is(#area-search, #route-search)
  .from-area
  .container
  #conditions-hide-list
  .item-field
  ul.checkbox-area {
  font-size: 14px;
}

/* 検索結果ページ: .page-container の左右影を除去（フッターの濃紺背景が境界を担うため不要） */
@media screen and (min-width: 768px) {
  #results .page-container {
    box-shadow: none;
  }
}

/* エリア検索・路線検索: 見出し行（タイトル中央、クロスリンク右端） */
:is(#area-search, #route-search).search-content > .search-page-title-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 1rem;
  row-gap: 0.5rem;
}
:is(#area-search, #route-search).search-content .search-page-title-row > h1 {
  grid-column: 2;
  justify-self: center;
  min-width: 0;
  justify-content: center;
  text-align: center;
}
:is(#area-search, #route-search).search-content .search-page-title-row > h1 > span {
  padding-right: 0;
}
:is(#area-search, #route-search).search-content .search-page-cross-link {
  grid-column: 3;
  justify-self: end;
  align-self: center;
  font-family: var(--font-serif);
  font-size: var(--font-small);
  color: var(--link-default);
  text-decoration: none;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  :is(#area-search, #route-search).search-content > .search-page-title-row {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  :is(#area-search, #route-search).search-content .search-page-title-row > h1 {
    grid-column: 1;
  }
  :is(#area-search, #route-search).search-content .search-page-cross-link {
    grid-column: 1;
    justify-self: center;
    white-space: normal;
    text-align: center;
  }
}
:is(#area-search, #route-search).search-content .search-page-cross-link:hover {
  text-decoration: underline;
}

/* エリア・路線・閲覧履歴・お気に入り・お問い合わせ: ページ見出し（h1）を明朝体に */
:is(#area-search, #route-search).search-content .search-page-title-row > h1,
#history .content-container > h1,
#favorites > h1,
#contact > h1,
#contact-conf > h1,
#contact-complete > h1 {
  font-family: var(--font-serif);
}

/* エリア検索・路線検索 PC版スクロールエリア高さ拡張 */
@media screen and (min-width: 768px) {
  .pc-only .search-base-inputs .base-inputs-left,
  .search-base-inputs.pc-only .base-inputs-left {
    height: 30rem;
  }
  .pc-only .search-base-inputs .base-inputs-right,
  .search-base-inputs.pc-only .base-inputs-right {
    height: 30rem;
  }
  .search-base-inputs.pc-only .base-inputs-left.no-selection .input-list-primary.train,
  .pc-only .search-base-inputs .base-inputs-left.no-selection .input-list-primary.train {
    max-height: 26rem;
  }
  .search-base-inputs.pc-only .base-inputs-left .input-list-primary.train,
  .pc-only .search-base-inputs .base-inputs-left .input-list-primary.train {
    height: 22rem;
  }
}

/* 仲介手数料無料フィルター: テキストリンク風スタイル */
.brokerage-fee-filter-toggle {
  cursor: pointer;
  user-select: none;
}
.brokerage-fee-filter-toggle span {
  text-decoration: underline;
  transition: font-weight 0.15s ease;
}
.brokerage-fee-filter-toggle:hover span {
  font-weight: bold;
  text-decoration: none;
}
/* チェック済み（フィルター適用中）はボールドで下線なし */
.brokerage-fee-filter-toggle:has(input:checked) span {
  font-weight: bold;
  text-decoration: none;
}
.brokerage-fee-filter-toggle:has(input:checked):hover span {
  text-decoration: underline;
  font-weight: normal;
}

/* position:fixed + transform の中で touchmove 座標がズレる問題を修正
   width:100% なので left:50% + translateX(-50%) = left:0 と等価 */
#sticky-filter {
  left: 0;
  transform: none;
}

/* 絞り込み0件: 直下 button が absolute のままだと親の高さが潰れてはみ出す → 通常フローに戻す */
#sticky-filter > div.sticky-filter-refine-block--no-selected {
  padding-bottom: 0.65rem;
}

#sticky-filter > div.sticky-filter-refine-block--no-selected > button.js-refine-submit {
  position: static;
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0.35rem 0 0 auto;
  box-sizing: border-box;
}

/* 路線・駅を選択クリック後: 固定ヘッダーに隠れないよう「路線を選択してください」見出し位置で止める */
.inline-line-selector .js-inline-line-scroll-target {
  scroll-margin-top: calc(var(--fixed-header-height, 5.5rem) + 0.35rem);
}

@media screen and (min-width: 768px) {
  .inline-line-selector .js-inline-line-scroll-target {
    scroll-margin-top: calc(var(--fixed-header-height, 6.5rem) + 0.35rem);
  }
}

/* SP: components の .input-list label { padding-left: 1.5rem } が路線「全駅」行にも当たり 24px になるのを 8px に */
/* SP: 同じ .input-list label の上下 1rem を駅名リストだけ半分（0.5rem）に */
@media screen and (max-width: 767px) {
  .inline-line-selector .input-list .line-warp > h5 label {
    padding: 1rem 0 1rem 8px;
  }

  .inline-line-selector .input-list .line-warp .station-wrap .station-item label {
    padding: 0.5rem 0 0.5rem 1.5rem;
  }
}

/* SPフィルタースライダー: JS が .sp-touch-overlay を生成してタッチを処理する */

/* 検索結果: スマホ絞り込みオーバーレイ（#sticky-filter 外配置） */
@media screen and (max-width: 767px) {
  body#results #sp-inline-filter {
    position: fixed;
    inset: 0;
    z-index: 960;
    flex-direction: column;
    align-items: stretch;
    align-content: flex-start;
    background: var(--neutral-white, #fff);
    overflow: hidden;
    padding-top: calc(var(--fixed-header-height, 5.5rem) + 0.25rem);
    box-sizing: border-box;
  }

  body#results #sp-inline-filter form#sp-refine-form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    margin: 0;
  }

  body#results #sp-inline-filter .sp-filter-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 0.75rem;
  }

  body#results #sp-inline-filter .item-field {
    display: block;
  }

  body#results #sp-inline-filter .sp-filter-buttons {
    flex: 0 0 auto;
    flex-grow: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--border-base, #e0e0e0);
    background: var(--neutral-white, #fff);
  }

  /* 検索フォームの do-search-btn と同系統（未指定だと iOS 等で枠・背景が付かずテキストだけに見える） */
  body#results #sp-inline-filter .sp-filter-search-btn,
  body#results #sp-inline-filter .sp-filter-close-btn,
  #sp-inline-filter .sp-filter-search-btn,
  #sp-inline-filter .sp-filter-close-btn {
    flex: 0 0 auto;
    align-self: flex-end;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    min-height: 0;
    height: auto;
    margin: 0;
    padding: 0.45rem 1.1rem;
    font-size: var(--font-body-lg, 1rem);
    font-weight: bold;
    line-height: 1.35;
    text-align: center;
    white-space: nowrap;
    color: var(--primary-base);
    background-color: var(--neutral-white);
    border: 1.5px solid var(--decorative-base);
    border-radius: var(--radius-btn);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
  }

  body#results #sp-inline-filter .sp-rent-search-btn,
  #sp-inline-filter .sp-rent-search-btn {
    display: block;
    width: fit-content;
    max-width: 100%;
    min-height: 0;
    height: auto;
    margin: 0.5rem 0 0 auto;
    padding: 0.4rem 1rem;
    font-size: var(--font-body-lg, 1rem);
    font-weight: bold;
    line-height: 1.35;
    text-align: center;
    white-space: nowrap;
    color: var(--primary-base);
    background-color: var(--neutral-white);
    border: 1.5px solid var(--decorative-base);
    border-radius: var(--radius-btn);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
  }
}

/* 結果ページの SP オーバーレイ内スライダー: PC 用グローバル .slider-group { display:none } を打ち消す */
@media screen and (min-width: 768px) {
  #sp-inline-filter .slider-group {
    display: block;
  }
}

/* SP物件一覧: 間取り|面積|部屋番号のリンク色を本文色に */
.result-list-sell a.terms-link {
  color: inherit;
}

/* SP物件一覧: 建物セクション下の影線を復活 */
@media screen and (max-width: 767px) {
  .property-wrapper-sell {
    box-shadow: var(--shadow-result-list-bottom);
  }
}

@media screen and (max-width: 767px) {
  h1 {
    word-break: normal;
    overflow-wrap: anywhere;
    padding-inline: 1rem;
  }
}

.result-condition-head .result-condition-wrap .container .inner > h5,
.result-condition-head .result-condition-wrap .show-all-btn .hide-open-btn p,
.result-condition-head .result-condition-wrap .show-all-btn .hide-close-btn p {
  color: var(--primary-base);
  font-size: 0.875rem;
}

/* 開いた状態: overflow: visible にしてクリップを解除 */
.result-condition-head .result-condition-wrap .container.is-open {
  overflow: visible;
}

/* PC: サイドバーに絞り込みフォームがあるので「条件を変更」ボタンは不要 */
@media screen and (min-width: 768px) {
  .result-condition-head .result-condition-wrap .container > button.condition-change-btn {
    display: none;
  }
}

/* 絞り込み条件が0件: show-all が無いので折りたたみCSSを無効化し「条件を選択」を表示 */
.result-condition-head .result-condition-wrap .container.is-refine-only {
  max-height: none;
  overflow: visible;
  opacity: 1;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.result-condition-head .result-condition-wrap .container.is-refine-only > button {
  position: static;
  display: block;
  width: fit-content;
  margin: 0 0 0 auto;
}

@media screen and (max-width: 767px) {
  body#results #sticky-filter {
    top: calc(var(--results-sticky-offset, 0px) - 40vh);
  }

  body#results #sticky-filter.is-show {
    top: var(--results-sticky-offset, 0px);
  }

  body#results .result-condition-head .result-condition-wrap .container {
    padding-top: 0.5rem;
  }

  body#results .result-condition-head .result-condition-wrap .container > button {
    position: static;
    display: block;
    width: fit-content;
    margin: 0 0 0.4rem auto;
  }

  body#results .result-condition-head .result-condition-wrap .container > .change-condition-dual.change-condition-dual--button-row,
  body#results .result-condition-head .result-condition-wrap > .change-condition-dual {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin: 0 0 0.4rem;
    padding: 0.4rem 1rem 0;
  }

  body#results .result-condition-head .result-condition-wrap .container > .change-condition-dual.change-condition-dual--button-row > button,
  body#results .result-condition-head .result-condition-wrap > .change-condition-dual > button {
    position: static;
    width: auto;
    flex: 0 0 auto;
    margin: 0;
    padding: 0.15rem 0.5rem;
    font-size: var(--font-small);
    color: var(--primary-base);
    background-color: var(--neutral-white);
    border: 1px solid var(--primary-base);
    border-radius: var(--radius-xsmall);
    cursor: pointer;
  }
}

svg.condition-icon {
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  min-width: 0.9em;
  min-height: 0.9em;
  max-width: 0.9em;
  max-height: 0.9em;
  flex-shrink: 0;
  vertical-align: -0.1em;
  margin-right: 0.2em;
  fill: currentColor;
}

body#results .result-condition-head .result-condition-wrap .container > .change-condition-dual.change-condition-dual--button-row,
body#results .result-condition-head .result-condition-wrap > .change-condition-dual {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin: 0 0 0.4rem;
  padding: 0.4rem 1rem 0;
}

body#results .result-condition-head .result-condition-wrap .container > .change-condition-dual.change-condition-dual--button-row > button,
body#results .result-condition-head .result-condition-wrap > .change-condition-dual > button {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  flex: 0 0 auto;
  margin: 0;
  padding: 0.15rem 0.5rem;
  font-size: var(--font-small);
  color: var(--primary-base);
  background-color: var(--neutral-white);
  border: 1px solid var(--primary-base);
  border-radius: var(--radius-xsmall);
  cursor: pointer;
}

/* エリア検索: 区名に下線を付けてリンク風に */
#area-search .input-list-primary.area .innner > div label,
#area-search .input-list .inner.ward-item label,
#area-search .input-list-primary.area .innner > div label input[type="checkbox"],
#area-search .input-list .inner.ward-item label input[type="checkbox"] {
  cursor: pointer;
}
#area-search .input-list-primary.area .innner > div label > span:first-of-type,
#area-search .input-list .inner.ward-item label > span:first-of-type {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* 路線検索: 路線名に下線を付けてリンク風に */
#route-search .input-list-primary.train .innner > div label > span:first-of-type,
#route-search .input-list.train .inner label > span:first-of-type {
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

/* エリア名・路線名: ホバー時にテキスト部分（span）だけ背景色をつける */
#area-search .input-list .ward-item > label > span:first-of-type,
#area-search .input-list-primary.area .innner > div > label > span:first-of-type {
  border-radius: 0.25rem;
  padding: 0.1rem 0.25rem;
  transition: background-color 0.2s ease;
}
/* 路線検索: padding-left は train-colors の色マーカー用 1em を維持 */
#route-search .input-list.train .inner > label > span:first-of-type,
#route-search .input-list-primary.train .innner > div > label > span:first-of-type {
  border-radius: 0.25rem;
  padding-top: 0.1rem;
  padding-right: 0.25rem;
  padding-bottom: 0.1rem;
  transition: background-color 0.2s ease;
}
#area-search .input-list .ward-item > label:hover > span:first-of-type,
#area-search .input-list-primary.area .innner > div > label:hover > span:first-of-type,
#route-search .input-list.train .inner > label:hover > span:first-of-type,
#route-search .input-list-primary.train .innner > div > label:hover > span:first-of-type {
  background-color: #e4eaf2;
}
/* 路線検索PC右側: 駅ごとの物件数は表示する */
#route-search .pc-only .input-list-secondary.train .station-count,
#route-search .pc-only .input-list-secondary.train .station-wrap label p > span:last-child,
#route-search .pc-only .input-list-secondary.train .station-list-wrap label p > span:last-child {
  display: inline;
}
/* 路線検索PC右側: 路線名の先頭に路線カラーを表示 */
#route-search .pc-only .input-list-secondary.train .area-warp > h5 > span.line-name-only {
  position: relative;
  display: inline-block;
  padding-left: 1em;
}
#route-search .pc-only .input-list-secondary.train .area-warp > h5 > span.line-name-only::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0.5rem;
  height: 1.2em;
}
@supports (background-color: color-mix(in srgb, red 10%, white)) {
  #area-search .input-list .ward-item > label:hover > span:first-of-type,
  #area-search .input-list-primary.area .innner > div > label:hover > span:first-of-type,
  #route-search .input-list.train .inner > label:hover > span:first-of-type,
  #route-search .input-list-primary.train .innner > div > label:hover > span:first-of-type {
    background-color: color-mix(in srgb, var(--navy-ttl, #061D3F) 14%, var(--surface-base, #fff));
  }
}

/* 検索結果一覧: 選択したエリア/路線のブロック表示 */
.selection-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.selection-list .selection-block-name {
  color: var(--decorative-base);
  font-weight: 600;
  margin: 0 0 0.3rem;
}
.selection-list .selection-block-divider {
  border: none;
  border-top: 1px solid var(--decorative-base);
  margin: 0 0 0.3rem;
}
.selection-list .selection-block-items {
  margin: 0;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  #results .result-condition-wrap .selection-list.selection-list-area {
    max-height: 6.5rem;
    overflow-y: auto;
    padding-right: 0.25rem;
    -webkit-overflow-scrolling: touch;
  }
}

/* SP: 1行目に 20室表示 + ソート、2行目に 仲介手数料無料のみ */
@media screen and (max-width: 767px) {
  #result-list header.list-header .container {
    font-size: clamp(0.65rem, 3vw, 0.8rem);
  }
  #result-list header.list-header .list-header-controls {
    align-items: stretch;
  }
  #result-list header.list-header .list-header-controls-row {
    justify-content: space-between;
    gap: 0.35rem;
  }
  #result-list header.list-header .list-header-filter-row {
    justify-content: flex-start;
  }
  #result-list header.list-header .brokerage-fee-filter-toggle,
  #result-list header.list-header .select-wrap {
    white-space: nowrap;
  }

  #route-search .sp-only .input-list.train label > span:last-child::before {
    display: none;
    content: none;
  }
}

/* base-inputs-right 内の町名リストを PC でも2列に */
.inline-ward-selector .ward-wrap {
  grid-template-columns: repeat(2, 1fr) !important;
}

/* .ward-selector-search: do-search-btn と同じ見た目 */
.inline-ward-selector .ward-selector-footer .ward-selector-search {
  padding: 0.4rem 2vw;
  color: var(--primary-base);
  background-color: var(--neutral-white);
  border: 1.5px solid var(--decorative-base);
  border-radius: var(--radius-btn);
  font-weight: bold;
  cursor: pointer;
}

/* インライン路線・エリア: components の padding:1.2rem が効きすぎてフッタボタンが異常に高い → 通常のボタン高さに */
body#results .inline-line-selector .line-selector-footer,
body#results .inline-ward-selector .ward-selector-footer,
.inline-line-selector .line-selector-footer,
.inline-ward-selector .ward-selector-footer {
  padding: 0.45rem 0.75rem;
}

body#results .inline-line-selector .line-selector-footer .line-selector-search,
body#results .inline-ward-selector .ward-selector-footer .ward-selector-search,
.inline-line-selector .line-selector-footer .line-selector-search,
.inline-ward-selector .ward-selector-footer .ward-selector-search {
  padding: 0.4rem 1rem !important;
  min-height: 0 !important;
  line-height: 1.35;
  /* 絞り込みパネル上部の「この条件で検索」（do-search-btn / sp-rent-search-btn）と同じ */
  font-size: var(--font-body-lg);
  font-weight: bold;
  border-width: 1.5px;
  border-radius: var(--radius-btn);
  width: fit-content;
  min-width: fit-content;
  white-space: nowrap;
}

.inline-line-selector .line-selector-search .search-count-label,
.inline-line-selector .line-selector-search .search-count-number,
.inline-ward-selector .ward-selector-search .search-count-label,
.inline-ward-selector .ward-selector-search .search-count-number {
  font-size: inherit;
  font-weight: inherit;
}

/* SP: この条件で検索ボタンを左右5vw余白つきで全幅表示 */
@media screen and (max-width: 767px) {
  #area-search button.do-search-btn {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.2rem 0.35rem;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
    line-height: 1.4;
  }

  /* .do-search-btn-area 内ボタン */
  #area-search .do-search-btn-area,
  #route-search .do-search-btn-area {
    padding-left: 5vw;
    padding-right: 5vw;
  }
  #area-search .do-search-btn-area button.do-search-btn,
  #route-search .do-search-btn-area button.do-search-btn {
    width: 100%;
  }
  /* .button-wrap 内ボタン（選択した駅・エリアパネル） */
  #area-search .button-wrap,
  #route-search .button-wrap {
    padding-left: 5vw;
    padding-right: 5vw;
  }
  #area-search .button-wrap button.do-search-btn,
  #route-search .button-wrap button.do-search-btn {
    width: 100%;
  }
  /* 底部スクロールモーダルのボタンは .content-container 直下 */
  .search-bottom-modal .content-container {
    padding-left: 5vw;
    padding-right: 5vw;
  }
  .search-bottom-modal .content-container button.do-search-btn {
    width: 100%;
  }
  /* エリア／路線駅検索 SP: 下部固定バーを少し高くし、下側パディングでボタンを画面下端から少し上に */
  :is(#area-search, #route-search) > form > section.search-bottom-modal.bottom-modal {
    padding-top: 0.95rem;
    padding-bottom: max(1.95rem, calc(1.15rem + env(safe-area-inset-bottom, 0px)));
    box-sizing: border-box;
  }
}

.inline-ward-selector .js-inline-town-list.input-list,
.inline-ward-selector .base-inputs-right .input-list.js-inline-town-list,
.result-condition-wrap .inline-ward-selector .input-list.js-inline-town-list {
  display: flex !important;
  flex-direction: column !important;
}

/* 部屋詳細：表内の物件名行（敷金・礼金ブロック直上） */
#detail table.information-area.main-info tr.main-info-object-title-row {
  flex-wrap: nowrap;
}
#detail table.information-area.main-info tr.main-info-object-title-row th {
  /* 幅は components.css の col-1/col-2 の既定値に合わせる（敷金見出しと同幅） */
  flex: 0 0 auto;
}
#detail table.information-area.main-info tr.main-info-object-title-row td {
  background-color: #fff;
  word-break: break-word;
}
#detail table.information-area.main-info tr.main-info-object-title-row th {
  font-weight: 400;
}
#detail table.information-area.main-info tr.main-info-object-title-row td {
  font-weight: 700;
}
#detail .detail-map-section-title {
  margin-bottom: 0;
}
#detail .nearby-facilities-empty,
#detail .comment-empty-text,
#detail .review-empty-text {
  margin: 0;
  color: #666;
}

/* 部屋詳細：コメント枠・口コミ枠の左右 padding なし（components の padding:1rem を横だけ打ち消す） */
@media screen and (min-width: 768px) {
  #detail .detail-main-column section.comment-box.staff-message-box {
    padding-left: 0;
    padding-right: 0;
  }
  #detail .detail-main-column section.comment-box.staff-message-box > .container {
    padding-left: 0;
    padding-right: 0;
  }
}

/* 部屋詳細：コメント同士の区切り（物件コメント ⇄ スタッフコメント、スタッフ同士、「もっと見る」内） */
#detail section.comment-box.staff-message-box .container > .llist-inner + .llist-inner,
#detail section.comment-box.staff-message-box #staff-message-hide-list > .llist-inner:first-child,
#detail section.comment-box.staff-message-box #staff-message-hide-list .llist-inner + .llist-inner {
  border-top: 1px solid var(--border-base, #dedede);
  padding-top: 1rem;
  margin-top: 0;
}

@media screen and (min-width: 768px) {
  #detail .detail-main-flow > section.review-box.review-box-2.content-container {
    padding-left: 0;
    padding-right: 0;
  }
  #detail .detail-main-flow > section.review-box.review-box-2.content-container > .container {
    padding-left: 0;
    padding-right: 0;
  }
}

/* コメント・口コミ: 本文テキストを明朝・1pt大きく */
#detail .comment-box .container .llist-inner > p:not(.review-author):not(.comment-empty-text),
#detail .comment-box .review-content,
#detail .review-box .review-content {
  font-family: var(--font-serif);
  font-size: calc(var(--font-body) + 1pt);
}

/* 建物・部屋詳細：駅×条件・区×条件 SEO リンク */
.seo-property-cross-links {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.seo-property-cross-links .seo-cross-link-list {
  list-style: none;
  padding: 0;
  margin: 0 0 0.25rem 0;
}
.seo-property-cross-links .seo-cross-link-list a {
  font-size: 14px;
}
@media screen and (max-width: 767px) {
  .seo-property-cross-links .seo-cross-link-list a {
    line-height: 1.75;
    padding: 0.35em 0;
    display: inline-block;
  }
}
@media screen and (min-width: 768px) {
  .seo-property-cross-links .seo-cross-link-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem 1rem;
    margin-bottom: 0.75rem;
    align-items: start;
  }
  .seo-property-cross-links .seo-cross-link-list li {
    margin: 0;
    min-width: 0;
  }
}

#room-detail .page-container > .breadcrumbs.breadcrumbs-above-footer {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
@media screen and (max-width: 767px) {
  #room-detail > .page-container > .breadcrumbs.content-container.breadcrumbs-above-footer {
    padding-left: 0.5rem;
  }
}

/* =====================================================
   map-container カルーセル
===================================================== */
@layer overrides {
  /* 2枚目の帯（既定）: もともとの下方向フェード */
  #top {
    --top-first-ttl-band: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 1)   0%,
      rgba(255, 255, 255, 1)  40%,
      rgba(255, 255, 255, 0.5) 80%,
      rgba(255, 255, 255, 0)  100%
    );
    /*
     * 1枚目: 2枚目と同じストップ（0→40→80→100%）。80% だけ2枚目より不透過、100% は2枚目と同じ 0 で下辺に線が出ない。
     * 加減: --top-ttl-slide1-alpha-80 のみ（2枚目は 0.5）
     */
    --top-ttl-slide1-alpha-80: 0.68;
    --top-first-ttl-band-slide1: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 1)   0%,
      rgba(255, 255, 255, 1)  40%,
      rgba(255, 255, 255, var(--top-ttl-slide1-alpha-80)) 80%,
      rgba(255, 255, 255, 0)  100%
    );
  }

  /* コンテナ */
  #top .map-container {
    position: relative;
    overflow: hidden;
  }

  /* ビューポート（クリッピング） */
  #top .map-carousel-viewport {
    overflow: hidden;
    width: 100%;
  }

  /* トラック（横並びスライド） */
  #top .map-carousel-track {
    position: relative;
  }

  /* 各スライド */
  #top .map-carousel-item {
    display: none;
    width: 100%;
  }
  #top .map-carousel-item.is-current {
    display: block;
  }

  /* 入場（position: absolute でレイヤー上に乗せる） */
  #top .map-carousel-item.cs-enter-right,
  #top .map-carousel-item.cs-enter-left {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  #top .map-carousel-item.cs-enter-right {
    animation: cs-in-right 0.45s ease forwards;
  }
  #top .map-carousel-item.cs-enter-left {
    animation: cs-in-left 0.45s ease forwards;
  }

  /* 退場（in-flow のまま高さキープ） */
  #top .map-carousel-item.cs-leave-left {
    display: block;
    animation: cs-out-left 0.45s ease forwards;
  }
  #top .map-carousel-item.cs-leave-right {
    display: block;
    animation: cs-out-right 0.45s ease forwards;
  }

  /* prev / next ボタン */
  #top .map-carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 2.2rem;
    height: 2.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: rgba(255, 255, 255, 0.85);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    color: var(--navy-ttl, #061D3F);
  }
  #top .map-carousel-btn > svg {
    width: 1.4rem;
    height: 1.4rem;
    flex-shrink: 0;
  }
  #top .map-carousel-prev { left: 0.5rem; }
  #top .map-carousel-next { right: 0.5rem; }

  /* ドットインジケーター */
  #top .map-carousel-dots {
    position: absolute;
    bottom: 0.6rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0.5rem;
    z-index: 10;
  }
  #top .map-carousel-dot {
    width: 0.5rem;
    height: 0.5rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    cursor: pointer;
    transition: background 0.3s;
  }
  #top .map-carousel-dot.active {
    background: var(--primary-base);
  }

  /* =====================================================
     新スライド用スタイル（h1.top-first-ttl / gradient-bottom / ward-group）
  ===================================================== */
  #top h1.top-first-ttl {
    position: absolute;
    top: 0;
    left: 0;
    /* .map-link が position:relative のため、100% はコンテナ幅になる。ビューポート幅に合わせる */
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    box-sizing: border-box;
    display: block;
    color: var(--primary-base);
    font-family: var(--font-serif);
    font-weight: bold;
    text-align: center;
    padding: 0.5rem 1rem;
    background: var(--top-first-ttl-band);
    z-index: 2;
  }
  #top h1.top-first-ttl .main-copy {
    font-size: var(--font-body-xl);
  }
  #top h1.top-first-ttl .img-line {
    display: block;
    width: 70vw;
    margin: 0.5rem auto;
  }
  #top h1.top-first-ttl .sub-copy {
    font-size: var(--font-body);
  }

  /* Slide 1: 帯は2枚目より透過が弱いグラデのみ変更可（--top-first-ttl-band-slide1） */
  #top .map-carousel-item:nth-child(1) h1.top-first-ttl {
    background: var(--top-first-ttl-band-slide1);
    color: var(--primary-base, #0a213d);
    font-family: var(--font-serif);
  }
  #top .map-carousel-item:nth-child(1) h1.top-first-ttl .main-copy,
  #top .map-carousel-item:nth-child(1) h1.top-first-ttl .sub-copy {
    color: var(--primary-base, #0a213d);
    font-family: var(--font-serif);
  }

  #top .gradient-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1rem;
    background: linear-gradient(
      to top,
      rgba(255, 255, 255, 1)   0%,
      rgba(255, 255, 255, 0.5) 40%,
      rgba(255, 255, 255, 0)  100%
    );
    z-index: 2;
  }

  /* Slide 2: SP padding=0, overflow hidden で高さ固定時にgradient-bottomが正しい位置に来る */
  #top .map-carousel-item:nth-child(2) .map-link {
    padding: 0;
    overflow: hidden;
  }
  /* Slide 2: ::before は @layer外 で bg-image1 に差し替えるため、ここでは触らない */
  #top .map-carousel-item:nth-child(2) .map-link .map-wrap {
    background: none;
  }

  /* PC/SP ラッパー切替 */
  /* SP版: デフォルト表示・PC版: デフォルト非表示 */
  #top .ward4th-pc-wrap { display: none; }
  #top .ward4th-sp-wrap { display: block; }

  /* PC調整 */
  @media screen and (min-width: 768px) {
    #top h1.top-first-ttl .img-line {
      width: 20vw;
    }
    /* PC版を表示・SP版を非表示 */
    #top .ward4th-pc-wrap { display: block; }
    #top .ward4th-sp-wrap { display: none; }
    /* 新スライド（第1スライド）のみ: PC padding を参照CSS準拠に・PC地図背景 */
    #top .map-carousel-item:nth-child(2) .map-link {
      padding: 1.5rem 12rem 0;
    }
    #top .map-carousel-item:nth-child(2) .map-link .map-wrap {
      background: none;
    }
  }
}

/* Slide 2 PC/SP ラッパー切替（@layer外） */
#top .map-carousel-item:nth-child(2) .ward4th-pc-wrap { display: none; }
#top .map-carousel-item:nth-child(2) .ward4th-sp-wrap { display: block; }
@media screen and (min-width: 768px) {
  #top .map-carousel-item:nth-child(2) .ward4th-pc-wrap { display: block; }
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap { display: none; }
}
/* SP: map-container を親のpaddingから脱出させてビューポート全幅に */
@media screen and (max-width: 767px) {
  #top .map-container {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
  }
}
/* Slide 2 SP専用: @layer外で全プロパティ上書き（PC版には影響しない） */
@media screen and (max-width: 767px) {
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap .map-link-bg-wrap {
    width: 100%;
    margin: 0;
    padding: 0;
  }
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap .map-link {
    padding: 0;
    margin: 0;
    overflow: hidden;
    width: 100%;
  }
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap .map-wrap {
    margin: 0;
    padding: 0;
  }
  /* カルーセル高さ合わせで下端が見切れるため、SP のみ SVG を少し縮小（縦も比例で短くなる） */
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap .map-wrap .map-svg {
    width: 86%;
    max-width: 100%;
    height: auto;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  #top .map-carousel-item:nth-child(2) h1.top-first-ttl {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100vw;
    max-width: none;
    margin: 0;
    margin-left: calc(50% - 50vw);
    padding: 0.5rem 1rem;
    box-sizing: border-box;
    color: var(--primary-base);
    font-family: var(--font-serif);
    font-weight: bold;
    text-align: center;
    background: var(--top-first-ttl-band);
    z-index: 2;
  }
  #top .map-carousel-item:nth-child(2) .gradient-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1rem;
    margin: 0;
    background: linear-gradient(
      to top,
      rgba(255, 255, 255, 1)   0%,
      rgba(255, 255, 255, 0.5) 40%,
      rgba(255, 255, 255, 0)  100%
    );
    z-index: 2;
  }
}
/* Slide 2 PC: max-width 制限を解除（h1/gradient-bottom が100%幅になるように） */
@media screen and (min-width: 768px) {
  #top .map-carousel-item:nth-child(2) .map-link.content-container {
    max-width: none;
  }
}
/*
 * Slide 1 背景フェード: components の .map-link-bg-wrap::before は常時 animation 付きで、
 * display 切替後に Safari が再描画しない。.map-carousel-bg-fade 付与時だけ bgFadeIn を掛け、
 * JS でクラスを外して reflow してから付け直すと毎回アニメが最初から走る。
 */
#top .map-carousel-item:nth-child(1) .map-link-bg-wrap::before {
  opacity: 0;
  animation: none;
}
#top .map-carousel-item:nth-child(1) .map-link-bg-wrap.map-carousel-bg-fade::before {
  animation: bgFadeIn 5s ease-out forwards;
}

/* Slide 2: 4区カルーセル背景 */
#top .map-carousel-item:nth-child(2) .map-link-bg-wrap::before {
  background: url('/img/4th_bg.jpg') no-repeat center / cover;
  opacity: 1;
  animation: none;
}

/* カルーセル スライドアニメーション keyframes（@layer外） */
@keyframes cs-in-right {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}
@keyframes cs-in-left {
  from { transform: translateX(-100%); }
  to   { transform: translateX(0); }
}
@keyframes cs-out-left {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}
@keyframes cs-out-right {
  from { transform: translateX(0); }
  to   { transform: translateX(100%); }
}

/* =====================================================
   Slide 2 専用: ward-group スタイル（@layer外）
===================================================== */
#top .map-carousel-item:nth-child(2) .map-link .map-wrap .ward-group {
  transition: none;
}
#top .map-carousel-item:nth-child(2) .map-link .map-wrap .ward-group.is-active {
  transform: none;
  filter: none;
}
#top .map-carousel-item:nth-child(2) .map-link .map-wrap .ward-group .ward {
  fill: rgba(0, 0, 0, 0);
  stroke: var(--neutral-white);
  stroke-width: 0.2rem;
  vector-effect: non-scaling-stroke;
  transform: none;
  transform-box: initial;
  transform-origin: initial;
  transition: fill 0.4s ease;
  cursor: pointer;
}
#top .map-carousel-item:nth-child(2) .map-link .map-wrap .ward-group .ward.is-active {
  transform: none;
  fill: rgba(255, 255, 255, 0.4);
}
#top .map-carousel-item:nth-child(2) .map-link .map-wrap .ward-group .ward:hover {
  fill: rgba(255, 255, 255, 0.4);
}
#top .map-carousel-item:nth-child(2) .map-link .map-wrap .ward-group .ward-label {
  pointer-events: none;
  font-size: 2rem;
  font-weight: bold;
  fill: var(--primary-base);
  text-anchor: middle;
}
/* SP: 4区ラベル（ward-label）を右へ 40px */
@media screen and (max-width: 767px) {
  #top .map-carousel-item:nth-child(2) .ward4th-sp-wrap .map-link .map-wrap .ward-group .ward-label {
    transform: translateX(40px);
  }
}

/* 利用規約・プライバシー: flex+::before の縦線と .accent-line の border-left が二重にならないよう、@layer 外で components より後に上書き（!important は使わない） */
#privacy-page.privacy-policy h1.accent-line,
#privacy-page.privacy-policy h2.accent-line,
#terms-page.terms-of-service h1.accent-line,
#terms-page.terms-of-service h2.accent-line {
  border-left: none;
  border-inline-start: none;
  padding-left: 0;
  padding-inline-start: 0;
}

/* 縦線を ::before で text 行高に揃える（border-left だと padding なし時に短くなるため） */
#detail .staff-message-box > .reco-ttl.accent-line,
#detail .recommended-history > .reco-ttl.accent-line,
#detail .detail-map-section-title.reco-ttl.accent-line,
#detail .nearby-facilities-area > .reco-ttl.accent-line,
#detail .review-box-2 > .reco-ttl.accent-line,
#detail .recent-history > .reco-ttl.accent-line,
#top .recent-history > .reco-ttl.accent-line,
#result-list .recent-history > .reco-ttl.accent-line {
  position: relative;
  border-left: 4px solid transparent;
  padding: 0.5rem 0 0.5rem 0.7rem;
}
#detail .staff-message-box > .reco-ttl.accent-line::before,
#detail .recommended-history > .reco-ttl.accent-line::before,
#detail .detail-map-section-title.reco-ttl.accent-line::before,
#detail .nearby-facilities-area > .reco-ttl.accent-line::before,
#detail .review-box-2 > .reco-ttl.accent-line::before,
#detail .recent-history > .reco-ttl.accent-line::before,
#top .recent-history > .reco-ttl.accent-line::before,
#result-list .recent-history > .reco-ttl.accent-line::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--decorative-base);
}

/* 結果一覧の建物カード・特徴バッジ: PC は中央、SP は左（折り返し時も左端を揃える） */
@media screen and (min-width: 768px) {
  #result-list .property-wrapper-sell .sidebar-badge-row {
    justify-content: center;
  }
}

@media screen and (max-width: 767px) {
  #result-list .sidebar-badge-row,
  #result-list .property-wrapper-sell .sidebar-badge-row,
  #results .property-wrapper-sell .sidebar-badge-row {
    justify-content: flex-start;
  }
}

@media screen and (max-width: 767px) {
  #detail .review-box,
  #detail .comment-box { padding-left: 3px; padding-right: 3px; }
  #detail .review-box > .container,
  #detail .comment-box > .container { padding-left: 3px; padding-right: 3px; }
  #detail .nearby-facilities-empty,
  #building-detail .nearby-facilities-empty { padding-left: 3px; }
}

/* SP版 建物詳細ページ・物件詳細ページ 問い合わせボタン */
@media screen and (max-width: 767px) {
  #building-detail .building-sp-inquiry,
  #detail .room-top-sp-inquiry {
    padding: 0.8rem 1rem;
  }
  .building-sp-inquiry-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .building-sp-inquiry-list .sidebar-cta-btn {
    display: block;
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.5rem 0;
    border-radius: var(--radius-btn);
    text-decoration: none;
    background: #fff;
    color: var(--dark-blue);
    border: 2px solid var(--decorative-base);
    transition: background .2s, color .2s;
  }
  .building-sp-inquiry-list .sidebar-cta-btn.primary {
    background: var(--primary-light-1, #eaf0f8);
  }
}

/* 物件詳細 - 新着・申込ありバッジ + 賃料テキスト */
.features-wrap .badge-rent-text {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  flex-wrap: wrap;
  padding-bottom: 0.5rem;
}
.features-wrap .badge-rent-text .badge {
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 4px;
  color: #fff;
}
.features-wrap .badge-rent-text .badge-new { background: #dc2626; }
.features-wrap .badge-rent-text .badge-application { background: #ea580c; }

@media screen and (max-width: 767px) {
  .fav-button { padding-top: 3px; padding-bottom: 3px; }
}
