/* Use Roboto for numerals without changing the approved Japanese/Latin typefaces. */
@font-face {
  font-family: "Estate Roboto Digits";
  src: url("https://fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbWmT.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0030-0039, U+FF10-FF19;
}
@font-face {
  font-family: "Estate Roboto Digits";
  src: url("https://fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bWmT.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  unicode-range: U+0030-0039, U+FF10-FF19;
}
@font-face {
  font-family: "Estate Roboto Digits";
  src: url("https://fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYaammT.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range: U+0030-0039, U+FF10-FF19;
}
@font-face {
  font-family: "Estate Roboto Digits";
  src: url("https://fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjammT.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  unicode-range: U+0030-0039, U+FF10-FF19;
}
@font-face {
  font-family: "Estate Roboto Digits";
  src: url("https://fonts.gstatic.com/s/roboto/v51/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZEammT.ttf") format("truetype");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  unicode-range: U+0030-0039, U+FF10-FF19;
}

:root {
  --estate-navy: #1c4572;
  --estate-ink: #26333d;
  --estate-muted: #5f6d76;
  --estate-line: #1c4572;
  --estate-light: #f2f2f2;
  --estate-red: #d34e35;
  --estate-white: #fff;
}

html { overflow-x: hidden; }
body.estate-redesign {
  margin: 0;
  overflow-x: hidden;
  color: var(--estate-ink);
  background: #fff;
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  line-height: 1.75;
}
.estate-digit { font-family: "Estate Roboto Digits", Roboto, sans-serif; font-size: 1.1em; line-height: inherit; }
body.estate-redesign *, body.estate-redesign *::before, body.estate-redesign *::after { box-sizing: border-box; }
body.estate-redesign a { color: inherit; text-decoration: none; }
body.estate-redesign img { max-width: 100%; height: auto; }
.estate-inner { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }

/* Common header */
.estate-header { position: relative; z-index: 100; background: #fff; border-top: 7px solid var(--estate-navy); }
.estate-header__top { position: relative; height: 108px; display: flex; align-items: center; gap: 30px; }
.estate-header__logo { display: block; width: 280px; flex: 0 0 280px; }
.estate-header__logo img { display: block; width: 100%; }
.estate-header__services { align-self: flex-start; display: flex; gap: 12px; margin-left: auto; }
.estate-header__services a { display: flex; align-items: center; justify-content: center; height: 46px; padding: 0 18px; border-radius: 0 0 12px 12px; color: var(--estate-navy); background: #e8e8e8; font-size: 13px; font-weight: 700; white-space: nowrap; }
.estate-header__services a:first-child { width: 170px; }
.estate-header__services a:nth-child(2) { width: 234px; }
.estate-header__services a span { margin-left: 8px; font-size: 14px; }
.estate-header__tel { display: flex; align-items: center; gap: 10px; margin-left: -266px; margin-top: 44px; color: var(--estate-navy); }
.estate-header__tel img { width: 23px; height: 23px; }
.estate-header__tel > span { display: flex; flex-direction: column; line-height: 1.1; }
.estate-header__tel small { margin-bottom: 4px; font-size: 12px; letter-spacing: .04em; }
.estate-header__tel strong,
.estate-footer__phone { white-space: nowrap; }
.estate-header__tel strong { font-size: 28px; letter-spacing: .04em; white-space: nowrap; }
.estate-menu-toggle { display: none; }
.estate-menu-backdrop { display: none; }
.estate-global-nav { border-top: 1px solid #d5d9dc; border-bottom: 1px solid var(--estate-navy); background: #fff; }
.estate-global-nav__inner { display: grid; grid-template-columns: repeat(6, 1fr); }
.estate-global-nav__inner a { position: relative; min-height: 104px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--estate-navy); }
.estate-global-nav__inner a + a::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: #c5cdd3; }
.estate-global-nav__inner a:first-child { background: #fff; box-shadow: none; }
.estate-global-nav__inner img { width: 27px; height: 27px; object-fit: contain; margin-bottom: 4px; }
.estate-global-nav__inner img, .estate-header__tel img, .estate-home-search__type img { filter: invert(24%) sepia(28%) saturate(1690%) hue-rotate(171deg) brightness(88%) contrast(92%); }
.estate-global-nav__inner b { font-size: 15px; line-height: 1.25; }
.estate-global-nav__inner .estate-global-nav__external-label { display: flex; align-items: center; gap: 5px; }
.estate-global-nav__inner .estate-global-nav__external-icon { width: 10px; height: 11px; margin: 0; object-fit: contain; }
.estate-global-nav__inner small { margin-top: 2px; color: #68737b; font-size: 9px; letter-spacing: .17em; }
.estate-global-nav__services { display: none; }

/* Top hero and search */
.estate-home { padding: 0; }
.estate-hero { min-height: 360px; display: flex; align-items: center; color: #fff; background: linear-gradient(180deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .38) 52%, rgba(0, 0, 0, .12) 100%), url("assets/estate-redesign/DSC_8515-2_a.jpg") center 52% / cover no-repeat; }
.estate-hero__copy { padding: 42px 0; }
.estate-eyebrow { margin: 0; font-family: "adobe-caslon-pro", "Times New Roman", serif; font-size: 13px; letter-spacing: .16em; }
.estate-hero h1 { margin: 14px 0 16px; color: #fff; font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: clamp(36px, 4vw, 50px); font-weight: 600; line-height: 1.48; letter-spacing: .04em; }
.estate-hero__copy > p:last-child { margin: 0; color: #fff; font-size: 14px; font-weight: 500; }
.estate-home-search { background: #fff; }
.estate-home-search__type { display: grid; grid-template-columns: 1fr 1fr; border-inline: 1px solid var(--estate-navy); border-bottom: 1px solid var(--estate-navy); }
.estate-home-search__type button { min-height: 92px; display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; align-content: center; column-gap: 16px; padding: 10px 54px; border: 0; color: var(--estate-navy); background: #fff; cursor: pointer; box-shadow: none; text-shadow: none; }
.estate-home-search__type button + button { border-left: 1px solid var(--estate-navy); }
.estate-home-search__type img { grid-row: 1 / 3; align-self: center; width: 43px; height: 43px; object-fit: contain; }
.estate-home-search__type strong { align-self: end; font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: 20px; line-height: 1.2; }
.estate-home-search__type small { align-self: start; margin-top: 3px; font-size: 12px; }
.estate-search-panel { margin-top: 12px; padding: 0 0 26px; border: 1px solid var(--estate-navy); }
.estate-search-tabs { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 12px; border-bottom: 3px solid var(--estate-navy); }
.estate-search-tabs button { padding: 13px 20px; border: 0; background: #eee; color: var(--estate-navy); font: 700 15px/1.4 "Noto Sans JP", sans-serif; cursor: pointer; }
.estate-search-tabs button.is-active { background: var(--estate-navy); color: #fff; }
.estate-search-tabs button, .estate-search-tabs button.is-active { background-image: none !important; box-shadow: none !important; text-shadow: none !important; }
.estate-search-content { display: none; padding: 0 32px; }
.estate-search-content.is-active { display: block; }
.estate-search-content > p { margin: 0 0 8px; color: #485762; font-size: 12px; }
.estate-search-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px 30px; }
.estate-search-options label { min-width: 0; cursor: pointer; }
.estate-search-options input { position: absolute; opacity: 0; }
.estate-search-options span { position: relative; display: flex; align-items: center; min-height: 30px; padding-left: 28px; color: #273743; font-size: 12px; }
.estate-search-options span::before { content: ""; position: absolute; left: 0; width: 17px; height: 17px; border: 1px solid #7990a0; border-radius: 4px; background: #fff; }
.estate-search-options input:checked + span::before { content: ""; border-color: var(--estate-navy); background: #fff; box-shadow: none; }
.estate-search-options input:checked + span::after { content: ""; position: absolute; left: 5px; top: 50%; width: 5px; height: 9px; border: 0 solid var(--estate-navy); border-width: 0 2px 2px 0; border-radius: 0; transform: translateY(-60%) rotate(45deg); transform-origin: center; }
.estate-search-options__sp-break { display: none; }
.estate-search-submit { min-width: 330px; height: 42px; display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px auto 0; padding: 0 30px; border: 0; border-radius: 0; background: var(--estate-navy); color: #fff; font: 700 14px/1 "Noto Sans JP", sans-serif; cursor: pointer; }
.estate-search-submit img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
.estate-school-options { max-width: 760px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 10px auto; }
.estate-school-options label { display: grid; gap: 5px; color: var(--estate-navy); font-size: 13px; font-weight: 700; }
.estate-school-options select { width: 100%; height: 46px; padding: 0 42px 0 14px; border: 1px solid var(--estate-navy); border-radius: 0; background-color: #fff; color: #182733; font: inherit; }

/* Intro */
.estate-intro { padding: 54px 0 58px; background: #fff; }
.estate-intro__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
.estate-intro__text h2 { margin: 0 0 26px; color: var(--estate-navy); font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: 31px; line-height: 1.6; font-weight: 600; }
.estate-intro__text p { margin: 0; color: #4e5b64; font-size: 14px; line-height: 2; }
.estate-intro__text p + p { margin-top: 12px; }
.estate-intro__image { position: relative; overflow: hidden; margin: 0; border-radius: 15px; aspect-ratio: 3 / 2; }
.estate-intro__image img { width: 100%; height: 100%; object-fit: cover; }
.estate-intro__image::after { content: ""; position: absolute; inset: auto 0 0; height: 100px; background: linear-gradient(transparent, rgba(0,0,0,.72)); }
.estate-intro__image figcaption { position: absolute; z-index: 1; left: 25px; right: 25px; bottom: 18px; color: #fff; font-size: 16px; font-weight: 700; }
.estate-intro__facts { grid-column: 1 / 3; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.estate-intro__facts > div { min-height: 112px; display: grid; grid-template-columns: 105px 1px 1fr; align-items: center; gap: 20px; padding: 18px 22px; border: 1px solid var(--estate-navy); }
.estate-intro__facts strong { color: #1b5f94; font-family: "Kaisei Decol", "Noto Serif JP", serif; font-size: 40px; font-weight: 500; white-space: nowrap; }
.estate-intro__facts strong small { margin-left: 2px; font-size: 12px; }
.estate-intro__facts > div > span { align-self: stretch; width: 1px; background: var(--estate-navy); }
.estate-intro__facts p { margin: 0; color: #52606a; font-size: 12px; line-height: 1.7; }
.estate-intro__facts b { display: block; margin-bottom: 3px; color: var(--estate-ink); font-size: 14px; }

/* Recommended */
.estate-recommended { padding: 70px 0 86px; background: #fff; }
.estate-section-title { padding-top: 43px; text-align: center; }
.estate-section-title p { margin: 0 0 5px; color: var(--estate-navy); font-family: "adobe-caslon-pro", serif; font-size: 12px; letter-spacing: .16em; }
.estate-section-title h2 { margin: 0; color: var(--estate-navy); font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: 30px; line-height: 1.45; font-weight: 600; }
.estate-property-group { padding-top: 62px; }
.estate-property-group + .estate-property-group { margin-top: 72px; border-top: 1px solid var(--estate-navy); }
.estate-property-group__heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 22px; }
.estate-property-group__heading h3 { margin: 0 0 5px; color: var(--estate-navy); font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: 24px; font-weight: 600; }
.estate-property-group__heading h3 small { margin-left: 10px; font-family: "adobe-caslon-pro", serif; font-size: 11px; font-weight: 400; letter-spacing: .08em; }
.estate-property-group__heading p { margin: 0; color: #52606a; font-size: 12px; }
.estate-property-group__heading > a { flex: 0 0 auto; color: var(--estate-navy); font-size: 13px; font-weight: 700; }
.estate-property-group__heading > a span, .estate-property-group__more span { display: inline-block; margin-left: 10px; font-size: 24px; vertical-align: -2px; }
.estate-property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 24px; }
.estate-property-card { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--estate-navy); border-radius: 8px; background: #fff; }
.estate-property-card > a { height: 100%; display: flex; flex-direction: column; }
.estate-property-card__image { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: #eee; }
.estate-property-card__image img { width: 100%; height: 100%; object-fit: cover; }
.estate-property-card__image img { object-position: center center; }
body.estate-redesign .estate-property-card__image img { width: 100%; height: 100%; object-fit: cover; }
.estate-property-card__badge { position: absolute; z-index: 2; top: 10px; left: 10px; display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 6px; background: #fff; color: var(--estate-navy); font-size: 13px; line-height: 18px; font-weight: 700; }
.estate-property-card__image--square { background: #fff; }
body.estate-redesign .estate-property-card__image--square img { object-fit: contain !important; object-position: center !important; }
.estate-property-card__body { flex: 1; display: flex; flex-direction: column; padding: 17px 18px 12px; }
.estate-property-card__meta { margin: 0 0 6px; color: #1c5d8b; font-size: 11px; font-weight: 700; }
.estate-property-card h4 { margin: 0; color: #202e38; font-family: "Noto Serif JP", "Yu Mincho", serif; font-size: 16px; line-height: 1.65; font-weight: 700; }
.estate-property-card__price { margin: 13px 0 10px; color: var(--estate-red); font-size: 22px; line-height: 1.2; font-weight: 700; }
.estate-property-card__spec { display: flex; gap: 12px; justify-content: space-between; margin-top: auto; padding-top: 11px; border-top: 1px solid var(--estate-navy); color: #53616b; font-size: 11px; }
.estate-property-group__more { width: fit-content; min-width: 240px; min-height: 46px; display: flex; align-items: center; justify-content: center; margin: 28px auto 0; padding: 7px 22px; border-radius: 23px; background: var(--estate-navy); color: #fff !important; font-size: 13px; font-weight: 700; }

/* Common lower-page typography/layout */
.estate-redesign .page-header { margin: 0; padding: 46px 20px; background: #f2f2f2; }
.estate-redesign .page-header__title, .estate-redesign .entry-title { color: var(--estate-navy); font-family: "Noto Serif JP", "Yu Mincho", serif; font-weight: 600; }
.estate-redesign .sub-page-contents { padding-top: 48px; }
.estate-redesign .sub-page-contents p, .estate-redesign .single-estate-info, .estate-redesign .widget { font-family: "Noto Sans JP", sans-serif; }
.estate-redesign .btn, .estate-redesign button, .estate-redesign input, .estate-redesign select, .estate-redesign textarea { font-family: "Noto Sans JP", sans-serif; }
.estate-redesign .single-estate-info-item-title { background: #e5e5e5; color: var(--estate-navy); }

/* Estate archive and detail */
.estate-breadcrumb { padding: 17px 0 8.5px; color: #66747d; font-size: 11px; }
.estate-breadcrumb .breadcrumb { margin: 0; padding: 0; background: transparent; }
.estate-archive-title { padding: 42px 0 36px; border-top: 1px solid var(--estate-navy); border-bottom: 1px solid var(--estate-navy); }
.estate-archive-title p { margin: 0 0 4px; color: var(--estate-navy); font-family: "adobe-caslon-pro", serif; font-size: 12px; letter-spacing: .14em; }
.estate-archive-title h1 { margin: 0; color: var(--estate-navy); font-family: "Noto Serif JP", serif; font-size: 34px; font-weight: 600; }
.estate-archive-title span { color: #5c6871; font-size: 13px; }
.estate-archive { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 58px; padding-top: 52px; padding-bottom: 84px; }
.estate-filter-sidebar { grid-column: 1; position: sticky; top: 20px; align-self: start; }
.estate-filter-sidebar__toggle { display: none; }
.estate-filter-sidebar section { margin: 0 0 22px; overflow: hidden; border: 1px solid var(--estate-navy); border-radius: 8px; background: #fff; }
.estate-filter-sidebar h2 { margin: 0; padding: 13px 16px; border-bottom: 1px solid var(--estate-navy); background: #e3e3e3; color: var(--estate-navy); font-size: 16px; }
.estate-filter-sidebar section > nav { padding: 5px 15px 12px; }
.estate-filter-sidebar nav a { display: flex; justify-content: space-between; align-items: flex-start; min-height: 45.5px; padding: 10px 3px; border-bottom: 1px solid var(--estate-navy); color: #26333d; font-size: 14px; font-weight: 600; line-height: 24.5px; }
.estate-filter-sidebar nav a.is-child { min-height: 43.75px; padding: 10px 3px 10px 18px; font-size: 13px; font-weight: 500; line-height: 22.75px; }
.estate-filter-sidebar nav a b { color: inherit; font-size: 14px; font-weight: 900; line-height: inherit; }
.estate-filter-sidebar nav a.is-active,
.estate-filter-sidebar nav a.is-active b { color: #b86a28; }
.estate-filter-sidebar__areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 13px; }
.estate-filter-sidebar .estate-filter-sidebar__areas a { min-height: 38px; padding: 8px 1px; border-color: #8997a1; font-size: 13px; font-weight: 400; line-height: 21px; }
.estate-filter-sidebar__areas a span { color: #53636e; white-space: nowrap; }
.estate-filter-sidebar__area-heading {
  grid-column: 1 / -1;
  margin: 0;
  padding: 12px 1px 7px;
  border-bottom: 2px solid var(--estate-navy);
  color: var(--estate-navy);
  font-size: 15px;
  font-weight: 700;
  line-height: 24px;
}
.estate-filter-sidebar__area-heading:not(:first-child) { margin-top: 8px; }
.estate-filter-sidebar .estate-filter-sidebar__areas a.estate-filter-sidebar__area-group { min-height: 58px; align-items: flex-start; }
.estate-filter-sidebar__area-group strong { color: var(--estate-navy); font: 600 13px/20px var(--estate-body-font); }
.estate-filter-sidebar__area-group strong span { display: block; color: inherit; font: inherit; }
.estate-filter-sidebar__more { display: block; margin: 0 15px 14px; padding: 10px 0; border-bottom: 1px solid var(--estate-navy); color: var(--estate-navy); font-size: 13px; font-weight: 700; line-height: 22.75px; text-align: left; }
.estate-filter-sidebar__topics nav { padding: 0; }
.estate-filter-sidebar__topics nav a { min-height: 0; padding: 14px 16px; border: 0; color: var(--estate-navy); font-size: 13px; font-weight: 700; line-height: 22.75px; }
.estate-archive__main { min-width: 0; }
.estate-archive__heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 22px; }
.estate-archive__heading small { color: var(--estate-red); font-size: 12px; font-weight: 700; }
.estate-archive__heading h2 { margin: 2px 0 0; color: var(--estate-navy); font-family: "Noto Serif JP", serif; font-size: 29px; font-weight: 600; }
.estate-archive__selected-area { white-space: normal; }
.estate-archive__heading h2.has-selected-area { line-height: 1.35; }
.estate-archive__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.estate-archive__sort { display: flex; align-items: center; gap: 10px; color: #5e6b74; font-size: 12px; }
.estate-archive__sort label { display: flex; align-items: center; height: 38px; margin: 0; line-height: 1; white-space: nowrap; }
.estate-archive__sort select { width: 180px; height: 38px; padding: 0 12px; border: 1px solid var(--estate-navy); border-radius: 0; background: #fff; color: #34434d; font-family: "Noto Sans JP", sans-serif; font-size: 12px; }
.estate-archive .estate-property-card__image { height: 225px; }
/* Keep the price separator attached to the price; equal-row slack belongs below the details. */
.estate-archive .estate-property-card__spec { margin-top: 0; }
.estate-property-card__archive-spec { margin: 10px 0 0; border-top: 1px solid var(--estate-navy); font-size: 10px; }
.estate-property-card__archive-spec div { display: grid; grid-template-columns: 54px minmax(0, 1fr); border-bottom: 1px solid #c4cdd3; }
.estate-property-card__archive-spec div:last-child { border-bottom: 0; }
.estate-property-card__archive-spec dt,
.estate-property-card__archive-spec dd { margin: 0; padding: 5px 6px; }
.estate-property-card__archive-spec dt { color: var(--estate-navy); font-weight: 700; }
.estate-property-card__archive-spec dd { color: #465660; }
.estate-infinite-scroll { min-height: 48px; margin-top: 20px; display: grid; place-items: center; }
.estate-infinite-scroll[hidden] { display: none; }
.estate-infinite-scroll__status { color: var(--estate-navy); font-size: 13px; font-weight: 600; }
.estate-infinite-scroll__status::after { content: "…"; display: inline-block; width: 1.5em; animation: estate-loading-pulse 1s steps(3, end) infinite; overflow: hidden; vertical-align: bottom; }
@keyframes estate-loading-pulse { from { width: 0; } to { width: 1.5em; } }

.estate-detail__title { padding: 36px 0 32px; border-block: 1px solid var(--estate-navy); }
.estate-detail__title-grid { display: grid; grid-template-columns: minmax(0, 1fr) 560px; gap: 36px; align-items: end; }
.estate-detail__kind { margin: 0 0 6px; color: var(--estate-red); font-size: 12px; font-weight: 700; }
.estate-detail__title h1 { margin: 0; color: var(--estate-navy); font-family: "Noto Serif JP", serif; font-size: 31px; line-height: 1.5; font-weight: 600; }
.estate-detail__location { margin: 8px 0 0; color: #5b6871; font-size: 14px; }
.estate-detail__summary { display: grid; grid-template-columns: 190px 1px 1fr; gap: 20px; align-items: center; padding-left: 26px; border-left: 1px solid var(--estate-navy); }
.estate-detail__price { margin: 0; color: var(--estate-red); font-size: 30px; font-weight: 700; }
.estate-detail__summary dl { grid-column: 3; display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; }
.estate-detail__summary dl div { min-width: 0; padding: 0 11px; border-left: 1px solid #9ba8b0; }
.estate-detail__summary dt { color: #5e6b74; font-size: 10px; }
.estate-detail__summary dd { margin: 2px 0 0; color: var(--estate-navy); font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.estate-detail__summary > a { grid-column: 1 / 4; display: block; padding: 11px; background: var(--estate-navy); color: #fff !important; text-align: center; font-size: 12px; font-weight: 700; }
.estate-detail__layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 58px; padding-top: 48px; padding-bottom: 0; }
.estate-detail__layout .estate-detail__main { grid-column: 2; min-width: 0; }
.estate-detail__layout .estate-filter-sidebar { grid-column: 1; grid-row: 1; }
.estate-detail__gallery { display: grid; gap: 26px; }
.estate-detail__gallery { width: 540px; max-width: 100%; }
.estate-detail__gallery figure { margin: 0; }
.estate-detail__gallery img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.estate-detail__content-images { display: grid; gap: 26px; }
.estate-detail__content-images p, .estate-detail__content-images figure { margin: 0; }
.estate-detail__content-images img { display: block; width: auto; max-width: 100%; height: auto; margin: 0 auto; }
.estate-detail__overview { margin-top: 70px; padding-top: 52px; border-top: 1px solid var(--estate-navy); }
.estate-detail__overview > h2, .estate-detail__contact h2 { margin: 4px 0 25px; color: var(--estate-navy); font-family: "Noto Serif JP", serif; font-size: 28px; font-weight: 600; }
.estate-detail__overview .estate-eyebrow, .estate-detail__contact .estate-eyebrow { color: var(--estate-navy); }
.estate-detail__overview table { width: 100%; border-collapse: collapse; font-size: 13px; }
.estate-detail__overview th, .estate-detail__overview td { padding: 14px 16px; border: 1px solid #8395a2; text-align: left; vertical-align: top; }
.estate-detail__overview th { width: 180px; background: #e5e5e5; color: var(--estate-navy); font-weight: 700; }
.estate-detail__overview td { background: #fff; color: #34434d; }
.estate-detail__contact { margin-top: 78px; padding: 62px 0 80px; border-top: 1px solid var(--estate-navy); }
.estate-detail__contact > header { margin-bottom: 30px; text-align: center; }
.estate-detail__contact > header span { color: #5c6871; font-size: 13px; }
.estate-detail__contact .wpcf7 { width: 100%; }
.estate-detail__contact table { width: 100%; border-collapse: collapse; }
.estate-detail__contact th, .estate-detail__contact td { padding: 14px 18px; border: 1px solid #8395a2; vertical-align: top; }
.estate-detail__contact th { width: 220px; background: #e5e5e5; color: var(--estate-navy); }
.estate-detail__contact td { background: #fff; }
.estate-detail__contact input[type="text"], .estate-detail__contact input[type="email"], .estate-detail__contact input[type="tel"], .estate-detail__contact input[type="date"], .estate-detail__contact select, .estate-detail__contact textarea { max-width: 100%; border: 1px solid #8395a2; background: #fff; }
.estate-detail__contracted { margin: 60px 0; padding: 24px; border: 1px solid var(--estate-navy); }

/* Seller / broker guide */
.estate-guide__layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 58px; padding-top: 52px; padding-bottom: 90px; }
.estate-guide__layout .estate-filter-sidebar { grid-column: 1; grid-row: 1; }
.estate-guide__main { grid-column: 2; min-width: 0; color: var(--estate-ink); font-family: var(--estate-body-font); }
.estate-guide__main .estate-eyebrow { margin: 0 0 5px; color: #215c89; font-family: var(--estate-number-font); font-size: 12px; letter-spacing: .14em; }
.estate-guide__main h2 { margin: 0 0 22px; color: var(--estate-navy); font-family: var(--estate-display-font); font-size: 28px; font-weight: 600; line-height: 1.45; }
.estate-guide__main p { color: var(--estate-muted); font-size: 15px; line-height: 2; }
.estate-guide__intro { padding-bottom: 48px; border-bottom: 2px solid var(--estate-navy); }
.estate-guide__intro p:not(.estate-eyebrow) { margin: 0 0 14px; }
.estate-guide__intro p:last-child { margin-bottom: 0; }
.estate-guide__summary-list { margin: 16px 0; padding: 0; list-style: none; }
.estate-guide__summary-list li { position: relative; margin: 8px 0; padding-left: 1.25em; color: var(--estate-ink); font-size: 15px; line-height: 1.8; }
.estate-guide__summary-list li::before { position: absolute; left: 0; color: var(--estate-navy); content: "・"; font-weight: 700; }
.estate-guide__sp-break { display: none; }
.estate-guide__types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 42px; }
.estate-guide__type { overflow: hidden; border: 1px solid var(--estate-navy); border-radius: 8px; background: #fff; }
.estate-guide__type .estate-guide__number { margin: 0; padding: 11px 20px 5px; background: var(--estate-navy); color: #fff; font-family: var(--estate-number-font); font-size: 13px; letter-spacing: .15em; line-height: 1.4; }
.estate-guide__type h2 { margin: 0; padding: 0 20px 12px; background: var(--estate-navy); color: #fff; font-size: 25px; }
.estate-guide__type .estate-guide__lead { min-height: 0; margin: 0; padding: 15px 20px; color: var(--estate-ink); font-size: 14px; font-weight: 600; line-height: 1.8; }
.estate-guide__type dl { margin: 0; border-top: 1px solid var(--estate-navy); }
.estate-guide__type dl div { display: grid; grid-template-columns: 110px minmax(0, 1fr); border-bottom: 1px solid #a9b4bc; }
.estate-guide__type dl div:last-child { border-bottom: 0; }
.estate-guide__type dt, .estate-guide__type dd { margin: 0; padding: 13px 14px; font-size: 13px; line-height: 1.7; }
.estate-guide__type dt { background: #e5e5e5; color: var(--estate-navy); font-weight: 700; }
.estate-guide__type dd { color: var(--estate-ink); }
.estate-guide__comparison, .estate-guide__choice { margin-top: 64px; padding-top: 48px; border-top: 2px solid var(--estate-navy); }
.estate-guide__table-wrap { overflow-x: auto; }
.estate-guide__comparison table { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 1.7; }
.estate-guide__comparison th, .estate-guide__comparison td { padding: 15px 16px; border: 1px solid #8395a2; text-align: left; vertical-align: top; }
.estate-guide__comparison thead th { background: var(--estate-navy); color: #fff; text-align: center; }
.estate-guide__comparison tbody th { width: 165px; background: #e5e5e5; color: var(--estate-navy); }
.estate-guide__comparison tbody td { width: calc((100% - 165px) / 2); color: var(--estate-ink); }
.estate-guide__note { margin: 13px 0 0; font-size: 12px !important; line-height: 1.8 !important; }
.estate-guide__choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.estate-guide__choice-grid > div { padding: 22px 24px; border: 1px solid var(--estate-navy); border-radius: 8px; }
.estate-guide__choice-grid h3 { margin: 0 0 10px; color: var(--estate-navy); font-size: 17px; font-weight: 700; line-height: 1.6; }
.estate-guide__choice-grid p { margin: 0; font-size: 14px; line-height: 1.85; }
.estate-guide__conclusion { margin: 24px 0 0; }
.estate-guide__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 36px; }
.estate-guide__links a { display: flex; justify-content: center; align-items: center; min-height: 54px; background: var(--estate-navy); color: #fff !important; font-size: 15px; font-weight: 700; }
.estate-guide__links a span { margin-left: 18px; font-size: 24px; line-height: 1; }

/* Figma detail contact form */
.estate-detail__layout > .estate-detail__contact {
  grid-column: 1 / -1;
  width: 900px;
  margin: 80px auto 0;
  padding: 58px 0 80px;
  border-top: 1px solid var(--estate-navy);
}
.estate-detail__contact .wpcf7-form {
  border: 1px solid var(--estate-navy);
  background: #fff;
}
.estate-detail__contact .wpcf7-form > div[style] { display: none !important; }
.estate-detail__contact .form-item {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  margin: 0;
  border-bottom: 1px dashed var(--estate-navy);
}
.estate-detail__contact .form-title,
.estate-detail__contact .form-content {
  box-sizing: border-box;
  width: auto !important;
  min-width: 0;
  border: 0 !important;
}
.estate-detail__contact .form-title {
  padding: 32px 24px;
  background: #fff;
  color: #242424;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
}
.estate-detail__contact .form-title p,
.estate-detail__contact .form-content p { margin: 0; }
.estate-detail__contact .form-title > p {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.estate-detail__contact .form-title .furigana { display: none; }
.estate-detail__contact .form-title .must {
  float: none;
  display: inline-block;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 6px 1px;
  border-radius: 2px;
  background: #c03f3f;
  color: #fff !important;
  font-size: 12px;
  font-weight: 400;
  line-height: 19px;
  vertical-align: 1px;
}
.estate-detail__contact .form-content {
  padding: 32px 20px 32px 12px;
  background: #fff;
  color: #242424;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
}
.estate-detail__contact .form-content .notice {
  padding: 8px 0 0;
  color: #242424;
  font-size: 13px;
  line-height: 1.6;
}
.estate-detail__contact .form-content input[type="text"],
.estate-detail__contact .form-content input[type="email"],
.estate-detail__contact .form-content input[type="tel"],
.estate-detail__contact .form-content input[type="date"],
.estate-detail__contact .form-content select,
.estate-detail__contact .form-content textarea {
  box-sizing: border-box;
  width: 100% !important;
  min-height: 48px;
  margin: 0;
  padding: 11px 16px;
  border: 1px solid var(--estate-navy);
  border-radius: 4px;
  color: #242424;
  font-family: var(--estate-body-font) !important;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
}
.estate-detail__contact .form-content textarea { min-height: 176px; resize: vertical; }
.estate-detail__contact .form-content .text-title {
  display: block;
  width: auto;
  margin: 0 0 4px;
  padding: 0;
  text-align: left;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
}
.estate-detail__contact .form-item--request-date .form-content p {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px 24px;
}
.estate-detail__contact .form-item--request-date .form-content p.request-date-notice {
  display: block;
  margin: 0 0 12px;
  padding: 0;
}
.estate-detail__contact .form-item--request-date .form-content br { display: none; }
.estate-detail__contact .form-item--request-date .text-title:nth-of-type(1) { grid-column: 1; grid-row: 1; }
.estate-detail__contact .form-item--request-date [data-name="request-date"] { grid-column: 1; grid-row: 2; }
.estate-detail__contact .form-item--request-date .text-title:nth-of-type(3) { grid-column: 2; grid-row: 1; }
.estate-detail__contact .form-item--request-date [data-name="request-time"] { grid-column: 2; grid-row: 2; }
.estate-detail__contact .wpcf7-list-item { display: inline-flex; align-items: center; gap: 8px; margin: 5px 22px 5px 0; }
.estate-detail__contact .wpcf7-list-item input { width: 26px; height: 26px; margin: 0; border-radius: 4px; accent-color: #1c4572; }
.estate-detail__contact .form-send { padding: 40px 20px; text-align: center; }
.estate-detail__contact .form-send p { margin: 0; }
.estate-detail__contact .form-send input[type="submit"] {
  width: 360px;
  min-height: 56px;
  margin: 0 auto;
  padding: 12px 24px;
  border: 0;
  border-radius: 4px;
  background: #242424;
  box-shadow: none;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 600;
}
.estate-detail__contact .form-send input[type="submit"]:disabled { background: #d8d8d8; color: #fff; opacity: 1; }
.estate-detail__contact .wpcf7-response-output { margin: 0 20px 20px; }

/* Continue the property enquiry form inside the detail page's right column. */
.estate-detail__main > .estate-detail__contact {
  width: 100%;
  margin: 78px 0 0;
  padding: 0 0 80px;
  border-top: 0;
}
.estate-detail__main > .estate-detail__contact > header {
  text-align: left;
}

/* Standalone real-estate enquiry page */
.estate-contact-page__inner.estate-inner {
  width: min(800px, calc(100% - 48px));
}
.estate-contact-page__form {
  width: 100%;
  margin: 64px auto 100px;
  padding-top: 0;
  border-top: 0;
}
.estate-contact-page__form .form-title > p {
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}
.estate-contact-page__form .form-title .must {
  flex: 0 0 auto;
  margin-left: 0;
}
.estate-contact-page__form .form-item--consultation .form-title > p {
  flex-wrap: wrap;
  row-gap: 0;
}
.estate-contact-page__form .form-item--consultation .form-title small {
  display: block;
  flex: 0 0 100%;
  margin-top: 2px;
  color: var(--estate-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}
.estate-contact-page__form .form-item--consultation .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.estate-contact-page__form .form-item--consultation .wpcf7-list-item {
  display: block;
  margin: 0;
}
.estate-contact-page__form .form-item--consultation .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--estate-ink);
  font-weight: 400;
  line-height: 1.6;
}
.estate-contact-page__form .form-item--consultation input[type="checkbox"] {
  flex: 0 0 26px;
}

/* Privacy policy */
.estate-privacy-page__inner {
  width: min(900px, calc(100% - 48px));
  padding-top: 64px;
  padding-bottom: 96px;
}
.estate-privacy-page__content {
  color: var(--estate-ink);
  font-family: var(--estate-body-font);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.9;
}
.estate-privacy-page__content .estate-privacy-page__lead { margin: 0 0 54px; }
.estate-privacy-page__content section + section { margin-top: 52px; }
.estate-privacy-page__content h2 {
  margin: 0 0 18px;
  padding: 0 0 12px;
  border-bottom: 2px solid var(--estate-navy);
  color: var(--estate-navy);
  font-family: var(--estate-display-font);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
}
.estate-privacy-page__content p { margin: 0; }
.estate-privacy-page__content ol { margin: 18px 0 0; padding: 0; list-style: none; counter-reset: privacy-item; }
.estate-privacy-page__content li { position: relative; padding-left: 2em; }
.estate-privacy-page__content li + li { margin-top: 8px; }
.estate-privacy-page__content li::before { position: absolute; left: 0; color: var(--estate-navy); font-weight: 700; }
.estate-privacy-page__kana-list li::before { counter-increment: privacy-item; content: counter(privacy-item, katakana) "."; }
.estate-privacy-page__alpha-list li::before { counter-increment: privacy-item; content: counter(privacy-item, lower-alpha) "."; }

@media (max-width: 767px) {
  .estate-privacy-page__inner {
    width: calc(100% - 32px);
    padding-top: 42px;
    padding-bottom: 72px;
  }
  .estate-privacy-page__content { font-size: 14px; line-height: 1.85; }
  .estate-privacy-page__content .estate-privacy-page__lead { margin-bottom: 38px; }
  .estate-privacy-page__content section + section { margin-top: 38px; }
  .estate-privacy-page__content h2 { margin-bottom: 14px; font-size: 19px; line-height: 1.55; }
  .estate-privacy-page__content ol { margin-top: 14px; }
}

/* Footer */
.estate-footer { padding: 0; background: var(--estate-navy); color: #fff; }
.estate-sp-fixed-nav { display: none; }
.estate-pc-page-top {
  position: fixed;
  z-index: 900;
  right: 28px;
  bottom: 28px;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--estate-navy);
  color: #fff !important;
  transition: opacity .2s ease, transform .2s ease;
}
.estate-pc-page-top:hover,
.estate-pc-page-top:focus-visible { color: #fff !important; opacity: .86; transform: translateY(-2px); }
.estate-pc-page-top svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.estate-footer__inner { min-height: 350px; display: grid; grid-template-columns: 1fr 1fr; gap: 75px; padding-top: 56px; padding-bottom: 42px; }
.estate-footer__logo { display: block; width: 260px; margin-bottom: 22px; }
.estate-footer__logo img { display: block; width: 100%; }
.estate-footer__company p { margin: 3px 0; color: #fff; font-size: 12px; }
.estate-footer__company .estate-footer__name { margin-bottom: 8px; font-size: 15px; font-weight: 700; }
.estate-footer__phone { display: flex; align-items: center; gap: 0; width: fit-content; margin-top: 18px; color: #fff !important; font-size: 25px; font-weight: 700; letter-spacing: 0; }
.estate-footer__phone img { width: 22px; height: 22px; margin-right: 10px; filter: brightness(0) invert(1); }
.estate-footer__buttons { display: flex; gap: 12px; margin-top: 18px; }
.estate-footer__buttons a { min-width: 130px; padding: 8px 15px; border: 1px solid #fff; color: #fff; text-align: center; font-size: 12px; }
.estate-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; }
.estate-footer__nav h2 { width: fit-content; max-width: 100%; margin: 0 0 20px; color: #fff; font-size: 18px; }
.estate-footer__nav h3 { margin: 0 0 10px; color: #fff; font-size: 14px; }
.estate-footer__nav a { display: block; width: fit-content; margin: 8px 0; color: #fff !important; font-size: 13px; }
.estate-footer__copy { padding: 16px 24px; border-top: 1px solid rgba(255,255,255,.3); color: #fff; text-align: center; font-size: 10px; letter-spacing: .08em; }

@media (max-width: 767px) {
  .estate-header__top { position: relative; z-index: 3; background: #fff; }
  .estate-global-nav { position: relative; z-index: 3; }
  .estate-menu-backdrop {
    position: fixed;
    z-index: 2;
    inset: 58px 0 0;
    width: 100%;
    height: auto;
    display: block;
    padding: 0;
    border: 0;
    background: rgba(0, 0, 0, .5);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility 0s linear .22s;
  }
  .estate-menu-backdrop.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .estate-pc-page-top { display: none; }
  body.estate-redesign { font-size: 15px; }
  .estate-inner { width: min(100% - 32px, 520px); }
  .estate-header { border-top: 0; }
  .estate-header__top { height: 84px; align-items: flex-start; padding-top: 0; }
  .estate-header__logo { width: 160px; flex-basis: 160px; margin-top: 41px; }
  .estate-header__services { position: absolute; left: 0; right: 0; top: 0; display: grid; grid-template-columns: 142fr 206fr; gap: 8px; margin: 0; }
  .estate-header__services a { height: 32px; padding: 0 9px; border-radius: 0 0 10px 10px; font-size: 10px; }
  .estate-header__services a:first-child, .estate-header__services a:nth-child(2) { width: auto; }
  .estate-header__services a { min-width: 0; padding-inline: 4px; font-size: 10px; }
  .estate-header__services a span { margin-left: 4px; font-size: 10px; }
  .estate-header__tel { position: absolute; top: 48px; right: 43px; gap: 6px; margin: 0; }
  .estate-header__tel img { width: 17px; height: 17px; }
  .estate-header__tel small { display: none; }
  .estate-header__tel strong { font-size: 16px; }
  .estate-menu-toggle { position: absolute; top: 40px; right: 0; width: 31px; height: 31px; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 5px; padding: 0; border: 0; background: transparent; }
  .estate-menu-toggle span { height: 2px; display: block; background: var(--estate-navy); }
  .estate-menu-toggle span:nth-child(1) { width: 27px; }
  .estate-menu-toggle span:nth-child(2) { width: 22px; }
  .estate-menu-toggle span:nth-child(3) { width: 16px; }
  .estate-global-nav { display: none; border-top: 1px solid var(--estate-navy); }
  .estate-global-nav.is-open { display: block; }
  .estate-global-nav__inner { width: 100%; grid-template-columns: 1fr 1fr; }
  .estate-global-nav__inner a { min-height: 90px; border-bottom: 1px solid #c5cdd3; }
  .estate-global-nav__inner a:nth-child(odd)::before { display: none; }
  .estate-global-nav__inner img { margin-bottom: 1px; }
  .estate-global-nav__inner b { font-size: 13px; line-height: 18px; }
  .estate-global-nav__inner small { margin-top: 0; line-height: 12px; }

  .estate-hero { min-height: 182px; background-position: center 53%; }
  .estate-hero__copy { padding: 22px 0; }
  .estate-eyebrow { font-size: 8px; }
  .estate-hero h1 { margin: 7px 0; font-size: 22px; line-height: 1.55; }
  .estate-hero__copy > p:last-child { max-width: 325px; font-size: 10px; line-height: 1.6; }
  .estate-home-search__type { width: 100%; overflow: hidden; border-inline: 0; }
  .estate-home-search__type button { min-width: 0; min-height: 92px; grid-template-columns: 34px minmax(0, 1fr); column-gap: 8px; padding: 10px 13px; }
  .estate-home-search__type img { width: 32px; height: 32px; }
  .estate-home-search__type strong { min-width: 0; font-size: 15px; }
  .estate-home-search__type small { min-width: 0; font-size: 9px; white-space: nowrap; }
  .estate-search-panel { width: calc(100% - 32px); margin-top: 10px; padding-bottom: 18px; }
  .estate-search-tabs { margin-inline: 12px; }
  .estate-search-tabs button { padding: 10px 5px; font-size: 13px; }
  .estate-search-content { padding: 0 16px; }
  .estate-search-content > p { margin-bottom: 5px; font-size: 10px; }
  .estate-search-options { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px 8px; overflow: hidden; }
  .estate-search-options span { min-height: 31px; padding-left: 25px; font-size: 11px; line-height: 1.35; }
  .estate-search-options__sp-break { display: inline; }
  .estate-search-options span::before { width: 16px; height: 16px; }
  .estate-search-submit { min-width: 0; width: 78%; height: 40px; margin-top: 10px; font-size: 12px; }
  .estate-school-options { grid-template-columns: 1fr; gap: 10px; }

  .estate-intro { padding: 42px 0 46px; }
  .estate-intro__grid { grid-template-columns: 1fr; gap: 24px; }
  .estate-intro__text h2 { margin-bottom: 17px; font-size: 24px; line-height: 1.55; white-space: nowrap; }
  .estate-intro__text p { font-size: 12px; }
  .estate-intro__pc-text { display: none; }
  .estate-intro__image { aspect-ratio: 3 / 2; }
  .estate-intro__image figcaption { left: 16px; right: 16px; bottom: 12px; font-size: 13px; }
  .estate-intro__facts { grid-column: auto; grid-template-columns: 1fr; gap: 12px; }
  .estate-intro__facts > div { min-height: 105px; grid-template-columns: 105px 1px 1fr; padding: 15px 17px; }
  .estate-intro__facts strong { font-size: 35px; }
  .estate-intro__facts p { font-size: 11px; }

  .estate-recommended { padding: 42px 0 58px; }
  .estate-section-title { padding-top: 28px; }
  .estate-section-title h2 { font-size: 23px; line-height: 1.35; }
  .estate-property-group { padding-top: 44px; }
  .estate-property-group + .estate-property-group { margin-top: 52px; }
  .estate-property-group__heading { align-items: start; margin-bottom: 14px; }
  .estate-property-group__heading h3 { font-size: 20px; }
  .estate-property-group__heading h3 small { font-size: 8px; }
  .estate-property-group__heading p { font-size: 10px; line-height: 1.7; }
  .estate-property-group__heading > a { display: none; }
  .estate-property-grid { grid-template-columns: 1fr; gap: 10px; }
  .estate-property-group--seller .estate-property-card:nth-child(n+4) { display: none; }
  .estate-property-card__body { padding: 12px 13px 10px; }
  .estate-property-card h4 { font-size: 14px; }
  .estate-property-card__price { font-size: 20px; }
  .estate-property-card__spec { font-size: 10px; }
  .estate-property-group__more { min-width: 210px; min-height: 42px; margin-top: 20px; font-size: 12px; }

  .estate-redesign .page-header { padding: 30px 16px; }
  .estate-redesign .page-header__title { font-size: 25px; }
  .estate-redesign .sub-page-contents { padding-top: 30px; }

  .estate-breadcrumb { padding: 11px 0 5.5px; font-size: 9px; }
  .estate-archive-title { padding: 28px 0 24px; }
  .estate-archive-title h1 { font-size: 26px; }
  .estate-archive-title span { font-size: 11px; }
  .estate-archive { grid-template-columns: 1fr; gap: 24px; padding-top: 34px; padding-bottom: 55px; }
  .estate-archive__main { grid-row: 2; }
  .estate-archive > .estate-filter-sidebar { grid-row: 1; }
  .estate-filter-sidebar { position: static; }
  .estate-archive .estate-filter-sidebar__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 55px;
    padding: 13px 16px;
    border: 1px solid var(--estate-navy);
    border-radius: 8px;
    background: #e3e3e3;
    box-shadow: none !important;
    color: var(--estate-navy);
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .48px;
    line-height: 28px;
    text-align: left;
  }
  .estate-archive .estate-filter-sidebar__toggle span { color: inherit; font-size: 20px; line-height: 1; }
  .estate-archive .estate-filter-sidebar.is-open .estate-filter-sidebar__toggle { margin-bottom: 16px; }
  .estate-archive .estate-filter-sidebar section,
  .estate-archive .estate-filter-sidebar__more { display: none; }
  .estate-archive .estate-filter-sidebar.is-open section,
  .estate-archive .estate-filter-sidebar.is-open .estate-filter-sidebar__more { display: block; }
  .estate-archive__heading h2 { font-size: 24px; }
  .estate-archive__heading { flex-wrap: wrap; row-gap: 12px; }
  .estate-archive__sort { width: 100%; display: flex; justify-content: flex-end; }
  .estate-archive__sort select { width: 190px; }
  .estate-archive__cards { grid-template-columns: 1fr; gap: 12px; }
  .estate-archive .estate-property-card__image { height: auto; aspect-ratio: 358 / 212; }

  .estate-detail__title { padding: 26px 0 24px; }
  .estate-detail__title-grid { grid-template-columns: 1fr; gap: 20px; }
  .estate-detail__title h1 { font-size: 24px; line-height: 1.45; }
  .estate-detail__summary { grid-template-columns: 125px 1px minmax(0, 1fr); gap: 12px; padding-left: 0; border-left: 0; }
  .estate-detail__price { font-size: 24px; }
  .estate-detail__price { white-space: nowrap; }
  .estate-detail__summary dl { grid-template-columns: 1fr; gap: 5px; }
  .estate-detail__summary dl div { padding: 0 8px; }
  .estate-detail__summary > a { display: none; }
  .estate-detail__layout { grid-template-columns: 1fr; gap: 0; padding-top: 28px; }
  .estate-detail__layout .estate-detail__main { grid-column: 1; grid-row: 1; }
  .estate-detail__layout .estate-filter-sidebar { grid-column: 1; grid-row: 3; margin-top: 34px; padding: 0 0 58px; }
  .estate-detail__layout > .estate-detail__contact { grid-row: 2; }
  .estate-detail .estate-filter-sidebar__toggle { display: none; }
  .estate-detail__gallery { gap: 18px; }
  .estate-detail__gallery { width: 100%; }
  .estate-detail__content-images { gap: 18px; }
  .estate-detail__overview { margin-top: 46px; padding-top: 38px; }
  .estate-detail__overview > h2, .estate-detail__contact h2 { font-size: 24px; }
  .estate-detail__overview table { font-size: 11px; }
  .estate-detail__overview th { width: 32%; }
  .estate-detail__overview th, .estate-detail__overview td { padding: 10px; }
  .estate-detail__contact { margin-top: 55px; padding: 42px 0 54px; }
  .estate-detail__contact > header span { font-size: 11px; }
  .estate-detail__contact table, .estate-detail__contact tbody, .estate-detail__contact tr, .estate-detail__contact th, .estate-detail__contact td { display: block; width: 100%; }
  .estate-detail__contact th { padding: 10px 12px; }
  .estate-detail__contact td { padding: 12px; }

  .estate-guide__layout { grid-template-columns: 1fr; gap: 0; padding-top: 34px; padding-bottom: 62px; }
  .estate-guide__main { grid-column: 1; grid-row: 1; }
  .estate-guide__layout .estate-filter-sidebar { grid-column: 1; grid-row: 2; position: static; margin-top: 52px; }
  .estate-guide .estate-filter-sidebar__toggle { display: none; }
  .estate-guide__main h2 { margin-bottom: 17px; font-size: 24px; line-height: 1.45; }
  .estate-guide__main p { font-size: 14px; line-height: 1.9; }
  .estate-guide__summary-list li { font-size: 14px; line-height: 1.8; }
  .estate-guide__sp-break { display: block; }
  .estate-guide__intro { padding-bottom: 34px; }
  .estate-guide__types { grid-template-columns: 1fr; gap: 18px; margin-top: 30px; }
  .estate-guide__type .estate-guide__lead { min-height: 0; padding: 17px 18px; font-size: 14px; }
  .estate-guide__type .estate-guide__number { padding: 10px 18px 4px; }
  .estate-guide__type h2 { padding: 0 18px 11px; font-size: 23px; }
  .estate-guide__type dl div { grid-template-columns: 105px minmax(0, 1fr); }
  .estate-guide__type dt, .estate-guide__type dd { padding: 11px 12px; font-size: 12px; }
  .estate-guide__comparison, .estate-guide__choice { margin-top: 46px; padding-top: 34px; }
  .estate-guide__table-wrap { overflow: visible; }
  .estate-guide__comparison table, .estate-guide__comparison thead, .estate-guide__comparison tbody, .estate-guide__comparison tr, .estate-guide__comparison th, .estate-guide__comparison td { display: block; width: 100%; }
  .estate-guide__comparison table { font-size: 12px; }
  .estate-guide__comparison thead { display: none; }
  .estate-guide__comparison tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 14px; border: 1px solid var(--estate-navy); }
  .estate-guide__comparison tbody th { grid-column: 1 / -1; width: auto; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--estate-navy); }
  .estate-guide__comparison tbody td { width: auto; padding: 10px 12px 12px; border: 0; }
  .estate-guide__comparison tbody td + td { border-left: 1px solid #8395a2; }
  .estate-guide__comparison tbody td::before { display: block; margin-bottom: 5px; color: var(--estate-navy); content: attr(data-label); font-weight: 700; }
  .estate-guide__note { font-size: 11px !important; }
  .estate-guide__choice-grid { grid-template-columns: 1fr; gap: 12px; }
  .estate-guide__choice-grid > div { padding: 18px; }
  .estate-guide__choice-grid h3 { font-size: 16px; }
  .estate-guide__choice-grid p { font-size: 13px; }
  .estate-guide__links { grid-template-columns: 1fr; gap: 10px; margin-top: 28px; }
  .estate-guide__links a { min-height: 50px; font-size: 14px; }

  .estate-footer__inner { min-height: 0; grid-template-columns: 1fr; gap: 38px; padding-top: 42px; padding-bottom: 35px; }
  .estate-footer__logo { width: 213px; }
  .estate-footer__company p { font-size: 10px; }
  .estate-footer__phone { font-size: 22px; }
  .estate-footer__nav { gap: 22px; }
  .estate-footer__nav h2 { font-size: 15px; }
  .estate-footer__nav h3, .estate-footer__nav a { font-size: 11px; }
}

/* Figma final frames: 32:2 (PC) / 42:2 (SP). These rules intentionally
   override the first implementation so all WordPress templates share the
   final top-page typography, navigation and footer system. */
@media (min-width: 768px) {
  .estate-filter-sidebar__areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .estate-inner { width: min(1080px, calc(100% - 48px)); }
  .estate-archive.estate-inner,
  .estate-detail__layout.estate-inner { width: min(1120px, calc(100% - 48px)); }
  .estate-archive,
  .estate-detail__layout,
  .estate-guide__layout { grid-template-columns: 290px minmax(0, 1fr); }

  .estate-guide__layout.estate-inner { width: min(1120px, calc(100% - 48px)); }

  .estate-header { height: 176px; border-top-width: 6px; }
  .estate-header__top {
    width: auto;
    height: 76px;
    margin: 0 44px 0 56px;
  }
  .estate-header__logo { position: absolute; left: 0; top: 16px; width: 230px; height: 47px; }
  .estate-header__logo img { width: 100%; height: 100%; object-fit: contain; }
  .estate-header__services { position: absolute; left: 414px; top: 0; gap: 12px; margin: 0; }
  .estate-header__services a { height: 46px; padding: 0 10px; background: #e6e6e6; border-radius: 0 0 11px 11px; font-size: 14px; }
  .estate-header__services a:nth-child(2) { font-size: 13px; }
  .estate-header__services a span { font-size: 13px; }
  .estate-header__tel { position: absolute; left: 909px; top: 16px; gap: 6px; margin: 0; }
  .estate-header__tel img { width: 25px; height: 25px; margin-top: 19px; }
  .estate-header__tel small { margin: 0 0 4px; color: #6d7880; font-size: 12px; letter-spacing: 1.1px; }
  .estate-header__tel strong { font-family: Roboto, "Noto Sans JP", sans-serif; font-size: 28px; line-height: 34px; letter-spacing: 2.3px; }

  .estate-global-nav { height: 94px; border-top: 0; }
  .estate-global-nav__inner { width: 100%; max-width: none; height: 94px; margin: 0; }
  .estate-global-nav__inner a { min-height: 94px; justify-content: flex-start; padding-top: 12px; background: #fff; box-shadow: none; }
  .estate-global-nav__inner a:first-child { background: #fff; box-shadow: none; }
  .estate-global-nav__inner a:hover,
  .estate-global-nav__inner a:focus-visible,
  .estate-global-nav__inner a:active,
  .estate-global-nav__inner a.is-current { box-shadow: inset 0 -4px 0 #c9512d; }
  .estate-global-nav__inner a + a::before { top: 10px; bottom: 10px; background: #c8cdd1; }
  .estate-global-nav__inner img { width: 26px; height: 26px; margin: 0; }
  .estate-global-nav__inner b { margin-top: 0; font-size: 14px; line-height: 22px; }
  .estate-global-nav__inner small { margin-top: 0; font-size: 9px; line-height: 15px; letter-spacing: 1.1px; }

  .estate-hero { min-height: 360px; height: 360px; position: relative; border-radius: 0 0 30px 30px; align-items: flex-start; }
  .estate-hero__copy { width: 760px; padding: 75px 0 0; }
  .estate-eyebrow { font-family: Inter, Roboto, sans-serif; font-size: 13px; line-height: 22px; letter-spacing: 1.5px; }
  .estate-hero h1 { margin: 13px 0 14px; font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 42px; font-weight: 600; line-height: 58px; letter-spacing: 2px; }
  .estate-hero__copy > p:last-child { font-size: 15px; line-height: 26px; font-weight: 700; }

  .estate-home-search { position: relative; height: 406px; scroll-margin-top: 48px; }
  .estate-home-search::before { content: ""; position: absolute; z-index: 0; left: 50%; top: -36px; width: 1080px; height: 442px; transform: translateX(-50%); border: 1px solid #1c4572; border-radius: 8px; background: #fff; pointer-events: none; }
  .estate-home-search__type { position: absolute; z-index: 2; left: 50%; top: -36px; width: 1080px; height: 92px; transform: translateX(-50%); border: 0; }
  .estate-home-search__type button { min-height: 92px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 0; padding: 8px 0 0; background: #e6e6e6; color: #1c4572; }
  .estate-home-search__type button.is-active { background: #1c4572; color: #fff; }
  .estate-home-search__type button + button { border-left: 1px solid #1c4572; }
  .estate-home-search__type img { width: 30px; height: 30px; margin: 0 0 0; filter: none; }
  .estate-home-search__type button.is-active img { filter: brightness(0) invert(1); }
  .estate-home-search__type strong { font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 18px; line-height: 28px; font-weight: 600; }
  .estate-home-search__type strong,
  .estate-home-search__type small { align-self: center; text-align: center; }
  .estate-home-search__type small { margin: -1px 0 0; font-size: 12px; line-height: 18px; }
  .estate-search-panel { position: absolute; z-index: 1; left: 50%; top: 80px; width: 1080px; height: 326px; transform: translateX(-50%); margin: 0; padding: 0; border: 0; }
  .estate-search-tabs { position: relative; width: 1000px; height: 58px; display: flex; gap: 6px; margin: 0 auto; padding-left: 7px; border-bottom: 0; box-sizing: border-box; }
  .estate-search-tabs::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; height: 4px; background: #1c4572; pointer-events: none; }
  .estate-search-tabs button { position: relative; z-index: 1; width: 250px; height: 58px; padding: 0; background: #e6e6e6; color: #1c4572; font-size: 15px; }
  .estate-search-tabs button.is-active { background: #1c4572; color: #fff; }
  .estate-search-content { height: 268px; padding: 12px 40px 0; }
  .estate-search-content > p { margin: 0 0 8px; color: #182733; font-size: 13px; line-height: 22px; }
  .estate-search-options { grid-template-columns: repeat(3, 300px); column-gap: 35px; row-gap: 2px; }
  .estate-search-options span { min-height: 30px; padding-left: 26px; font-size: 12px; line-height: 20px; }
  .estate-search-options span::before { width: 16px; height: 16px; border-color: #1c4572; border-radius: 3px; }
  .estate-search-submit { width: 320px; min-width: 320px; height: 48px; margin-top: 13px; border: 1px solid #1c4572; font-size: 14px; box-shadow: none !important; }

  .estate-intro { height: 405.75px; padding: 66px 0 34px; }
  .estate-intro__grid { grid-template-columns: 504px 504px; gap: 72px; align-items: center; }
  .estate-intro__text h2 { margin: 0; font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 31px; line-height: 49.5px; font-weight: 600; letter-spacing: .8px; }
  .estate-intro__text p { margin-top: 0; font-size: 14px; line-height: 28px; }
  .estate-intro__text h2 + p { margin-top: 0; }
  .estate-intro__text p + p { margin-top: 0; }
  .estate-intro__image { width: 504px; height: 305.75px; border-radius: 8px; }
  .estate-intro__image figcaption { left: 1px; right: 1px; bottom: 5px; font-size: 16px; text-align: center; }

  .estate-recommended { padding: 32px 0 81px; }
  .estate-section-title { padding-top: 43px; }
  .estate-section-title p { font-family: Inter, sans-serif; font-size: 12px; line-height: 23px; }
  .estate-section-title h2 { font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 30px; line-height: 39px; }
  .estate-property-group { padding-top: 42px; }
  .estate-property-group__heading { min-height: 74px; margin-bottom: 24px; }
  .estate-property-group__heading h3 { font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 25px; line-height: 44px; }
  .estate-property-group__heading h3 small { font-family: Inter, sans-serif; font-size: 12px; }
  .estate-property-group__heading p { font-size: 13px; line-height: 25px; }
  .estate-property-group__heading > a { font-size: 13px; }
  .estate-property-grid { gap: 24px 22px; }
  .estate-property-card__image { height: 205px; aspect-ratio: auto; }
  .estate-property-card__body { padding: 15px 16px 16px; }
  .estate-property-card__meta { font-size: 13px; line-height: 23px; }
  .estate-property-card h4 { font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 17px; line-height: 28px; }
  .estate-property-card__price { min-height: 49px; margin: 0; padding-top: 10px; font-size: 22px; line-height: 38px; }
  .estate-property-card__spec { padding-top: 10px; font-size: 14px; line-height: 22px; }
  .estate-property-group + .estate-property-group { margin-top: 72px; padding-top: 42px; }
  .estate-property-group__more { min-height: 54px; margin-top: 30px; border-radius: 99px; font-size: 15px; }

  .estate-footer__inner { width: 1080px; min-height: 352px; grid-template-columns: 470px 530px; gap: 80px; padding-top: 38px; padding-bottom: 32px; }
  .estate-footer__logo { width: 260px; height: 55px; margin-bottom: 12px; }
  .estate-footer__logo img { height: 100%; object-fit: contain; }
  .estate-footer__company p { font-size: 11px; }
  .estate-footer__company .estate-footer__name { margin-top: 32px; font-size: 15px; }
  .estate-footer__phone { margin-top: 22px; font-size: 27px; }
  .estate-footer__buttons { margin-top: 18px; }
  .estate-footer__buttons a { min-width: 112px; height: 32px; padding: 5px 15px; }
  .estate-footer__nav { grid-template-columns: 200px 250px; gap: 80px; }
  .estate-footer__nav h2 { font-size: 16px; }
  .estate-footer__nav h3 { margin-top: 32px; font-size: 14px; }
  .estate-footer__nav a { font-size: 13px; }
  .estate-footer__copy { height: 48px; padding: 15px 24px; }

  .estate-redesign .page-header__title,
  .estate-redesign .entry-title,
  .estate-archive-title h1,
  .estate-archive__heading h2,
  .estate-detail__title h1,
  .estate-detail__overview > h2,
  .estate-detail__contact h2 { font-family: "Noto Sans", "Noto Sans JP", sans-serif; }
}

@media (min-width: 768px) {
  .estate-recommended .estate-section-title h2 { line-height: 34px; }
}

@media (max-width: 767px) {
  .estate-recommended .estate-section-title h2 { line-height: 27px; }
}

@media (max-width: 767px) {
  .estate-inner { width: calc(100% - 32px); }
  .estate-header { height: 58px; }
  .estate-header__top { width: 100%; height: 58px; margin: 0; padding: 0; }
  .estate-header__logo { position: absolute; left: 18px; top: 8px; width: 175px; height: 42px; margin: 0; display: flex; align-items: center; }
  .estate-header__logo img { width: 100%; height: 100%; object-fit: contain; }
  .estate-header__services { display: none; }
  .estate-header__tel { display: none; }
  .estate-header__tel img { width: 21px; height: 21px; }
  .estate-header__tel strong { font-family: Inter, sans-serif; font-size: 16px; letter-spacing: 1px; }
  .estate-menu-toggle { top: 8px; right: 12px; width: 42px; height: 42px; gap: 7px; border: 0; background: transparent !important; box-shadow: none !important; }
  .estate-menu-toggle span { height: 3px; }
  .estate-menu-toggle span:nth-child(1) { width: 34px; }
  .estate-menu-toggle span:nth-child(2) { width: 28px; }
  .estate-menu-toggle span:nth-child(3) { width: 22px; }
  .estate-global-nav__services { display: grid; grid-template-columns: minmax(0, 100px) minmax(0, 1fr); gap: 10px; padding: 14px 16px 16px; background: #fff; }
  .estate-global-nav__services a { min-width: 0; height: 44px; display: flex; align-items: center; justify-content: center; padding: 0 8px; border-radius: 7px; background: #e6e6e6; color: var(--estate-navy) !important; font-size: 15px; font-weight: 800; white-space: nowrap; }
  .estate-global-nav__services a:nth-child(2) { font-size: 12px; }
  .estate-global-nav__services .estate-external-link-icon { width: 10px; height: 11px; margin-left: 5px; filter: invert(24%) sepia(28%) saturate(1690%) hue-rotate(171deg) brightness(88%) contrast(92%); }

  .estate-hero { min-height: 234px; height: 234px; border-radius: 0; background-position: center 52%; align-items: center; }
  .estate-hero__copy { width: calc(100% - 32px); padding: 0; text-align: center; }
  .estate-eyebrow { font-family: Roboto, sans-serif; font-size: 10px; line-height: 14px; letter-spacing: 1.95px; }
  .estate-hero h1 { margin: 3px 0 5px; font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 20px; line-height: 27px; letter-spacing: .5px; }
  .estate-hero__copy > p:last-child { margin-inline: auto; font-size: 11px; line-height: 18px; font-weight: 500; }

  .estate-home-search { position: relative; height: 478px; scroll-margin-top: 33px; }
  .estate-home-search::before { content: ""; position: absolute; z-index: 0; left: 16px; top: -25px; width: calc(100% - 32px); height: 503px; border: 1px solid #1c4572; border-radius: 8px; background: #fff; }
  .estate-home-search__type { position: absolute; z-index: 2; left: 16px; top: -25px; width: calc(100% - 32px); height: 82px; border: 0; }
  .estate-home-search__type button { min-height: 82px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 7px 0 0; background: #e6e6e6; color: #1c4572; }
  .estate-home-search__type button.is-active { background: #1c4572; color: #fff; }
  .estate-home-search__type button + button { border-left: 1px solid #1c4572; }
  .estate-home-search__type img { width: 26px; height: 26px; margin: 0; filter: none; }
  .estate-home-search__type button.is-active img { filter: brightness(0) invert(1); }
  .estate-home-search__type strong { font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 17px; line-height: 28px; }
  .estate-home-search__type strong,
  .estate-home-search__type small { align-self: center; text-align: center; }
  .estate-home-search__type small { margin: -2px 0 0; font-size: 10px; line-height: 18px; }
  .estate-search-panel { position: absolute; z-index: 1; left: 16px; top: 78px; width: calc(100% - 32px); height: 375px; margin: 0; padding: 0; border: 0; }
  .estate-search-tabs { position: relative; width: calc(100% - 32px); height: 50px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0 16px; border-bottom: 0; }
  .estate-search-tabs::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; height: 4px; background: #1c4572; pointer-events: none; }
  .estate-search-tabs button { position: relative; z-index: 1; height: 50px; padding: 0; font-size: 13px; }
  .estate-search-content { height: 325px; padding: 10px 18px 0; }
  .estate-search-content > p { margin: 0 0 5px; font-size: 11px; line-height: 18px; }
  .estate-search-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 8px; }
  .estate-search-options span { min-height: 32px; padding-left: 26px; font-size: 11px; line-height: 16px; }
  .estate-search-submit { width: 240px; min-width: 0; height: 42px; margin-top: 8px; font-size: 12px; }

  .estate-intro { padding: 42px 0 46px; }
  .estate-intro__grid { gap: 24px; }
  .estate-intro__text h2 { margin: 0 0 14px; font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 24px; line-height: 38px; }
  .estate-intro__image { width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 8px; }

  .estate-recommended { padding-top: 12px; }
  .estate-section-title { padding-top: 28px; }
  .estate-section-title h2 { font-family: "Noto Sans", "Noto Sans JP", sans-serif; font-size: 23px; line-height: 31px; }
  .estate-property-card__image { height: auto; aspect-ratio: 358 / 212; }
  .estate-property-group--seller .estate-property-card:nth-child(n+4) { display: none !important; }

  .estate-footer__inner { width: calc(100% - 48px); }

  .estate-detail__layout > .estate-detail__contact {
    width: calc(100vw - 32px);
    margin: 52px calc((100vw - 100%) / -2 + 16px) 0;
    padding: 42px 0 54px;
  }
  .estate-detail__contact > header { margin-bottom: 24px; }
  .estate-detail__contact .wpcf7-form { width: 100%; }
  .estate-detail__contact .form-item {
    grid-template-columns: minmax(0, 1fr);
  }
  .estate-detail__contact .form-title {
    padding: 24px 20px 8px;
    font-size: 16px;
    line-height: 1.6;
  }
  .estate-detail__contact .form-title .must {
    display: inline-block;
    margin: 0 0 0 10px;
    font-size: 12px;
  }
  .estate-detail__contact .form-content {
    padding: 8px 20px 24px;
    font-size: 16px;
  }
  .estate-detail__contact .form-content .notice { font-size: 13px; }
  .estate-detail__contact .form-content input[type="text"],
  .estate-detail__contact .form-content input[type="email"],
  .estate-detail__contact .form-content input[type="tel"],
  .estate-detail__contact .form-content input[type="date"],
  .estate-detail__contact .form-content select,
  .estate-detail__contact .form-content textarea {
    display: block;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 11px 16px;
    font-size: 16px;
  }
  .estate-detail__contact .form-item--request-date .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .estate-detail__contact .form-content textarea { min-height: 176px; }
  .estate-detail__contact .form-item--request-date .form-content p {
    display: block;
  }
  .estate-detail__contact .form-item--request-date .form-content .text-title { margin-top: 12px; }
  .estate-detail__contact .wpcf7-list-item { margin: 5px 14px 5px 0; }
  .estate-detail__contact .form-send { padding: 32px 20px; }
  .estate-detail__contact .form-send input[type="submit"] { width: 100%; min-height: 56px; font-size: 15px; }
  .estate-detail__main > .estate-detail__contact {
    width: 100%;
    margin: 55px 0 0;
    padding: 0 0 54px;
  }
  .estate-contact-page__inner.estate-inner { width: 100%; }
  .estate-contact-page__form {
    width: calc(100% - 32px);
    margin: 40px auto 72px;
    padding-top: 0;
    border-top: 0;
  }
}

/* Typography system: the approved PC top frame is the source of truth. */
:root {
  --estate-display-font: "Estate Roboto Digits", "Noto Sans", "Noto Sans JP", sans-serif;
  --estate-body-font: "Estate Roboto Digits", "Noto Sans JP", sans-serif;
  --estate-latin-font: "Estate Roboto Digits", Inter, sans-serif;
  --estate-number-font: "Estate Roboto Digits", Roboto, "Noto Sans JP", sans-serif;
  --estate-ink: #26333d;
  --estate-muted: #465660;
  --estate-subtle: #53636e;
  --estate-red: #c95135;
}

body.estate-redesign {
  color: var(--estate-ink);
  font-family: var(--estate-body-font);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
  font-synthesis: none;
}

.estate-redesign button,
.estate-redesign input,
.estate-redesign select,
.estate-redesign textarea { font-family: var(--estate-body-font); }

body.estate-redesign .estate-header__services a { color: var(--estate-navy) !important; font-family: var(--estate-body-font); font-weight: 700; }
.estate-header__tel small { color: #6d7880; font-family: var(--estate-body-font); font-weight: 700; }
.estate-header__tel strong { color: var(--estate-navy); font-family: var(--estate-number-font); font-weight: 600; }
.estate-global-nav__inner b { color: var(--estate-navy); font-family: var(--estate-body-font); font-weight: 700; }
.estate-global-nav__inner small { color: #6d7880; font-family: var(--estate-latin-font); font-weight: 600; }

.estate-hero .estate-eyebrow { color: #fff; font-family: var(--estate-latin-font); font-weight: 600; }
.estate-hero h1,
.estate-intro__text h2,
.estate-section-title h2,
.estate-property-group__heading h3,
.estate-archive-title h1,
.estate-archive__heading h2,
.estate-detail__title h1,
.estate-detail__overview > h2,
.estate-detail__contact h2,
.estate-filter-sidebar h2 {
  color: var(--estate-navy);
  font-family: var(--estate-display-font);
  font-weight: 600;
}
.estate-hero h1 { color: #fff !important; }
.estate-hero__copy > p:last-child { color: #fff; font-family: var(--estate-body-font); font-weight: 700; }

.estate-home-search__type strong { font-family: var(--estate-display-font); font-weight: 600; }
.estate-home-search__type small { font-family: var(--estate-body-font); font-weight: 400; }
.estate-search-tabs button,
.estate-search-submit { font-family: var(--estate-body-font); font-weight: 700; }
.estate-search-content > p { color: #182733; font-family: var(--estate-body-font); font-weight: 400; }
.estate-search-options span { color: #182733; font-family: var(--estate-body-font); font-weight: 500; }

.estate-intro__text p { color: var(--estate-muted); font-family: var(--estate-body-font); font-weight: 400; }
.estate-intro__image figcaption { color: #fff; font-family: var(--estate-body-font); font-weight: 500; }
.estate-section-title p,
.estate-archive-title > .estate-inner > p,
.estate-detail__overview > .estate-eyebrow,
.estate-detail__contact .estate-eyebrow {
  color: #215c89;
  font-family: var(--estate-number-font);
  font-weight: 400;
}
.estate-property-group__heading h3 small { color: #3e5260; font-family: var(--estate-number-font); font-weight: 400; }
.estate-property-group__heading p { color: var(--estate-muted); font-family: var(--estate-body-font); font-weight: 400; }
body.estate-redesign .estate-property-group__heading > a,
.estate-property-group__more { color: var(--estate-navy); font-family: var(--estate-body-font); font-weight: 700; }
.estate-property-group__more { color: #fff !important; }

.estate-property-card__meta { color: #215c89; font-family: var(--estate-body-font); font-weight: 700; }
.estate-property-card h4 { color: var(--estate-ink); font-family: var(--estate-display-font); font-weight: 600; letter-spacing: .34px; }
.estate-property-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0; color: var(--estate-red); font-family: var(--estate-body-font); font-weight: 800; }
.estate-property-card__price strong { font: inherit; }
.estate-property-card__price > .estate-price-unit { font-size: 13px; line-height: 22.75px; }
.estate-property-card__price > .estate-price-value + .estate-price-unit { margin-left: 3px; }
.estate-property-card__spec { color: var(--estate-muted); font-family: var(--estate-body-font); font-weight: 500; }
.estate-property-card__archive-spec { font-family: var(--estate-body-font); }
.estate-property-card__archive-spec dt { color: var(--estate-subtle); font-weight: 500; }
.estate-property-card__archive-spec dd { color: var(--estate-ink); font-weight: 400; }
.estate-property-card__archive-spec dt,
.estate-property-card__archive-spec dd { line-height: inherit; }

.estate-breadcrumb,
.estate-archive-title span,
.estate-detail__location,
.estate-detail__contact > header span { color: var(--estate-muted); font-family: var(--estate-body-font); font-weight: 400; }
body.estate-redesign .estate-breadcrumb .path,
body.estate-redesign .estate-breadcrumb .path * {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
.estate-archive-title p { font-family: var(--estate-number-font); font-weight: 400; }
.estate-archive__heading small,
.estate-detail__kind { color: #b86a28; font-family: var(--estate-body-font); font-weight: 700; }
.estate-archive__sort { color: var(--estate-muted); font-family: var(--estate-body-font); font-weight: 400; }
.estate-archive__sort select { color: var(--estate-ink); font-family: var(--estate-body-font); font-weight: 400; }

.estate-filter-sidebar h2 { font-size: 16px; line-height: 28px; letter-spacing: .48px; }
body.estate-redesign .estate-filter-sidebar nav a,
.estate-filter-sidebar__more { color: var(--estate-ink); font-family: var(--estate-body-font); font-weight: 400; }
body.estate-redesign .estate-filter-sidebar nav a:not(.is-child) { font-weight: 600; }
body.estate-redesign .estate-filter-sidebar nav a.is-child { font-weight: 500; }
body.estate-redesign .estate-filter-sidebar nav a.is-active,
body.estate-redesign .estate-filter-sidebar nav a.is-active b { color: #b86a28; }
body.estate-redesign .estate-filter-sidebar nav.estate-filter-sidebar__areas a { font-weight: 400; }
body.estate-redesign .estate-filter-sidebar__topics nav a { color: var(--estate-navy); font-weight: 700; }
.estate-filter-sidebar__more { color: var(--estate-navy); font-weight: 700; }

.estate-detail__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0; color: var(--estate-red); font-family: var(--estate-body-font); font-weight: 800; }
.estate-detail__price strong { font: inherit; }
.estate-detail__price > .estate-price-unit { font-size: 14px; line-height: 24.5px; }
.estate-detail__price > .estate-price-value + .estate-price-unit { margin-left: 3px; }
.estate-detail__summary dt { color: var(--estate-subtle); font-family: var(--estate-body-font); font-weight: 500; }
.estate-detail__summary dd,
.estate-detail__summary > a { font-family: var(--estate-body-font); font-weight: 700; }
.estate-detail__overview table,
.estate-detail__contact .wpcf7-form { color: var(--estate-ink); font-family: var(--estate-body-font); font-weight: 400; }
.estate-detail__overview th { color: var(--estate-navy); font-family: var(--estate-body-font); font-weight: 700; }
.estate-detail__contact .form-title { color: #242424; font-family: var(--estate-body-font); font-weight: 600; }
.estate-detail__overview td,
.estate-detail__contact .form-content { color: var(--estate-ink); font-family: var(--estate-body-font); font-weight: 400; }
.estate-detail__contact .form-title .must { color: #fff; font-weight: 400; }
.estate-detail__contact .form-content .notice { color: var(--estate-muted); }
.estate-detail__contact .form-send input[type="submit"] { font-family: var(--estate-body-font); font-weight: 600; }
.estate-spam-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.estate-footer { font-family: var(--estate-body-font); }
.estate-footer__company p { color: rgba(255,255,255,.9); font-weight: 400; }
.estate-footer__company .estate-footer__name,
.estate-footer__nav h2,
.estate-footer__nav h3 { color: #fff; font-weight: 700; }
.estate-footer__phone { color: #fff; font-family: Roboto, sans-serif; font-weight: 700; }
.estate-footer__phone .estate-digit { font-size: 1em; }
.estate-footer__phone-number { white-space: nowrap; letter-spacing: 2.3px; }
.estate-footer__phone-hyphen { display: inline-block; margin-inline: 0; }
.estate-footer__buttons a { color: #fff; font-weight: 700; }
.estate-footer__nav a { color: rgba(255,255,255,.92) !important; font-weight: 500; }
.estate-footer__copy { color: rgba(255,255,255,.72); font-weight: 400; }

@media (min-width: 768px) {
  .estate-header__services a { font-size: 14px; }
  .estate-header__services a:nth-child(2) { font-size: 13px; }
  .estate-header__tel small { font-size: 12px; line-height: 17px; letter-spacing: 1.1px; }
  .estate-header__tel strong { font-size: 28px; line-height: 34px; letter-spacing: 2.3px; }
  .estate-global-nav__inner b { font-size: 14px; line-height: 22px; }
  .estate-global-nav__inner small { font-size: 9px; line-height: 15px; letter-spacing: 1.1px; }

  .estate-hero .estate-eyebrow { font-size: 13px; line-height: 22px; letter-spacing: 1.5px; }
  .estate-hero h1 { font-size: 42px; line-height: 58px; letter-spacing: 2px; }
  .estate-hero__copy > p:last-child { font-size: 16px; line-height: 26px; }
  .estate-home-search__type strong { font-size: 18px; line-height: 28px; }
  .estate-home-search__type small { font-size: 12px; line-height: 18px; }
  .estate-search-tabs button { font-size: 15px; line-height: 24px; }
  .estate-search-content > p { font-size: 13px; line-height: 22px; }
  .estate-search-options span { font-size: 13px; line-height: 20px; }
  .estate-search-submit { font-size: 15px; line-height: 24px; }

  .estate-intro__text h2 { font-size: 30px; line-height: 49.5px; letter-spacing: .9px; }
  .estate-intro__text p { font-size: 15px; line-height: 28.5px; }
  .estate-intro__image figcaption { font-size: 18px; line-height: 28px; }
  .estate-section-title p { font-size: 13px; line-height: 22.75px; letter-spacing: 1.95px; }
  .estate-section-title h2 { font-size: 31px; line-height: 38.75px; letter-spacing: .93px; }
  .estate-property-group__heading h3 { font-size: 25px; line-height: 43.75px; }
  .estate-property-group__heading h3 small { font-size: 13px; line-height: 22.75px; letter-spacing: 1.3px; }
  .estate-property-group__heading p { font-size: 14px; line-height: 24.5px; }
  .estate-property-group__heading > a { font-size: 14px; line-height: 24.5px; }
  .estate-property-card__meta { font-size: 13px; line-height: 22.75px; }
  .estate-property-card h4 { font-size: 17px; line-height: 28.05px; }
  .estate-property-card__price { font-size: 22px; line-height: 38.5px; }
  .estate-property-card__spec { font-size: 15px; line-height: 24px; }
  .estate-property-group__more { font-size: 15px; line-height: 26.25px; letter-spacing: .3px; }

  .estate-breadcrumb { font-size: 13px; line-height: 22.75px; }
  .estate-archive-title p { font-size: 13px; line-height: 22.75px; letter-spacing: 1.95px; }
  .estate-archive-title h1 { font-size: 36px; line-height: 63px; letter-spacing: 1.44px; }
  .estate-archive-title span { font-size: 15px; line-height: 26.25px; }
  .estate-archive__heading small { font-size: 13px; line-height: 22.75px; }
  .estate-archive__heading h2 { font-size: 28px; line-height: 49px; }
  .estate-archive__sort,
  .estate-archive__sort select { font-size: 14px; line-height: 24.5px; }
  .estate-filter-sidebar nav a { font-size: 14px; line-height: 24.5px; }
  .estate-filter-sidebar nav a.is-child { font-size: 13px; line-height: 22.75px; }
  .estate-filter-sidebar__more { font-size: 13px; line-height: 22.75px; }
  .estate-property-card__archive-spec { font-size: 12px; line-height: 18px; }

  .estate-detail__kind { font-size: 13px; line-height: 22.75px; }
  .estate-detail__title h1 { font-size: 31px; line-height: 48.05px; letter-spacing: .93px; }
  .estate-detail__location { font-size: 15px; line-height: 26.25px; }
  .estate-detail__price { font-size: 30px; line-height: 42px; }
  .estate-detail__summary dt { font-size: 12px; line-height: 18px; }
  .estate-detail__summary dd { font-size: 14px; line-height: 24.5px; }
  .estate-detail__summary > a { font-size: 14px; line-height: 24.5px; }
  .estate-detail__overview > h2 { font-size: 27px; line-height: 47.25px; letter-spacing: .81px; }
  .estate-detail__contact h2 { font-size: 31px; line-height: 38.75px; letter-spacing: .93px; }
  .estate-detail__overview table { font-size: 14px; line-height: 24.5px; }
  .estate-detail__contact > header span { font-size: 15px; line-height: 26.25px; }
  .estate-detail__contact .form-title { font-size: 16px; line-height: 25.6px; }
  .estate-detail__contact .form-content { font-size: 16px; line-height: 25.6px; }
  .estate-detail__contact .form-content .notice { font-size: 13px; line-height: 20.8px; }
  .estate-detail__contact .form-content input[type="text"],
  .estate-detail__contact .form-content input[type="email"],
  .estate-detail__contact .form-content input[type="tel"],
  .estate-detail__contact .form-content input[type="date"],
  .estate-detail__contact .form-content select,
  .estate-detail__contact .form-content textarea { font-size: 16px; line-height: 24px; }
  .estate-detail__contact .form-send input[type="submit"] { font-size: 15px; line-height: 24px; }

  .estate-footer__company .estate-footer__name { font-size: 15px; }
  .estate-footer__company p { font-size: 13px; }
  .estate-footer__company p:nth-of-type(3) { color: rgba(255,255,255,.82); font-size: 11px; }
  .estate-footer__phone { font-size: 27px; letter-spacing: 0; }
  .estate-footer__buttons a { font-size: 12px; }
  .estate-footer__nav h2 { font-size: 16px; }
  .estate-footer__nav h3 { font-size: 14px; }
  .estate-footer__nav a { font-size: 13px; }
  .estate-footer__copy { font-size: 11px; letter-spacing: .5px; }
}

@media (max-width: 767px) {
  .estate-filter-sidebar section { margin-bottom: 16px; }
  .estate-detail__layout .estate-filter-sidebar { margin-top: 52px; padding-bottom: 62px; }
  .estate-header__services a { font-size: 13px; }
  .estate-header__services a:nth-child(2) { font-size: 11.5px; }
  .estate-header__tel strong { font-family: var(--estate-latin-font); font-size: 16px; line-height: normal; letter-spacing: 1px; }

  .estate-hero .estate-eyebrow { font-family: var(--estate-number-font); font-size: 10px; line-height: 14px; letter-spacing: 1.95px; }
  .estate-hero h1 { font-size: 20px; line-height: 27px; letter-spacing: .5px; }
  .estate-hero__copy > p:last-child { font-size: 12px; line-height: 18px; font-weight: 500; }
  .estate-home-search__type strong { font-size: 17px; line-height: 28px; }
  .estate-home-search__type small { font-size: 10px; line-height: 18px; }
  .estate-search-tabs button { font-size: 15px; line-height: 24px; }
  .estate-search-content > p { font-size: 11px; line-height: 18px; }
  .estate-search-options span { font-size: 11px; line-height: 20px; font-weight: 400; }
  .estate-search-submit { font-size: 14px; line-height: 24px; }

  .estate-intro__text h2 { font-size: 22px; line-height: 34.1px; letter-spacing: 0; }
  .estate-intro__text p { font-size: 14px; line-height: 26.6px; }
  .estate-intro__image figcaption { font-size: 15px; line-height: 24.5px; }
  .estate-section-title p { font-size: 13px; line-height: 22.75px; letter-spacing: 1.95px; }
  .estate-section-title h2,
  .estate-property-group__heading h3 { font-size: 22px; line-height: 31.9px; letter-spacing: 0; }
  .estate-property-group__heading h3 small { font-size: 12px; line-height: 17.4px; letter-spacing: 1.2px; }
  .estate-property-group__heading p { font-size: 13px; line-height: 22.75px; }
  .estate-property-card__meta { font-size: 13px; line-height: 22.75px; }
  .estate-property-card h4 { font-size: 17px; line-height: 28.05px; }
  .estate-property-card__price { font-size: 22px; line-height: 38.5px; }
  .estate-property-card__spec { font-size: 14px; line-height: 22.4px; }
  .estate-property-group__more { font-size: 15px; line-height: 26.25px; letter-spacing: .3px; }

  .estate-breadcrumb { font-size: 13px; line-height: 22.75px; }
  .estate-archive-title p { font-size: 12px; line-height: 21px; letter-spacing: 1.8px; }
  .estate-archive-title h1 { font-size: 28px; line-height: 49px; letter-spacing: 1.12px; }
  .estate-archive-title span { font-size: 13px; line-height: 22.75px; }
  .estate-archive .estate-filter-sidebar__toggle { font-size: 16px; line-height: 28px; }
  .estate-archive__heading small { font-size: 13px; line-height: 22.75px; }
  .estate-archive__heading h2 { font-size: 24px; line-height: 42px; }
  .estate-filter-sidebar h2 { font-size: 16px; line-height: 28px; }
  .estate-filter-sidebar nav a { font-size: 14px; line-height: 24.5px; }
  .estate-filter-sidebar nav a.is-child { font-size: 13px; line-height: 22.75px; }
  .estate-filter-sidebar__more { font-size: 13px; line-height: 22.75px; }
  .estate-property-card__archive-spec { font-size: 12px; line-height: 18px; }

  .estate-detail__kind { font-size: 13px; line-height: 22.75px; }
  .estate-detail__title h1,
  .estate-detail__overview > h2 { font-size: 23px; line-height: 33.35px; letter-spacing: .69px; }
  .estate-detail__location { font-size: 15px; line-height: 26.25px; }
  .estate-detail__price { font-size: 24px; line-height: 33.6px; }
  .estate-detail__summary dt { font-size: 12px; line-height: 18px; }
  .estate-detail__summary dd { font-size: 13px; line-height: 22.75px; }
  .estate-detail__summary dd .estate-digit { font-size: 1.3em; }
  .estate-detail__contact h2 { font-size: 22px; line-height: 31.9px; }
  .estate-detail__overview table { font-size: 13px; line-height: 22.75px; }
  .estate-detail__contact > header span { font-size: 14px; line-height: 24.5px; }
  .estate-detail__contact .form-title { font-size: 16px; line-height: 25.6px; }
  .estate-detail__contact .form-content { font-size: 16px; line-height: 25.6px; }
  .estate-detail__contact .form-content .notice { font-size: 13px; line-height: 20.8px; }
  .estate-detail__contact .form-content input[type="text"],
  .estate-detail__contact .form-content input[type="email"],
  .estate-detail__contact .form-content input[type="tel"],
  .estate-detail__contact .form-content input[type="date"],
  .estate-detail__contact .form-content select,
  .estate-detail__contact .form-content textarea { font-size: 16px; line-height: 24px; }
  .estate-detail__contact .form-send input[type="submit"] { font-size: 15px; line-height: 24px; }

  .estate-footer__company .estate-footer__name { font-size: 14px; }
  .estate-footer__company p { font-size: 12px; }
  .estate-footer__company p:nth-of-type(3) { color: rgba(255,255,255,.82); font-size: 10px; }
  .estate-footer__phone { font-size: 24px; letter-spacing: 0; }
  .estate-footer__buttons a { font-size: 12px; }
  .estate-footer__nav h2 { font-size: 15px; }
  .estate-footer__nav h3 { font-size: 14px; }
  .estate-footer__nav a { font-size: 12px; }
  .estate-footer__copy { font-size: 10px; letter-spacing: .25px; }
}

/* Final visual alignment against the approved top-page frames. */
.estate-global-nav__inner a:first-child { background: #fff; }
.estate-search-options label { margin: 0; }
.estate-footer-banners {
  padding: 48px 0 64px;
  background: #fff;
}
.estate-footer-banners__inner {
  width: min(1080px, calc(100% - 48px));
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}
.estate-footer-banners a,
.estate-footer-banners picture,
.estate-footer-banners img {
  display: block;
  width: 100%;
}
.estate-footer-banners a {
  overflow: hidden;
  border-radius: 8px;
}
.estate-footer-banners img {
  height: auto;
}
.estate-footer__company .estate-footer__tagline { color: rgba(255,255,255,.9); }
.estate-footer__search-link::before { content: "—  "; }
.estate-footer__nav .estate-footer__primary-link { font-weight: 700; }
.estate-external-link-icon { flex: 0 0 auto; width: 11px; height: 12px; object-fit: contain; }
.estate-header__services .estate-external-link-icon { margin-left: 8px; filter: invert(24%) sepia(28%) saturate(1690%) hue-rotate(171deg) brightness(88%) contrast(92%); }
.estate-footer__nav a:has(.estate-external-link-icon) { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.estate-footer__nav .estate-external-link-icon { filter: brightness(0) invert(1); }

@media (min-width: 768px) {
  .estate-search-content > p { margin-bottom: 13px; }
  .estate-search-submit { margin-top: 21px; box-shadow: none !important; }

  .estate-footer__inner {
    width: 1080px;
    height: 376px;
    min-height: 0;
    grid-template-columns: 470px 530px;
    gap: 80px;
    padding-top: 38px;
    padding-bottom: 24px;
  }
  .estate-footer__company p { margin: 0; font-size: 11px; line-height: 16px; }
  .estate-footer__company .estate-footer__tagline { margin: 20px 0 19px; font-size: 12px; }
  .estate-footer__company .estate-footer__name { margin: 0 0 10px; font-size: 15px; line-height: 18px; }
  .estate-footer__company p:nth-of-type(4) { margin-top: 8px; font-size: 11px; line-height: 13px; }
  .estate-footer__phone { margin-top: 30px; font-size: 27px; line-height: 32px; }
  .estate-footer__buttons { margin-top: 16px; }

  .estate-footer__nav { grid-template-columns: 200px 250px; gap: 80px; padding-top: 8px; }
  .estate-footer__nav h2 { margin: 0 0 18px; padding-bottom: 8px; border-bottom: 2px solid #fff; font-size: 16px; line-height: 19px; }
  .estate-footer__nav h3 { margin: 0 0 8px; font-size: 14px; line-height: 17px; }
  .estate-footer__nav-property h3 { margin-bottom: 18px; }
  .estate-footer__nav a { margin: 0 0 13px; font-size: 13px; line-height: 16px; }
  .estate-footer__nav .estate-footer__primary-link { margin-top: 25px; margin-bottom: 15px; line-height: 17px; }
  .estate-footer__nav .estate-footer__primary-link + .estate-footer__primary-link { margin-top: 0; }
  .estate-footer__nav .estate-footer__bell-subsection { margin-top: 24px; }
  .estate-footer__nav .estate-footer__privacy { margin-top: 16px; }
}

@media (max-width: 767px) {
  .estate-footer-banners {
    padding: 32px 0 44px;
  }
  .estate-footer-banners__inner {
    width: calc(100% - 32px);
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .estate-search-panel { top: 78px; height: 400px; }
  .estate-search-content { height: 350px; }
  .estate-search-submit { width: 100%; max-width: 322px; min-width: 0; height: 52px; margin-top: 3px; font-size: 14px; }

  .estate-footer__inner {
    width: calc(100% - 48px);
    height: 676px;
    min-height: 0;
    gap: 0;
    padding-top: 40px;
    padding-bottom: 24px;
  }
  .estate-footer__logo { width: 213px; height: 48px; margin-bottom: 3px; }
  .estate-footer__logo img { width: 100%; height: 100%; object-fit: contain; }
  .estate-footer__company p { margin: 0; font-size: 10px; line-height: 14px; }
  .estate-footer__company .estate-footer__tagline { margin: 8px 0 19px; font-size: 11px; }
  .estate-footer__company .estate-footer__name { margin: 0 0 11px; font-size: 14px; line-height: 17px; }
  .estate-footer__company p:nth-of-type(4) { margin-top: 10px; font-size: 10px; line-height: 12px; }
  .estate-footer__phone { margin-top: 33px; font-size: 24px; line-height: 29px; }
  .estate-footer__buttons { margin-top: 14px; }
  .estate-footer__buttons a { height: 32px; padding: 5px 15px; }

  .estate-footer__nav { grid-template-columns: 157px 161px; gap: 24px; margin-top: 33px; }
  .estate-footer__nav h2 { margin: 0 0 15px; padding-bottom: 7px; border-bottom: 2px solid #fff; font-size: 15px; line-height: 18px; }
  .estate-footer__nav h3 { margin: 0 0 8px; font-size: 14px; line-height: 14px; }
  .estate-footer__nav-property h3 { margin-bottom: 16px; }
  .estate-footer__nav a { margin: 0 0 14px; font-size: 12px; line-height: 14px; }
  .estate-footer__nav .estate-footer__primary-link { margin-top: 13px; margin-bottom: 15px; }
  .estate-footer__nav .estate-footer__primary-link + .estate-footer__primary-link { margin-top: 0; }
  .estate-footer__nav .estate-footer__bell-subsection { margin-top: 26px; }
  .estate-footer__nav .estate-footer__privacy { margin-top: 0; }
  .estate-footer__copy { height: 48px; padding: 15px 10px; }

  .estate-footer { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .estate-sp-fixed-nav {
    position: fixed;
    z-index: 1000;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(68px + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) 58px;
    padding-bottom: env(safe-area-inset-bottom);
    border-top: 2px solid var(--estate-navy);
    background: #fff;
    box-shadow: 0 -4px 14px rgba(28, 69, 114, .12);
  }
  .estate-sp-fixed-nav > a {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    color: var(--estate-navy);
    font-family: var(--estate-body-font);
    font-size: 11px;
    line-height: 1.15;
    font-weight: 700;
    white-space: nowrap;
  }
  .estate-sp-fixed-nav > a + a { border-left: 1px solid #d5dde5; }
  .estate-sp-fixed-nav > a:not(.estate-sp-fixed-nav__top) > span { display: inline-block; }
  .estate-sp-fixed-nav > a:not(.estate-sp-fixed-nav__top) > span::after { content: none; }
  .estate-sp-fixed-nav img {
    width: 23px;
    height: 23px;
    object-fit: contain;
    filter: invert(24%) sepia(28%) saturate(1690%) hue-rotate(171deg) brightness(88%) contrast(92%);
  }
  .estate-sp-fixed-nav .estate-sp-fixed-nav__top {
    border-left-color: var(--estate-navy);
    background: var(--estate-navy);
    color: #fff;
  }
  .estate-sp-fixed-nav__top svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
}

/* Seller / broker guide: improve body-text readability without enlarging headings,
   the BASIC KNOWLEDGE explanation, or HOW TO CHOOSE copy. */
.estate-guide .estate-breadcrumb { font-size: 14px; }
.estate-guide .estate-archive-title span { font-size: 16px; }
.estate-guide .estate-filter-sidebar nav a { font-size: 15px; }
.estate-guide .estate-filter-sidebar nav a.is-child { font-size: 14px; }
.estate-guide .estate-filter-sidebar nav.estate-filter-sidebar__areas a,
.estate-guide .estate-filter-sidebar__area-group strong,
.estate-guide .estate-filter-sidebar__more,
.estate-guide .estate-filter-sidebar__topics nav a { font-size: 14px; }
.estate-guide__type .estate-guide__number { font-size: 14px; }
.estate-guide__type .estate-guide__lead { font-size: 15px; }
.estate-guide__type dt,
.estate-guide__type dd { font-size: 14px; }
.estate-guide__comparison table { font-size: 14px; }
.estate-guide__note { font-size: 13px !important; }
.estate-guide__links a { font-size: 16px; }

@media (max-width: 767px) {
  .estate-guide .estate-archive-title span { font-size: 14px; }
  .estate-guide__type .estate-guide__lead { font-size: 15px; }
  .estate-guide__type dt,
  .estate-guide__type dd { font-size: 13px; }
  .estate-guide__comparison table { font-size: 13px; }
  .estate-guide__note { font-size: 12px !important; }
  .estate-guide__links a { font-size: 15px; }
}

/* Requested type-size refinements for the top-page search and SUMOKA caption. */
@media (min-width: 768px) {
  .estate-search-content > p,
  .estate-search-options span { font-size: 15px; }
  .estate-intro__image figcaption { font-size: 16px; }
}

@media (max-width: 767px) {
  .estate-search-content > p,
  .estate-search-options span { font-size: 13px; }
  .estate-search-content[data-estate-panel="area"] .estate-search-options span { font-size: 14px; font-weight: 700; }
  .estate-intro__image figcaption { font-size: 13px; }
}

.estate-home-search__type button:not(.is-active),
.estate-home-search__type button:not(.is-active) strong,
.estate-home-search__type button:not(.is-active) small { color: #1c4572; }
.estate-home-search__type button:not(.is-active) img { filter: invert(24%) sepia(28%) saturate(1690%) hue-rotate(171deg) brightness(88%) contrast(92%); }
.estate-home-search__type {
  overflow: hidden;
  border-radius: 8px 8px 0 0;
}
.estate-search-submit { box-shadow: none !important; }

/* Increase global-navigation labels by 1px without changing service tabs. */
@media (min-width: 768px) {
  .estate-global-nav__inner b { font-size: 15px; }
  .estate-global-nav__inner small { font-size: 10px; }
}

@media (max-width: 767px) {
  .estate-global-nav__inner b { font-size: 14px; }
  .estate-global-nav__inner small { font-size: 10px; }
}

/* Draw the search-card outline above the type tabs so its top edge and
   rounded top corners remain visible. */
.estate-home-search::after {
  content: "";
  position: absolute;
  z-index: 3;
  border: 1px solid #1c4572;
  border-radius: 8px;
  pointer-events: none;
}

@media (min-width: 768px) {
  .estate-home-search::after {
    left: 50%;
    top: -36px;
    width: 1080px;
    height: 442px;
    transform: translateX(-50%);
  }
}

@media (max-width: 767px) {
  .estate-home-search::after {
    left: 16px;
    top: -25px;
    width: calc(100% - 32px);
    height: 503px;
  }
}

/* Tighten the intro heading while keeping a clear gap before its body copy. */
@media (min-width: 768px) {
  .estate-intro__text h2 {
    margin-bottom: 18px;
    line-height: 40.5px;
  }
  .estate-intro__text p {
    font-size: 16px;
  }
  .estate-intro__image figcaption {
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  .estate-intro__text h2 {
    margin-bottom: 16px;
    line-height: 29.7px;
  }
  .estate-intro__text p {
    font-size: 14px;
  }
  .estate-intro__image figcaption {
    left: 0;
    right: 0;
    font-size: 12px;
    text-align: center;
  }
}

/* Halve the SP gap below the SUMOKA image before the recommended section. */
@media (max-width: 767px) {
  .estate-intro {
    padding-bottom: 23px;
  }
  .estate-recommended {
    padding-top: 6px;
  }
}

/* Stack land/building dimensions consistently on all cards. */
.estate-property-card__spec {
  flex-direction: column;
  justify-content: flex-start;
  gap: 2px;
}
@media (min-width: 768px) {
  .estate-home .estate-property-card__spec {
    min-height: 63px;
  }
  .estate-property-card__spec span {
    white-space: nowrap;
  }
}

/* Give the seller-section description a little breathing room. */
@media (min-width: 768px) {
  .estate-property-group--seller .estate-property-group__heading p {
    margin-top: 12px;
    font-size: 15px;
    line-height: 22px;
  }
}

@media (max-width: 767px) {
  .estate-property-group--seller .estate-property-group__heading p {
    margin-top: 12px;
    font-size: 14px;
    line-height: 20px;
  }
}

/* Use a tighter leading for all property-card titles. */
.estate-property-card h4 {
  line-height: 24px;
}

@media (min-width: 768px) {
  .estate-property-card h4 {
    min-height: 72px;
  }

  .estate-archive .estate-property-card--compact-title h4 {
    min-height: 48px;
  }
}

@media (min-width: 768px) {
  .estate-footer__company .estate-footer__address {
    font-size: 14px !important;
    line-height: 20px;
  }
}

@media (max-width: 767px) {
  .estate-footer__company .estate-footer__address {
    font-size: 13px !important;
    line-height: 19px;
  }
}

/* Keep the marker under the Japanese seller/broker label only. */
.estate-recommended .estate-property-group__label {
  position: relative;
  z-index: 0;
  display: inline-block;
  isolation: isolate;
  line-height: 1;
}

.estate-recommended .estate-property-group__label::after {
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 50%;
  background: #b8cee3;
  content: "";
}

@media (max-width: 767px) {
  .estate-recommended .estate-property-group__label::after {
    bottom: -4.5px;
    height: 50%;
  }

  .estate-property-card__badge {
    top: 8px;
    left: 8px;
    padding: 3px 7px;
    font-size: 12px;
    line-height: 18px;
  }
}

/* Compact SP menu control: animated hamburger/close mark with Roboto label. */
@media (max-width: 767px) {
  .estate-menu-toggle {
    top: 4px;
    right: 10px;
    width: 48px;
    height: 50px;
    display: block;
    padding: 0;
    border: 0;
    color: var(--estate-navy);
    background: transparent !important;
    box-shadow: none !important;
  }
  .estate-menu-toggle::after {
    content: "MENU";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6px;
    color: var(--estate-navy);
    font-family: Roboto, sans-serif;
    font-size: 9px;
    line-height: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    text-align: center;
  }
  .estate-menu-toggle span,
  .estate-menu-toggle span:nth-child(1),
  .estate-menu-toggle span:nth-child(2),
  .estate-menu-toggle span:nth-child(3) {
    position: absolute;
    left: 50%;
    width: 28px;
    height: 2px;
    margin: 0;
    border-radius: 2px;
    background: var(--estate-navy);
    transform: translateX(-50%);
    transform-origin: center;
    transition: top .22s ease, width .22s ease, transform .22s ease, opacity .16s ease;
  }
  .estate-menu-toggle span:nth-child(1) { top: 7px; }
  .estate-menu-toggle span:nth-child(2) { top: 15px; width: 22px; }
  .estate-menu-toggle span:nth-child(3) { top: 23px; }
  .estate-menu-toggle[aria-expanded="true"]::after { content: "CLOSE"; }
  .estate-menu-toggle[aria-expanded="true"] span:nth-child(1) {
    top: 15px;
    width: 27px;
    transform: translateX(-50%) rotate(45deg);
  }
  .estate-menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }
  .estate-menu-toggle[aria-expanded="true"] span:nth-child(3) {
    top: 15px;
    width: 27px;
    transform: translateX(-50%) rotate(-45deg);
  }
}

/* Final contact-form alignment: wider PC insets and site-standard CTA. */
.estate-detail__contact .form-send p {
  position: relative;
}
.estate-detail__contact .form-send input[type="submit"] {
  display: block;
  margin: 0 auto;
  border-radius: 0;
  background: var(--estate-navy);
}
.estate-detail__contact .form-send .wpcf7-spinner {
  position: absolute;
  top: 16px;
  left: calc(50% + 188px);
  margin: 0;
}
.estate-detail__contact .wpcf7-form-control-wrap[data-name="acceptance"] {
  display: inline-flex;
  align-items: center;
  margin-right: 8px;
  vertical-align: middle;
}
.estate-detail__contact .wpcf7-form-control-wrap[data-name="acceptance"] .wpcf7-list-item {
  display: flex;
  align-items: center;
  margin: 0;
}
.estate-detail__contact .wpcf7-form-control-wrap[data-name="acceptance"] input[type="checkbox"] {
  display: block;
  flex: 0 0 auto;
  transform: translateY(-3px);
  vertical-align: middle;
}
.estate-detail__contact .form-content a[href*="/privacypolicy"] {
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: left calc(100% - 1px);
  background-size: 100% 1px;
  transition: background-size .3s ease, color .3s ease;
}
.estate-detail__contact .form-content a[href*="/privacypolicy"]:hover,
.estate-detail__contact .form-content a[href*="/privacypolicy"]:focus-visible {
  background-position: right calc(100% - 1px);
  background-size: 0 1px;
}

@media (min-width: 768px) {
  .estate-detail__contact .form-title {
    padding-left: 44px;
  }
  .estate-detail__contact .form-content {
    padding-right: 40px;
  }
  .estate-detail__contact .form-send {
    padding-right: 40px;
    padding-left: 40px;
  }
}

/* Keep required badges beside their labels, including the consultation row. */
.estate-detail__contact .form-title > p,
.estate-contact-page__form .form-item--consultation .form-title > p {
  display: block;
  white-space: nowrap;
}
.estate-detail__contact .form-title .must {
  margin-left: 10px;
  white-space: nowrap;
  vertical-align: 1px;
}

/* Space the icon/Japanese/English stack in the mobile menu. */
@media (max-width: 767px) {
  .estate-global-nav__inner > a > img { margin-bottom: 4px; }
  .estate-global-nav__inner > a > b { margin: 0; font-size: 15px; line-height: 18px; }
  .estate-global-nav__inner > a > small { margin-top: 3px; line-height: 12px; }
}

/* Safari date controls must fit inside the same box as other inputs. */
.estate-detail__contact .form-content input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 0 !important;
  min-width: 100%;
  max-width: 100%;
  inline-size: 0 !important;
  min-inline-size: 100%;
  max-inline-size: 100%;
  height: 48px;
}
.estate-detail__contact .form-content input[type="date"]::-webkit-date-and-time-value {
  min-width: 0;
  text-align: left;
}
.estate-detail__contact .form-content input[type="date"]::-webkit-datetime-edit {
  min-width: 0;
  padding: 0;
}
.estate-detail__contact .form-item--request-date .wpcf7-form-control-wrap {
  min-width: 0;
}

/* A consistent calendar affordance also appears on iPhone Safari. */
.estate-detail__contact .form-content input[type="date"] {
  padding-right: 48px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%231C4572' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18M8 15h2M14 15h2M8 18h2'/%3E%3C/svg%3E") no-repeat right 14px center / 22px 22px;
}
.estate-detail__contact .form-content input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 2px;
  right: 0;
  width: 44px;
  height: 44px;
  opacity: 0;
  cursor: pointer;
}
.estate-detail__contact .form-item--request-date [data-name="request-date"] {
  position: relative;
}

/* Tighten the space after the recommended heading only. */
.estate-recommended .estate-section-title + .estate-property-group { padding-top: 21px; }
@media (max-width: 767px) {
  .estate-recommended .estate-section-title + .estate-property-group { padding-top: 22px; }
}

/* Phones: the document never scrolls; .estate-scroll-root is the single scroller.
   Chrome for iOS settles document scrolling at its toolbar height (not 0) after an
   upward swipe, which hid the logo row. Scrolling an inner element avoids that path. */
@media (max-width: 767px) {
  html:has(body.estate-redesign),
  body.estate-redesign { height: 100%; overflow: hidden; }
  .estate-scroll-root {
    position: fixed;
    inset: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
  }
  .estate-site { overflow: visible; }
  .estate-header { position: relative; top: auto; }
  body.estate-menu-open .estate-header {
    position: fixed;
    top: var(--estate-menu-viewport-top, 0px);
    left: 0;
    width: 100%;
  }
  body.estate-menu-open .estate-site { padding-top: 58px; }
  body.estate-menu-open .estate-global-nav {
    max-height: calc(var(--estate-menu-viewport-height, 100dvh) - 58px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  body.estate-menu-open .estate-menu-backdrop {
    top: calc(var(--estate-menu-viewport-top, 0px) + 58px);
    bottom: auto;
    height: calc(var(--estate-menu-viewport-height, 100dvh) - 58px);
    touch-action: none;
  }
  body.estate-menu-open .estate-header__top { touch-action: none; }
}

/* Fit footer tracks to the phone width instead of clipping an oversized page. */
@media (max-width: 767px) {
  .estate-footer__inner { grid-template-columns: minmax(0, 1fr); height: auto; min-height: 676px; }
  .estate-footer__company,
  .estate-footer__nav,
  .estate-footer__nav > div { min-width: 0; }
  .estate-footer__nav { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .estate-footer__nav a:has(.estate-external-link-icon) {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    gap: 4px;
  }
}

@media (max-width: 767px) {
  .estate-detail__contact .form-send .wpcf7-spinner {
    top: calc(100% + 8px);
    left: calc(50% - 12px);
  }
}

/* The fixed footer must not pass menu-open gestures to the underlying page. */
@media (max-width: 767px) {
  body.estate-menu-open .estate-sp-fixed-nav { pointer-events: none; }
}

/* Keep footer headings and service labels readable on narrow phones. */
.estate-footer__reform-break { display: none; }
@media (max-width: 767px) {
  .estate-footer__nav { grid-template-columns: minmax(150px, .95fr) minmax(0, 1.05fr); gap: 16px; }
}
@media (max-width: 375px) {
  .estate-footer__inner { width: calc(100% - 32px); }
  .estate-footer__nav { grid-template-columns: minmax(150px, 1fr) minmax(0, 1fr); }
  .estate-footer__reform-break { display: block; }
  .estate-footer__nav .estate-footer__reform { align-items: center; }
  .estate-footer__reform span { white-space: nowrap; }
}

/* Property discovery: pagination, prose, related listings and contract status. */
.estate-pagination { margin: 32px 0; }
.estate-pagination ul { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; list-style:none; margin:0; padding:0; }
.estate-pagination .page-numbers { display:flex; align-items:center; justify-content:center; min-width:40px; min-height:40px; padding:8px; border:1px solid #1c4572; border-radius:4px; }
.estate-pagination ul.page-numbers { border:0; padding:0; }
.estate-pagination .current { background:#1c4572; color:#fff; }
.estate-pagination a:hover { background:#eef2f6; }
.estate-detail__prose { margin:0 0 32px; padding:24px; border:1px solid #d8e0e9; line-height:1.9; overflow-wrap:anywhere; }
.estate-detail__prose h2,.estate-related h2 { color:#1c4572; font-size:22px; line-height:1.5; margin:0 0 16px; }
.estate-detail__prose p { margin:0 0 16px; }
.estate-detail__prose p:last-child { margin-bottom:0; }
.estate-detail__prose table { width:100%; table-layout:fixed; }
.estate-detail__prose * { max-width:100%; }
.estate-contracted-notice { margin:16px 0; padding:16px; border:2px solid #8a4d3d; border-radius:4px; background:#fff; }
.estate-contracted-notice strong { display:inline-block; background:#8a4d3d; color:#fff; padding:4px 12px; }
.estate-contracted-notice p { margin:8px 0; font-size:14px; line-height:1.7; }
.estate-contracted-notice a,.estate-related__links a { color:#1c4572; text-decoration:underline; text-underline-offset:4px; }
.estate-property-card__contracted { position:absolute; top:12px; right:12px; z-index:2; padding:6px 12px; color:#fff; background:#8a4d3d; font-size:14px; font-weight:700; }
.estate-related { margin:48px 0; padding-top:52px; border-top:1px solid #d8e0e9; scroll-margin-top:24px; }
.estate-related>p { line-height:1.8; }
.estate-related__cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0; }
.estate-related__links { display:flex; flex-wrap:wrap; gap:16px 24px; }
@media(max-width:767px) {
 .estate-detail__prose { padding:16px; font-size:14px; }
 .estate-related h2,.estate-detail__prose h2 { font-size:20px; }
 .estate-related__cards { grid-template-columns:minmax(0,1fr); gap:24px; }
 .estate-related__links { flex-direction:column; gap:16px; }
}

.estate-detail__gallery figcaption { padding:10px 0 18px; color:#1c4572; font-size:14px; line-height:1.8; text-align:center; }
.estate-detail__prose p { text-align:left !important; }

.estate-related .estate-property-card__spec { margin-top:0; }

/* Related properties span the detail content and sidebar columns. */
.estate-detail__layout > .estate-related-wrap { grid-column:1 / -1; grid-row:2; min-width:0; }
@media (min-width:1024px) {
 .estate-related__cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
}
@media (min-width:768px) and (max-width:1023px) {
 .estate-related__cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
}

.estate-breadcrumb__separator { display:inline-block; margin-inline:6px; }

/* Related section divider spans the viewport while its content stays aligned. */
.estate-related { position:relative; border-top:0; }
.estate-related::before { content:""; position:absolute; top:0; left:50%; width:100vw; height:1px; transform:translateX(-50%); background:#1C4572; pointer-events:none; }

/* Keep the enquiry-to-related divider spacing to a single 80px gap. */
.estate-detail__layout { row-gap:80px; }
.estate-detail__main > .estate-detail__contact { padding-bottom:0; }
.estate-related-wrap > .estate-related { margin-top:0; }

/* Search starts with the two property types; the form opens in document flow. */
.estate-home-search { height: auto; padding: 0; margin-top: -36px; position: relative; background: transparent; }
.estate-home-search::before, .estate-home-search::after { content: none; }
.estate-home-search__type { position: relative; left: auto; top: auto; transform: none; width: min(1080px, calc(100% - 48px)); height: auto; border: 1px solid #1c4572; border-radius: 8px; }
.estate-home-search.is-open .estate-home-search__type { border-radius: 8px 8px 0 0; }
.estate-search-reveal { display: grid; grid-template-rows: 0fr; width: min(1080px, calc(100% - 48px)); transition: grid-template-rows .3s ease; }
.estate-search-reveal.is-open { grid-template-rows: 1fr; }
.estate-search-reveal__inner { min-height: 0; overflow: hidden; }
.estate-search-panel { position: relative; left: auto; top: auto; transform: none; width: 100%; height: auto; margin: 0; padding: 24px 0; border: 1px solid #1c4572; border-top: 0; border-radius: 0 0 8px 8px; background: #fff; }
.estate-search-tabs { width: calc(100% - 80px); }
.estate-search-content { height: auto; padding: 16px 40px 0; }
.estate-search-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; }
.estate-search-options span { white-space: normal; line-height: 1.6; }
.estate-search-submit { margin-top: 16px; }
@media (max-width: 767px) {
 .estate-home-search { margin-top: -25px; }
 .estate-home-search__type, .estate-search-reveal { width: calc(100% - 32px); }
 .estate-search-panel { padding: 20px 0; }
 .estate-search-tabs { width: calc(100% - 32px); }
 .estate-search-content { padding: 16px 16px 0; }
 .estate-search-options { grid-template-columns: 1fr; gap: 8px; }
 .estate-search-submit { width: 100%; min-width: 0; margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) { .estate-search-reveal { transition: none; } }
/* Initial choices: navy house and gray land. */


.estate-home-search:not(.is-open) [data-estate-property-type="住宅"] { background: #1c4572; color: #fff; }
.estate-home-search:not(.is-open) [data-estate-property-type="住宅"] strong,
.estate-home-search:not(.is-open) [data-estate-property-type="住宅"] small { color: #fff; }
.estate-home-search:not(.is-open) [data-estate-property-type="住宅"] img { filter: brightness(0) invert(1); }
@media (hover: hover) {
 .estate-home-search .estate-home-search__type [data-estate-property-type]:hover { background: #1c4572; color: #fff; }
 .estate-home-search .estate-home-search__type [data-estate-property-type]:hover strong,
 .estate-home-search .estate-home-search__type [data-estate-property-type]:hover small { color: #fff; }
 .estate-home-search .estate-home-search__type [data-estate-property-type]:hover img { filter: brightness(0) invert(1); }
}
.estate-home-search__type button { min-height: 112px; padding-top: 18px; padding-bottom: 10px; }
@media (max-width: 767px) { .estate-home-search__type button { min-height: 102px; padding-top: 16px; padding-bottom: 10px; } }

/* Separate and outline the choices; square lower corners only when expanded. */
.estate-home-search .estate-home-search__type { gap: 16px; border: 0; border-radius: 0; overflow: visible; }
.estate-home-search .estate-home-search__type button { border: 1px solid #1c4572; border-radius: 8px; }
.estate-home-search.is-open .estate-home-search__type button { border-radius: 8px 8px 0 0; }
.estate-search-content[data-estate-panel="area"] .estate-search-options span { letter-spacing: .06em; }

/* Join the two inner lower corners only while the search panel is open. */
.estate-home-search.is-open .estate-home-search__type::after { content: ""; position: absolute; left: calc(50% - 8px); bottom: 0; width: 16px; height: 1px; background: #1c4572; pointer-events: none; }

/* Give the area and school search tabs more separation. */
.estate-search-tabs { gap: 16px; }

/* Outline the school search tab in the brand navy. */
.estate-search-tabs [data-estate-tab="school"] { border: 1px solid #1c4572; }

/* Increase region labels by 1px on desktop and phone. */
.estate-search-content[data-estate-panel="area"] .estate-search-options span { font-size: 16px; }
@media (max-width: 767px) { .estate-search-content[data-estate-panel="area"] .estate-search-options span { font-size: 16px; } }

/* Use the same 26px native checkbox and checkmark as the contact forms. */
.estate-search-content[data-estate-panel="area"] .estate-search-options label { display: flex; align-items: center; gap: 10px; }
.estate-search-content[data-estate-panel="area"] .estate-search-options input[type="checkbox"] { position: static; opacity: 1; appearance: auto; -webkit-appearance: auto; flex: 0 0 26px; width: 26px; height: 26px; margin: 0; cursor: pointer; }
.estate-search-content[data-estate-panel="area"] .estate-search-options span { min-width: 0; padding-left: 0; }
.estate-search-content[data-estate-panel="area"] .estate-search-options span::before,
.estate-search-content[data-estate-panel="area"] .estate-search-options span::after { content: none; }

/* Make both school selectors and their field labels easier to read. */
.estate-school-options label, .estate-school-options select { font-size: 16px; }

/* Enlarge the two property-type button titles by 3px. */
.estate-home-search__type strong { font-size: 21px; }
@media (max-width: 767px) { .estate-home-search__type strong { font-size: 20px; } }

/* Match checked backgrounds across search and contact-form checkboxes. */
input[type="checkbox"] { accent-color: #1c4572; }

/* Increase both search-method tab labels by 1px. */
.estate-search-tabs button { font-size: 16px; }

/* Increase the property-type subtitles by 1px. */
.estate-home-search__type small { font-size: 13px; }
@media (max-width: 767px) { .estate-home-search__type small { font-size: 11px; } }

/* Outline the inactive area tab, matching the school tab. */
.estate-search-tabs [data-estate-tab="area"]:not(.is-active) { border: 1px solid #1c4572; }

/* Region/place search landing page shares the home controls and sidebar terms. */
.estate-area-page__regions { padding-top: 40px; }
.estate-area-page h2 { margin: 0 0 24px; color: #1c4572; font-size: 26px; font-weight: 700; }
.estate-area-page .estate-home-search { margin-top: 0; }
.estate-area-page__names { padding-top: 56px; padding-bottom: 80px; }
.estate-area-page__links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 28px; }
.estate-area-page__links .estate-filter-sidebar__area-heading { grid-column: 1 / -1; margin: 20px 0 8px; padding: 8px 0; font-size: 18px; color: #1c4572; border-bottom: 1px solid #1c4572; }
.estate-area-page__links a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 16px 0; border-bottom: 1px solid #d7dfe7; color: #1c4572; font-size: 16px; text-decoration: none; }
.estate-area-page__links a span { color: #53636e; font-size: 13px; white-space: nowrap; }
.estate-area-page__links a:hover { text-decoration: underline; }
@media (max-width: 767px) {
 .estate-area-page__regions { padding-top: 28px; }
 .estate-area-page h2 { font-size: 22px; margin-bottom: 20px; }
 .estate-area-page__names { padding-top: 40px; padding-bottom: 48px; }
 .estate-area-page__links { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; }
 .estate-area-page__links a { font-size: 15px; }
}

/* Increase the shared search-submit label by 1px. */
.estate-search-submit { font-size: 16px; }
@media (max-width: 767px) { .estate-search-submit { font-size: 15px; } }

/* Keep the contracted-property navigation visibly identifiable as a link. */
body.estate-redesign .estate-contracted-notice a { text-decoration: underline; text-underline-offset: 3px; }

/* Select property types before following the place-name links. */
.estate-area-page__instruction { margin: 0 0 18px; font-size: 16px; line-height: 1.8; }
.estate-place-types { display: flex; flex-wrap: wrap; gap: 16px 32px; margin: 0 0 16px; padding: 0; border: 0; }
.estate-place-types label { display: flex; align-items: center; gap: 10px; margin: 0; color: #1c4572; font-size: 16px; cursor: pointer; }
.estate-place-types input { flex: 0 0 26px; width: 26px; height: 26px; margin: 0; }
.estate-place-types__error { color: #b6352b; margin: 0 0 16px; }

/* Give the two search sections separate navy rounded frames. */
.estate-area-page__regions, .estate-area-page__names { width: min(1080px, calc(100% - 48px)); margin: 40px auto 0; padding: 32px; border: 1px solid #1c4572; border-radius: 8px; box-sizing: border-box; }
.estate-area-page__regions > .estate-inner,
.estate-area-page__regions .estate-home-search__type,
.estate-area-page__regions .estate-search-reveal { width: 100%; }
.estate-area-page__names { margin-bottom: 64px; }
@media (max-width: 767px) {
 .estate-area-page__regions, .estate-area-page__names { width: calc(100% - 32px); margin-top: 24px; padding: 20px 16px; }
 .estate-area-page__names { margin-bottom: 40px; }
 .estate-area-page__regions .estate-search-content { padding-inline: 12px; }
 .estate-area-page__regions .estate-search-tabs { width: calc(100% - 24px); margin-inline: 12px; }
}

/* Emphasize place names while keeping counts secondary. */
.estate-area-page__links a { font-weight: 700; }
.estate-area-page__links a > span { font-weight: 400; }
@media (max-width: 767px) { .estate-area-page__links a { font-size: 16px; } }

/* Place search uses independent property choices and city/outside tabs. */
.estate-place-search .estate-home-search__type, .estate-place-search .estate-search-reveal { width: 100%; }
.estate-place-form { padding: 16px 40px 0; }
.estate-place-form > p:not(.estate-place-types__error) { margin: 0 0 16px; font-size: 15px; }
.estate-place-form .estate-search-content { padding: 0; }
.estate-place-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px 24px; }
.estate-place-options label { display: flex; align-items: center; gap: 10px; margin: 0; min-width: 0; cursor: pointer; }
.estate-place-options input { flex: 0 0 26px; width: 26px; height: 26px; margin: 0; }
.estate-place-options label > span { font-size: 16px; font-weight: 700; }
.estate-place-options small { margin-left: 0; font-size: 13px; font-weight: 400; white-space: nowrap; }
.estate-place-search .estate-search-tabs [data-estate-tab]:not(.is-active) { border: 1px solid #1c4572; }
@media (max-width: 767px) {
 .estate-place-form { padding: 16px 12px 0; }
 .estate-place-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
 .estate-place-options label > span { line-height: 1.25; }
 .estate-place-search .estate-search-tabs { width: calc(100% - 24px); margin-inline: 12px; }
}

/* Compact wrapped property-result headings. */
body:is(.post-type-archive-estate, .tax-genre-estate, .tax-area-estate) .estate-archive-title h1 { line-height: 1.35; }
