@charset "UTF-8";

/*
Theme Name: 公式2026_1.6.4
Theme URI: http://ethos-ltd.com
Description: 住まいるハウス公式サイト PC/SP統合レスポンシブテーマ。v1.3.1をベースにスマホ一覧・ナビ・運営者情報・Googleマップを刷新。
Version: 1.6.4
Author: Fumihiko Kiyosawa
Author URI: http://www.ethos-ltd.com/
*/

/* Desktop mode: 1024px and wider. */
@import url(css/index.css) screen and (min-width: 1024px), print;
@import url(css/webpage.css) screen and (min-width: 1024px), print;
@import url(css/detail.css) screen and (min-width: 1024px), print;
@import url(css/list.css) screen and (min-width: 1024px), print;

/* Mobile mode: 1023px and narrower. */
@import url(css/mobile-index.css) screen and (max-width: 1023px);
@import url(css/mobile-webpage.css) screen and (max-width: 1023px);
@import url(css/mobile-detail.css) screen and (max-width: 1023px);
@import url(css/mobile-list.css) screen and (max-width: 1023px);


/* Shared bridge for the single PC/SP PHP markup. */
@import url(css/responsive-bridge.css);

/* v1.4.1 mobile refinements */
@import url(css/mobile-modern.css) screen and (max-width: 1023px);

/* Markup helpers added for mobile cards; hidden in desktop table view. */
.mobile-area-label,
.mobile-price-label,
.mobile-rent-label,
.mobile-rent-area-label,
.mobile-meta-label { display: none; }


/* v1.4.3: phone banner centered and tappable on mobile */
#navi p.banner.smilehouse-phone-banner {
  text-align: center;
}
#navi .smilehouse-phone-banner a {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}
#navi .smilehouse-phone-banner img {
  display: block;
  margin: 0 auto;
}
#navi .smilehouse-phone-banner-label {
  display: none;
}
@media screen and (max-width: 767px) {
  #navi p.banner.smilehouse-phone-banner {
    margin: 18px 0 24px;
    text-align: center;
  }
  #navi .smilehouse-phone-banner a {
    padding: 4px 8px 7px;
    border-radius: 8px;
  }
  #navi .smilehouse-phone-banner img {
    width: 182px;
    max-width: 72vw;
    height: auto;
  }
  #navi .smilehouse-phone-banner-label {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #9b493c;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}


/* v1.4.6: mobile scroll fix
   Embedded Google Map remains visible, but does not capture swipe gestures.
   Use the "Googleマップで見る" link below the map for interaction. */
@media screen and (max-width: 1023px) {
  #aboutus .operator-map-embed iframe {
    pointer-events: none !important;
  }
}

/* v1.4.7: mobile scroll stability */
@media screen and (max-width: 1023px) {
  html {
    max-width: 100% !important;
    overflow-x: visible !important;
    touch-action: pan-y pinch-zoom;
  }
  body {
    max-width: 100% !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    touch-action: pan-y pinch-zoom;
  }
  #container, #contents, #main, #main_side, #navi,
  #sp_information, #spguide, #listtable, #listtable > tbody,
  #listtable > tbody > tr, #listtable > tbody > tr > td {
    touch-action: pan-y pinch-zoom;
  }
}


/* v1.4.8: official search-result table hardening
   Keep desktop search-result tables inside the legacy 725px content column. */
@media screen and (min-width: 1024px) {
  #listtable.search-result-table {
    width: 725px !important;
    max-width: 725px !important;
    table-layout: fixed !important;
  }
  #listtable.search-result-table th,
  #listtable.search-result-table td {
    overflow-wrap: anywhere;
    word-break: normal;
  }
  #listtable.search-result-table td.photo img {
    max-width: 105px;
    height: auto;
  }
}


/* v1.4.9 unified sort links */
.target-property-count{margin:12px 0 4px;font-weight:600;}
.property-sort-links{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:4px 0 12px;font-size:13px;}
.property-sort-links a{text-decoration:underline;text-underline-offset:2px}.property-sort-links .current{color:#111;font-weight:700;text-decoration:none}.sort-mobile{display:none}
@media(max-width:767px){.sort-desktop{display:none!important}.sort-mobile{display:flex!important;gap:7px 12px;font-size:13px}.sort-mobile .sort-group{white-space:nowrap}.sort-mobile .sort-arrow{display:inline-block;min-width:14px;text-align:center;text-decoration:underline;text-underline-offset:2px;color:#8b6f63}.sort-mobile .sort-arrow.current{color:#111;font-weight:800;text-decoration:none}.sort-mobile .sort-new{text-decoration:underline;text-underline-offset:2px}.sort-mobile .sort-new.current{text-decoration:none;color:#111;font-weight:700}}


/* v1.5.0 smartphone sort touch targets: arrows flank label */
@media (max-width:767px) {
  .property-sort-links.sort-mobile {
    display:flex !important;
    align-items:center;
    flex-wrap:wrap;
    column-gap:18px !important;
    row-gap:8px !important;
  }
  .sort-mobile .sort-group {
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
    gap:2px;
  }
  .sort-mobile .sort-label {
    display:inline-block;
    margin:0 2px;
    color:#333;
  }
  .sort-mobile .sort-arrow {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px !important;
    min-height:32px;
    padding:4px 6px;
    margin:-4px 0;
    box-sizing:border-box;
    text-decoration:underline;
    text-underline-offset:3px;
    color:#8b6f63;
    font-weight:400;
    line-height:1;
  }
  .sort-mobile .sort-arrow.current {
    color:#111;
    font-weight:800;
    text-decoration:none;
  }
  .sort-mobile .sort-new {
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:4px 2px;
    margin:-4px 0;
  }
}


/* compact smartphone sort links: keep groups on one line where possible */
@media (max-width:767px) {
  .property-sort-links.sort-mobile {
    flex-wrap:nowrap !important;
    column-gap:5px !important;
    row-gap:0 !important;
    font-size:12px !important;
    white-space:nowrap;
  }
  .sort-mobile .sort-group {
    gap:0 !important;
    margin:0 !important;
  }
  .sort-mobile .sort-label {
    margin:0 !important;
    padding:0 !important;
  }
  .sort-mobile .sort-arrow {
    min-width:18px !important;
    min-height:30px !important;
    padding:4px 1px !important;
    line-height:22px !important;
  }
  .sort-mobile .sort-new {
    margin-right:2px !important;
    white-space:nowrap;
  }
}

/* Search result count + conditions */
.search-result-meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:12px 0 4px;}
.search-result-meta .target-property-count{margin:0;flex:0 0 auto;}
.search-condition-summary{margin-left:auto;text-align:right;font-size:13px;line-height:1.6;color:#555;overflow-wrap:anywhere;}
@media screen and (max-width:1023px){.search-result-meta{display:block;margin:10px 0 5px}.search-condition-summary{display:block;margin:3px 0 0;text-align:left;font-size:12px;line-height:1.5}.search-result-meta .target-property-count{margin:0}}


/* v2026 compact railway/station search */
.sh-line-filter{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0;padding:0;list-style:none;align-items:flex-start}
.sh-line-group{display:block;margin:0;padding:0;max-width:100%}
.sh-line-group.is-open{flex-basis:100%;width:100%}
.sh-line-parent{display:flex;align-items:center;gap:3px;white-space:nowrap}
.sh-line-check{display:inline-flex;align-items:center;gap:4px;margin:0;cursor:pointer}
.sh-line-check input,.sh-station-check input{margin:0}
.sh-line-toggle{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:3px 4px;margin:0;color:#555;text-decoration:underline;font:inherit;line-height:1.2;cursor:pointer;white-space:nowrap}
.sh-line-toggle[aria-expanded="true"]{font-weight:600;text-decoration:none}
.sh-toggle-mark{font-size:.72em;margin-left:2px;display:inline-block;transition:transform .15s ease}
.sh-line-toggle[aria-expanded="true"] .sh-toggle-mark{transform:rotate(180deg)}
.sh-stations{margin:6px 0 2px 0;padding:8px 10px;background:#faf7f2;border:1px solid #e7dccd;border-radius:6px;display:flex;flex-wrap:wrap;gap:7px 14px}
.sh-stations[hidden]{display:none!important}
.sh-station-check{display:inline-flex;align-items:center;gap:4px;margin:0;white-space:nowrap;cursor:pointer}
@media (max-width:1023px){
  .sh-line-filter{gap:8px 10px}
  .sh-line-parent{gap:2px}
  .sh-line-toggle{padding:5px 4px;min-height:32px}
  .sh-stations{gap:8px 12px;padding:9px}
}


/* v2026 mobile search: aligned two-column area / railway layout */
@media screen and (max-width:1023px){
  /* Municipalities: fixed two-column grid so every row starts on the same axis. */
  #itiran_kensaku_tb ul.checkbox_list{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:12px;
    row-gap:7px;
    align-items:start;
    margin:0 !important;
    padding:0 !important;
  }
  #itiran_kensaku_tb ul.checkbox_list > li{
    float:none !important;
    width:auto !important;
    min-width:0;
    margin:0 !important;
    padding:0 !important;
    list-style:none;
  }
  #itiran_kensaku_tb ul.checkbox_list > li > label{
    display:flex;
    align-items:flex-start;
    gap:5px;
    min-width:0;
    line-height:1.35;
  }
  #itiran_kensaku_tb ul.checkbox_list > li input[type="checkbox"]{
    flex:0 0 auto;
    margin-top:1px;
  }

  /* Railways: same two-column rhythm as municipalities. */
  .sh-line-filter{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:12px;
    row-gap:7px;
    align-items:start;
    width:100%;
  }
  .sh-line-group{
    min-width:0;
    width:auto;
    max-width:none;
  }
  .sh-line-group.is-open{
    grid-column:1 / -1;
    width:100%;
  }
  .sh-line-parent{
    min-width:0;
    align-items:flex-start;
    white-space:normal;
  }
  .sh-line-check{
    min-width:0;
    align-items:flex-start;
    line-height:1.35;
  }
  .sh-line-check input{
    flex:0 0 auto;
    margin-top:1px;
  }
  .sh-line-toggle{
    flex:0 0 auto;
    padding:1px 2px;
    min-height:0;
    line-height:1.35;
  }
  .sh-stations{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:12px;
    row-gap:7px;
    width:100%;
    box-sizing:border-box;
  }
  .sh-station-check{
    min-width:0;
    white-space:normal;
    align-items:flex-start;
  }
}

/* v1.6.2 mobile railway spacing / station list */
@media screen and (max-width:1023px){
  .sh-line-filter{
    row-gap:3px !important;
  }
  .sh-line-check{
    line-height:1.25 !important;
  }
  .sh-line-toggle{
    line-height:1.25 !important;
  }
  .sh-stations{
    grid-template-columns:minmax(0,1fr) !important;
    row-gap:4px !important;
    column-gap:0 !important;
  }
  .sh-station-check{
    width:100%;
    line-height:1.3 !important;
  }
}

/* Collapsible location filters: numeric conditions stay visible above. */
.sh-search-section-toggle{
  appearance:none; -webkit-appearance:none; border:0; background:transparent; color:inherit;
  font:inherit; font-weight:600; padding:4px 2px; margin:0; cursor:pointer; line-height:1.35;
  text-align:center; width:100%;
}
.sh-search-section-mark{display:inline-block; margin-left:5px; font-size:.8em; transition:transform .15s ease;}
.sh-search-section-toggle[aria-expanded="true"] .sh-search-section-mark{transform:rotate(180deg);}
.sh-search-section-panel[hidden]{display:none !important;}
.sh-search-section-panel{padding:3px 0;}
@media screen and (max-width:1023px){
  .sh-search-section-toggle{line-height:1.25; padding:5px 0;}
  .sh-search-section-panel{padding:2px 0;}
}
