@charset "UTF-8";
/*
Theme Name: 事業用2026_1.3.7
Theme URI: http://ethos-ltd.com
Description: 事業用PC/SP統合レスポンシブテーマ。1024px以上は従来PC表示、1023px以下は従来SP表示を基準。
Version: 1.3.7
Author: Fumihiko Kiyosawa
Author URI: http://www.ethos-ltd.com/
*/

/* PC: サーバー上で実際に使われている従来CSSをそのまま読み込む */
@import url(css/index.css);
@import url(css/webpage.css);
@import url(css/detail.css);
@import url(css/list.css);

/* SP: 旧スマホテーマの実CSSを、1023px以下だけPC CSSの後から上書き */
@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);

/* 統合時に必要な最小限の差分 */
#sp_information,
#spguide { display: none; }

@media screen and (min-width: 1024px) {
  .smile-sp-only { display: none !important; }
}

@media screen and (max-width: 1023px) {
  html, body { max-width: 100%; }
  body { background-image: none; }

  /* PCの固定配置を解除。旧SPテーマ単体では存在しなかったPC指定を明示的にリセット */
  #header {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    position: relative;
    text-align: center;
  }
  #header h1 {
    position: static !important;
    left: auto !important;
    top: auto !important;
    padding: 4px 8px !important;
    box-sizing: border-box;
  }
  #header #logo {
    position: static !important;
    left: auto !important;
    top: auto !important;
    margin: 4px auto 8px !important;
  }
  #header #logo img {
    width: auto !important;
    max-width: 92% !important;
    height: auto !important;
  }
  #catch,
  #header #information { display: none !important; }

  #header_bar {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 6px 10px !important;
    box-sizing: border-box;
    background-image: none !important;
    background-color: #ff6565 !important;
  }
  #header_bar h2 { padding: 0 !important; text-align: center; }

  #sp_information {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    text-align: center;
  }
  #sp_information ul { margin: 0; padding: 0; }
  #sp_information li {
    display: inline-block;
    list-style: none;
    margin: 3px 8px;
  }
  #sp_information a { color: #333; text-decoration: underline; }
  #sp_information .tel a { font-weight: bold; font-size: 15px; }

  #spguide {
    display: block;
    width: 98%;
    margin: 6px auto 10px;
    text-align: left;
  }

  #container,
  #contents,
  #main,
  #main_side,
  #navi {
    float: none !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
  }
  #container { width: 100% !important; padding: 5px 2% !important; }
  #contents { width: 100% !important; margin: 0 !important; }
  #main { width: 100% !important; margin: 0 0 15px !important; }
  #main_side { width: 100% !important; margin: 10px 0 !important; }
  #navi { width: 100% !important; margin: 10px 0 !important; }

  /* カテゴリはヘッダー内spguideへ統合するので、左PCメニューはスマホでは重複表示しない */
  #g_navi { display: none !important; }

  /* PCテンプレートのままでもトップおすすめを2列にする */
  #main #recommend {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    gap: 0 !important;
  }
  #main #recommend > h2 {
    flex: 0 0 100% !important;
    width: 100% !important;
    box-sizing: border-box;
  }
  #main #recommend > dl.photo1,
  #main #recommend > dl.photo2,
  #main #recommend > dl.photo3,
  #main #recommend > dl.photo_1,
  #main #recommend > dl.photo_2 {
    float: none !important;
    width: 48% !important;
    margin: 5px 1% 12px !important;
    box-sizing: border-box;
  }
  #main #recommend > dl dt,
  #main #recommend > dl dt a { display: block; width: 100%; }
  #main #recommend > dl img {
    display: block;
    width: 100% !important;
    height: 31vw !important;
    max-height: 220px;
    min-height: 105px;
    object-fit: cover;
  }

  #footer { width: 100% !important; height: auto !important; box-sizing: border-box; }

  /* 固定幅の画像・地図・表を画面内へ */
  img { max-width: 100%; }
  iframe, .acf-map { max-width: 100% !important; }
  #webpage, #list, #detail { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
}

@media screen and (max-width: 520px) {
  #main #recommend > dl.photo1,
  #main #recommend > dl.photo2,
  #main #recommend > dl.photo3,
  #main #recommend > dl.photo_1,
  #main #recommend > dl.photo_2 {
    width: 48% !important;
  }
  #main #recommend > dl img {
    height: 31vw !important;
    min-height: 95px;
  }
  #sp_information li { margin: 2px 5px; font-size: 12px; }
}


/* =========================================================
   v1.1.4 Smartphone property-list cards
   - PC layout stays exactly as the server-base theme
   - Mobile: type emphasis / red property number / compact one-line address
   - Mobile: 地積・延床 labels and a pale comment panel
   ========================================================= */

/* Labels added to the PHP are mobile-only so the PC table stays unchanged. */
.mobile-area-label,
.mobile-price-label,
.mobile-rent-label,
.mobile-rent-area-label { display: none; }

@media screen and (max-width: 767px) {
  #listtable {
    display: block !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    margin: 8px 0 18px !important;
  }

  #listtable > tbody {
    display: block !important;
    width: 100% !important;
  }

  /* Hide the old six-column heading row on phones */
  #listtable > tbody > tr:first-child {
    display: none !important;
  }

  /* One property = one compact card */
  #listtable > tbody > tr:not(:first-child) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 108px !important;
    grid-template-areas:
      "status photo"
      "address photo"
      "price photo"
      "area photo"
      "comment comment" !important;
    column-gap: 13px !important;
    row-gap: 2px !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    box-sizing: border-box !important;
    margin: 0 0 12px !important;
    padding: 9px 10px 10px !important;
    border: 1px solid #ddd4c1 !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.06) !important;
    overflow: hidden !important;
  }

  #listtable > tbody > tr:not(:first-child) > td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
    vertical-align: top !important;
    line-height: 1.4 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  /* 売貸家 / 売アパート etc. + property number + publication status */
  #listtable td.status {
    grid-area: status !important;
    font-size: 11px !important;
    color: #777 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }
  #listtable td.status p {
    display: inline !important;
    margin: 0 7px 0 0 !important;
    white-space: nowrap !important;
  }
  #listtable td.status p:first-child {
    color: #3c352e !important;
    font-size: 14px !important;
    font-weight: 700 !important;
  }
  #listtable td.status .number {
    color: #c93a2f !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }

  /* 市区町村 + 町名は基本1行。長いときだけ自然に折り返す */
  #listtable td.address {
    grid-area: address !important;
    margin-top: 2px !important;
    color: #45413d !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
  }
  #listtable td.address .address-break {
    display: none !important;
  }
  #listtable td.address .location-area::after {
    content: " ";
  }

  #listtable td.price {
    grid-area: price !important;
    margin-top: 1px !important;
  }
  #listtable td.price p { margin: 0 !important; }
  #listtable td.price strong {
    color: #e05d00 !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
  }
  #listtable td.price {
    color: #555 !important;
    font-size: 11px !important;
  }
  /* 売買一覧: 金額の前に「価格」 / 賃貸一覧: 金額の前に「賃料」 */
  #listtable td.price .mobile-price-label,
  #listtable td.price .mobile-rent-label {
    display: inline-block !important;
    margin-right: 5px !important;
    color: #356b8d !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    vertical-align: baseline !important;
  }

  /* 地積・延床 */
  #listtable td.area {
    grid-area: area !important;
    margin-top: 3px !important;
    color: #555 !important;
    font-size: 11px !important;
    line-height: 1.55 !important;
  }
  #listtable td.area .area-row {
    display: inline-flex !important;
    align-items: baseline !important;
    white-space: nowrap !important;
    margin-right: 12px !important;
  }
  #listtable td.area {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    column-gap: 0 !important;
  }
  #listtable td.area .mobile-area-label {
    display: inline-block !important;
    min-width: 2.9em !important;
    margin-right: 3px !important;
    color: #356b8d !important;
    font-size: 11px !important;
    font-weight: 700 !important;
  }
  /* 賃貸一覧: 面積の前に「賃貸面積」 */
  #listtable td.area .mobile-rent-area-label {
    display: inline-block !important;
    margin-right: 5px !important;
    color: #356b8d !important;
    font-size: 11px !important;
    font-weight: 700 !important;
  }
  #listtable td.area strong {
    color: #47413c !important;
    font-size: 14px !important;
    font-weight: 700 !important;
  }
  #listtable td.area .area-break {
    display: none !important;
  }

  #listtable td.photo {
    grid-area: photo !important;
    align-self: start !important;
  }
  #listtable td.photo a {
    display: block !important;
    width: 108px !important;
  }
  #listtable td.photo img {
    display: block !important;
    width: 108px !important;
    height: 81px !important;
    max-width: none !important;
    object-fit: cover !important;
    border-radius: 4px !important;
  }

  /* Comment area: soft beige panel for quick scanning */
  #listtable td.listcoment {
    grid-area: comment !important;
    margin-top: 7px !important;
    padding: 7px 9px !important;
    border: 1px solid #eadbc4 !important;
    border-radius: 7px !important;
    background: #fcf8f1 !important;
    color: #514b45 !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
  }
  #listtable td.listcoment p { margin: 0 !important; }

  /* Keep sort/count compact above the cards */
  form[name="resort"] { margin: 4px 0 6px !important; }
  form[name="resort"] select {
    max-width: 100% !important;
    font-size: 14px !important;
  }
}

@media screen and (max-width: 380px) {
  #listtable > tbody > tr:not(:first-child) {
    grid-template-columns: minmax(0, 1fr) 102px !important;
    column-gap: 9px !important;
    padding: 8px !important;
  }
  #listtable td.photo a,
  #listtable td.photo img {
    width: 102px !important;
  }
  #listtable td.photo img {
    height: 76px !important;
  }
  #listtable td.status p { margin-right: 5px !important; }
  #listtable td.status p:first-child { font-size: 13px !important; }
  #listtable td.address { font-size: 15px !important; }
  #listtable td.price strong { font-size: 21px !important; }
}


/* =========================================================
   v1.1.5 Smartphone estate-type table fix
   - Reset desktop float/margin styles that survived into mobile
   - Use a stable two-column grid so labels/descriptions never overlap
   ========================================================= */
@media screen and (max-width: 767px) {
  #estate-type {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  #estate-type p {
    margin: 0 !important;
    padding: 5px 6px !important;
    box-sizing: border-box !important;
  }

  #estate-type dl {
    display: grid !important;
    grid-template-columns: 34% 66% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  #estate-type dt,
  #estate-type dd {
    float: none !important;
    clear: none !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 6px !important;
    box-sizing: border-box !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    border-top: 1px solid #333 !important;
  }

  #estate-type dt {
    border-right: 1px solid #333 !important;
    border-left: 0 !important;
  }

  #estate-type dd {
    border-left: 0 !important;
    border-right: 0 !important;
  }
}

/* =========================================================
   v1.1.6 Smartphone navigation refresh
   - Modern quick-contact bar with tap-to-call
   - Property categories presented as calm cards
   - Legacy red gradient navigation removed on mobile
   ========================================================= */
@media screen and (max-width: 1023px) {
  #sp_information {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 10px 3% 8px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    text-align: left !important;
  }

  #sp_information .sp-contact-primary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
  }

  #sp_information .sp-phone-button,
  #sp_information .sp-contact-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    box-sizing: border-box;
    border-radius: 8px;
    text-decoration: none !important;
    font-weight: 700;
    line-height: 1.2;
  }

  #sp_information .sp-phone-button {
    gap: 7px;
    padding: 8px 12px;
    color: #fff !important;
    background: #17365d;
    border: 1px solid #17365d;
    font-size: 17px;
    letter-spacing: .02em;
  }

  #sp_information .sp-phone-icon {
    font-size: 17px;
    line-height: 1;
  }

  #sp_information .sp-contact-button {
    padding: 8px 14px;
    color: #17365d !important;
    background: #fff;
    border: 1px solid #c7d2df;
    font-size: 14px;
    white-space: nowrap;
  }

  #sp_information .sp-contact-secondary {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-top: 7px;
    font-size: 12px;
    color: #666;
  }

  #sp_information .sp-contact-secondary a {
    position: relative;
    display: inline-block;
    padding: 2px 14px;
    color: #555 !important;
    font-size: 13px;
    font-weight: 500;
    text-decoration: underline !important;
    text-underline-offset: 3px;
  }

  #sp_information .sp-contact-secondary a + a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 1px;
    background: #ddd;
  }

  #spguide {
    display: block !important;
    width: 100% !important;
    margin: 4px 0 14px !important;
    padding: 0 3% !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  #spguide .sp-guide-section {
    display: block;
    width: 100%;
    margin: 0 0 15px;
  }

  #spguide .sp-guide-heading {
    margin: 0 0 7px !important;
    padding: 0 2px 6px !important;
    border: 0 !important;
    border-bottom: 2px solid #17365d !important;
    background: none !important;
    color: #17365d !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    text-indent: 0 !important;
    letter-spacing: .03em;
  }

  #spguide .sp-guide-card {
    position: relative;
    margin: 0 0 7px;
    padding: 10px 12px 9px;
    border: 1px solid #e4d7c5;
    border-radius: 9px;
    background: #fffdfa;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
    box-sizing: border-box;
  }

  #spguide .sp-guide-card h3 {
    position: relative;
    margin: 0 0 6px !important;
    padding: 0 22px 0 0 !important;
    border: 0 !important;
    background: none !important;
    color: #292929 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
  }

  #spguide .sp-guide-card h3::after {
    content: "›";
    position: absolute;
    right: 1px;
    top: -3px;
    color: #a89a88;
    font-size: 23px;
    font-weight: 400;
    line-height: 1;
  }

  #spguide .sp-guide-card ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 0 !important;
    padding: 0 !important;
  }

  #spguide .sp-guide-card li {
    display: block !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.5;
  }

  #spguide .sp-guide-card li a {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    color: #444 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
  }

  #spguide .sp-guide-card li a span {
    min-width: 20px;
    padding: 0 5px;
    border-radius: 10px;
    background: #f3eee6;
    color: #785d45;
    font-size: 11px;
    text-align: center;
  }

  #spguide .sp-content-links {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 0;
    padding: 0 2px;
  }

  #spguide .sp-content-links a {
    position: relative;
    display: inline-block;
    padding: 2px 12px;
    color: #555 !important;
    font-size: 13px;
    line-height: 1.6;
    text-decoration: none !important;
  }

  #spguide .sp-content-links a:first-child { padding-left: 0; }
  #spguide .sp-content-links a + a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 1px;
    background: #ddd;
  }

  /* Tap-to-call links in operator information blocks */
  #aboutus a[href^="tel:"] {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
}

@media screen and (max-width: 360px) {
  #sp_information .sp-phone-button { font-size: 15px; padding-left: 9px; padding-right: 9px; }
  #sp_information .sp-contact-button { font-size: 12px; padding-left: 9px; padding-right: 9px; }
  #spguide .sp-guide-card { padding-left: 10px; padding-right: 10px; }
  #spguide .sp-guide-card ul { gap: 4px 10px; }
}


/* =========================================================
   v1.1.7 Warm mobile accents + operator information refresh
   - Replace the strong navy accents with warm terracotta/neutral tones
   - Keep the site's orange/red/beige visual language consistent
   - Rebuild operator information for phones so the full width is used
   ========================================================= */

/* Desktop keeps the long-established operator-information markup. */
.aboutus-mobile { display: none; }

@media screen and (max-width: 1023px) {
  :root {
    --smile-accent: #b84f3f;
    --smile-accent-dark: #923f33;
    --smile-accent-soft: #d8b39e;
    --smile-ink: #3f352f;
    --smile-muted: #716961;
    --smile-beige: #fcf8f1;
    --smile-border: #e6d6c5;
  }

  /* Header quick-contact area: warm accent instead of the abrupt navy. */
  #sp_information .sp-phone-button {
    background: var(--smile-accent) !important;
    border-color: var(--smile-accent) !important;
    color: #fff !important;
    box-shadow: 0 1px 2px rgba(110, 55, 43, .12);
  }
  #sp_information .sp-phone-button:active {
    background: var(--smile-accent-dark) !important;
    border-color: var(--smile-accent-dark) !important;
  }
  #sp_information .sp-contact-button {
    color: var(--smile-accent-dark) !important;
    border-color: #d9aaa0 !important;
    background: #fffdfa !important;
  }

  /* Section headings become neutral with a soft warm underline. */
  #spguide .sp-guide-heading {
    color: var(--smile-ink) !important;
    border-bottom-color: var(--smile-accent-soft) !important;
  }
  #spguide .sp-guide-card {
    border-color: var(--smile-border) !important;
    background: #fffdfa !important;
  }
  #spguide .sp-guide-card h3::after {
    color: #b39480 !important;
  }
  #spguide .sp-guide-card li a span {
    background: #f5ede3 !important;
    color: #7b5948 !important;
  }

  /* Operator block: old DL layout is retained only for desktop. */
  #aboutus .aboutus-desktop { display: none !important; }
  #aboutus .aboutus-mobile { display: block !important; }

  #aboutus {
    width: 100% !important;
    margin: 12px 0 !important;
    border: 1px solid var(--smile-border) !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
  }

  #aboutus .title {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 9px 12px 9px 18px !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-bottom: 1px solid var(--smile-border) !important;
    background: var(--smile-beige) !important;
    color: var(--smile-ink) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    text-align: left !important;
    text-indent: 0 !important;
  }
  #aboutus .title::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 5px !important;
    height: auto !important;
    background: var(--smile-accent) !important;
  }

  #aboutus .aboutus-mobile {
    padding: 12px !important;
    color: var(--smile-ink) !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  #aboutus .operator-company {
    margin: 0 0 10px !important;
  }
  #aboutus .operator-company strong {
    display: block !important;
    margin-bottom: 2px !important;
    color: var(--smile-ink) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
  }
  #aboutus .operator-company span {
    display: block !important;
    color: var(--smile-muted) !important;
    font-size: 12px !important;
  }

  #aboutus .operator-meta {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    margin: 0 0 10px !important;
    border-top: 1px solid #eee5dc !important;
    border-left: 1px solid #eee5dc !important;
    border-radius: 6px !important;
    overflow: hidden !important;
  }
  #aboutus .operator-meta-item {
    min-width: 0 !important;
    padding: 7px 8px !important;
    box-sizing: border-box !important;
    border-right: 1px solid #eee5dc !important;
    border-bottom: 1px solid #eee5dc !important;
    background: #fff !important;
  }
  #aboutus .operator-meta-item:last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
  }

  #aboutus .operator-meta-label {
    display: block !important;
    margin-bottom: 1px !important;
    color: #8a7568 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
  }
  #aboutus .operator-meta-value,
  #aboutus .operator-meta-value a {
    display: block !important;
    color: var(--smile-ink) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    overflow-wrap: anywhere !important;
  }
  #aboutus .operator-meta-value a[href^="tel:"] {
    color: var(--smile-accent-dark) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 2px !important;
  }

  #aboutus .operator-license {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 0 9px !important;
    padding: 7px 9px !important;
    border-radius: 6px !important;
    background: var(--smile-beige) !important;
  }
  #aboutus .operator-license span {
    flex: 0 0 auto !important;
    color: #7b6a5e !important;
    font-size: 11px !important;
    font-weight: 700 !important;
  }
  #aboutus .operator-license strong {
    min-width: 0 !important;
    color: var(--smile-ink) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-align: right !important;
  }

  #aboutus .operator-map {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    height: auto !important;
    min-height: 38px !important;
    margin: 0 0 11px !important;
    padding: 8px 11px !important;
    box-sizing: border-box !important;
    border: 1px solid #d9aaa0 !important;
    border-radius: 7px !important;
    background: #fffdfa !important;
    color: var(--smile-accent-dark) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    text-indent: 0 !important;
  }
  #aboutus .operator-map .operator-map-arrow {
    color: #b98a7a !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
  }

  #aboutus .operator-groups {
    padding-top: 10px !important;
    border-top: 1px solid #eee5dc !important;
  }
  #aboutus .operator-groups-title {
    display: block !important;
    margin: 0 0 4px !important;
    color: var(--smile-ink) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }
  #aboutus .operator-groups ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 3px 12px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #aboutus .operator-groups li {
    position: relative !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 0 0 10px !important;
    color: var(--smile-muted) !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }
  #aboutus .operator-groups li:last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
  }

  #aboutus .operator-groups li::before {
    content: "" !important;
    position: absolute !important;
    left: 1px !important;
    top: .58em !important;
    width: 4px !important;
    height: 4px !important;
    border-radius: 50% !important;
    background: #c79a88 !important;
  }
}

@media screen and (max-width: 360px) {
  #aboutus .operator-meta {
    grid-template-columns: 1fr !important;
  }
  #aboutus .operator-license {
    display: block !important;
  }
  #aboutus .operator-license strong {
    display: block !important;
    margin-top: 2px !important;
    text-align: left !important;
  }
  #aboutus .operator-groups ul {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   v1.1.8 Embedded Google Map in mobile operator information
   - Show the actual map inside the operator card
   - Keep a clear external "Googleマップで見る" link below it
   ========================================================= */
@media screen and (max-width: 1023px) {
  #aboutus .operator-access {
    margin: 0 0 11px !important;
  }
  #aboutus .operator-access-title {
    display: block !important;
    margin: 0 0 6px !important;
    color: var(--smile-ink) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }
  #aboutus .operator-map-embed {
    position: relative !important;
    width: 100% !important;
    height: 205px !important;
    margin: 0 !important;
    border: 1px solid var(--smile-border) !important;
    border-radius: 8px 8px 0 0 !important;
    background: #f5f1ec !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  #aboutus .operator-map-embed iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }
  #aboutus .operator-map-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 8px 11px !important;
    box-sizing: border-box !important;
    border: 1px solid var(--smile-border) !important;
    border-top: 0 !important;
    border-radius: 0 0 8px 8px !important;
    background: var(--smile-beige) !important;
    color: var(--smile-accent-dark) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
  }
  #aboutus .operator-map-link .operator-map-arrow {
    color: #b98a7a !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
  }
}

@media screen and (max-width: 360px) {
  #aboutus .operator-map-embed {
    height: 185px !important;
  }
}


/* =========================================================
   v1.1.9 Sale price label
   - Mobile sale cards display 「価格」 before the amount.
   ========================================================= */


/* v1.1.10: make mobile navigation links more obviously tappable */
@media screen and (max-width: 767px) {
  #sp_information .sp-contact-secondary a {
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
  }
  #spguide .sp-guide-card li { font-size: 14px !important; }
  #spguide .sp-guide-card li a {
    text-decoration: underline !important;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
  }
}

/* v1.1.12: 公開/非公開ステータスはログインユーザーのみ表示 */


/* =========================================================
   v1.1.14 Smartphone property cards: photo on the right
   - Text information begins at the left edge for faster scanning
   - Photo remains fixed-size on the right
   - Comment remains full width beneath both columns
   ========================================================= */


/* v1.1.15: 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.1.16: 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.1.20: 物件一覧の並び替えをプルダウンからテキストリンクへ */
.property-sort-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 12px;
  margin: 7px 0 9px 2px;
  font-size: 13px;
  line-height: 1.7;
  text-align: left;
}
.property-sort-links a {
  color: #3f5360;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.property-sort-links a:hover { color: #b84f3f; }
.property-sort-links .current {
  color: #b84f3f;
  font-weight: 700;
}
@media screen and (max-width: 1023px) {
  .property-sort-links {
    gap: 4px 11px;
    margin: 7px 4px 10px;
    font-size: 14px;
  }
}


/* v1.2.2 sort links: count immediately above, compact arrows on smartphone */
.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;white-space:normal}
  .sort-mobile .sort-group{white-space:nowrap}.sort-mobile .sort-label{color:#333}
  .sort-mobile .sort-arrow{display:inline-block;min-width:14px;text-align:center;text-decoration:underline;text-underline-offset:2px;color:#8b6f63;font-weight:400}
  .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.2.3 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.3.3 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;}
}


/* v1.3.6: compact search-section summary in right column */
#itiran_kensaku_tb .sh-search-section-heading{vertical-align:middle;line-height:1.35}
#itiran_kensaku_tb .sh-search-section-summary-toggle{
  width:100%; min-height:42px; display:flex; align-items:center; justify-content:space-between;
  gap:8px; padding:7px 10px; border:1px solid #d4d4d4; border-radius:4px;
  background:#fff; color:#333; text-align:left; font:inherit; line-height:1.35; cursor:pointer;
}
#itiran_kensaku_tb .sh-search-section-summary-toggle:hover{background:#f7f7f7}
#itiran_kensaku_tb .sh-search-section-summary-text{min-width:0;overflow-wrap:anywhere}
#itiran_kensaku_tb .sh-search-section-summary-toggle .sh-search-section-mark{flex:0 0 auto;margin-left:auto}
#itiran_kensaku_tb .sh-search-section-summary-toggle[aria-expanded="true"] .sh-search-section-mark{transform:rotate(180deg)}
#itiran_kensaku_tb .sh-search-section-panel{margin-top:8px}
@media (max-width:767px){
  #itiran_kensaku_tb .sh-search-section-summary-toggle{min-height:46px;padding:7px 8px;font-size:13px}
}
