@charset "UTF-8";

#real-estate.service .main {
  /* hidden だと main がスクロールコンテナになり、未表示の .js-fade-in（translateY 0.24rem）の分だけ
     縦にスクロールできてしまい、SPで最初のスワイプが main 側に取られて止まることがあった。clip はスクロールしない */
  overflow-x: clip;
  color: var(--color-primary);
}

#real-estate.service .c-page-title {
  --page-title-heading-padding-inline: 0.33rem 0.48rem;
  --page-title-main-top: -0.03rem;
  --page-title-divider-margin-start: 0.4rem;
  --page-title-divider-margin-end: 0.41rem;
  --page-title-label-letter-spacing: 0.02em;
}

#real-estate.service .hero {
  --subpage-hero-left-height: 3.68rem;
  --subpage-hero-notch-x: calc(var(--fluid-overhang) + 7.294rem); /* ページタイトル右端 + 0.44rem（下 0.44rem と揃える） */
  --subpage-hero-notch-y: 1.28rem;
  --subpage-hero-cut-x: 0.04rem;
  --subpage-hero-cut-y: 0.04rem;
  --subpage-hero-image-width: 100%; /* 1920px超でも画面いっぱいに（旧 13.6rem） */
}

#real-estate.service .badge {
  display: block;
  box-sizing: border-box;
  width: var(--badge-width);
  height: var(--badge-height);
  padding: var(--badge-padding-block) var(--badge-padding-inline);
  background: var(--color-primary);
  clip-path: var(--badge-clip-path);
  font-family: var(--font-family-base);
  font-size: 0.27rem;
  line-height: 0.44rem;
  letter-spacing: 0.02em;
  color: var(--color-white);
  white-space: nowrap;
}

#real-estate.service .badge > span {
  position: relative;
  top: 0.04em; /* 見出しの文字を少し下げて上下中央に（上下 padding は対称のまま。Gen Interface JP は字面が約1〜2px上寄り） */
}

#real-estate.service .badge--intro {
  --badge-width: 3.5rem;
  --badge-height: 0.84rem;
  --badge-padding-block: 0.22rem;
  --badge-padding-inline: 0.37rem;
  --badge-clip-path: polygon(0.03rem 0, 3.47rem 0, 3.5rem 0.03rem, 3.5rem 0.81rem, 3.47rem 0.84rem, 0.03rem 0.84rem, 0 0.81rem, 0 0.03rem);
  font-size: 0.32rem;
  line-height: 0.4rem;
}

#real-estate.service .badge--foundation {
  --badge-width: 3.18rem;
  --badge-height: 1.2rem;
  --badge-padding-block: 0.18rem;
  --badge-padding-inline: 0.39rem;
  --badge-clip-path: polygon(0.03rem 0, 3.15rem 0, 3.18rem 0.03rem, 3.18rem 0.77rem, 3.15rem 0.8rem, 2.58rem 0.8rem, 2.55rem 0.83rem, 2.55rem 1.17rem, 2.52rem 1.2rem, 0.03rem 1.2rem, 0 1.17rem, 0 0.03rem);
  font-size: 0.26rem;
}

#real-estate.service .badge--rental {
  --badge-width: 3.12rem;
  --badge-height: 1.2rem;
  --badge-padding-block: 0.18rem;
  --badge-padding-inline: 0.34rem;
  --badge-clip-path: polygon(0.03rem 0, 3.09rem 0, 3.12rem 0.03rem, 3.12rem 0.77rem, 3.09rem 0.8rem, 2.88rem 0.8rem, 2.85rem 0.83rem, 2.85rem 1.17rem, 2.82rem 1.2rem, 0.03rem 1.2rem, 0 1.17rem, 0 0.03rem);
}

#real-estate.service .badge--share {
  --badge-width: 3.39rem;
  --badge-height: 1.2rem;
  --badge-padding-block: 0.18rem;
  --badge-padding-inline: 0.35rem;
  --badge-clip-path: polygon(0.03rem 0, 3.36rem 0, 3.39rem 0.03rem, 3.39rem 0.77rem, 3.36rem 0.8rem, 2.9rem 0.8rem, 2.87rem 0.83rem, 2.87rem 1.17rem, 2.84rem 1.2rem, 0.03rem 1.2rem, 0 1.17rem, 0 0.03rem);
}

#real-estate.service .badge--reform {
  --badge-width: 5.42rem;
  --badge-height: 0.8rem;
  --badge-padding-block: 0.2rem;
  --badge-padding-inline: 0.35rem;
  --badge-clip-path: polygon(0.03rem 0, 5.39rem 0, 5.42rem 0.03rem, 5.42rem 0.77rem, 5.39rem 0.8rem, 0.03rem 0.8rem, 0 0.77rem, 0 0.03rem);
  font-size: 0.29rem;
  line-height: 0.4rem;
}

/* 2行の見出しは行送り×2と箱の高さの関係で基準値（0.04em）では合わないため個別に（実測で±1px以内に） */
#real-estate.service .badge--foundation > span,
#real-estate.service .badge--rental > span {
  top: -0.04em;
}

#real-estate.service .badge--share > span {
  top: 0;
}

#real-estate.service .body-copy {
  font-size: 0.16rem;
  line-height: 1.875;
  letter-spacing: 0.02em;
}

#real-estate.service .body-copy--lead {
  font-size: 0.18rem;
  line-height: 2;
}

#real-estate.service .badge+.body-copy {
  margin-top: 0.32rem;
}

#real-estate.service .overview {
  padding: 0.56rem 0 0.8rem;
  background: var(--color-primary);
}

#real-estate.service .overview__inner {
  position: relative;
  left: 0.4rem;
  width: 11.8rem;
  min-height: 12.56rem;
  margin-inline: auto;
  padding: 0.8rem 0.7rem 0 0.8rem;
  isolation: isolate;
}

#real-estate.service .overview__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--color-white);
  clip-path: polygon(0.04rem 0,
      calc(100% - 0.04rem) 0,
      100% 0.04rem,
      100% calc(100% - 0.68rem),
      calc(100% - 0.04rem) calc(100% - 0.64rem),
      6.66rem calc(100% - 0.64rem),
      6.62rem calc(100% - 0.6rem),
      6.62rem calc(100% - 0.04rem),
      6.58rem 100%,
      0.04rem 100%,
      0 calc(100% - 0.04rem),
      0 0.04rem);
}

#real-estate.service .overview__inner::before {
  --beveled-cut: 0.04rem;
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(100% + 0.3rem);
  z-index: -1;
  width: 99.99rem;
  background: var(--color-white);
  clip-path: polygon(0 0,
      calc(100% - var(--beveled-cut)) 0,
      100% var(--beveled-cut),
      100% calc(100% - var(--beveled-cut)),
      calc(100% - var(--beveled-cut)) 100%,
      0 100%);
}

/* 1段目はテキスト 4.9rem・写真 4.7rem をコンテンツ幅の両端に寄せる。間隔は成り行き */
#real-estate.service .overview__row {
  display: flex;
  justify-content: space-between;
}

#real-estate.service .overview__text {
  flex: 0 0 4.9rem;
  min-width: 0;
}

#real-estate.service .overview__text .badge {
  margin-top: 0.15rem;
}

#real-estate.service .overview__photo {
  display: block;
  flex: 0 0 4.7rem;
}

#real-estate.service .overview__photo img {
  --beveled-cut: 0.04rem;
  display: block;
  width: 100%;
  height: 4.14rem;
  object-fit: cover;
}

#real-estate.service .overview__row--reverse {
  flex-direction: row-reverse;
  gap: 0.8rem;
  margin-top: 0.4rem;
  margin-left: -0.8rem;
}

#real-estate.service .overview__row--reverse .overview__text {
  flex: 0 0 4.4rem;
}

#real-estate.service .overview__row--reverse .overview__text .badge {
  margin-top: 0.41rem;
}

#real-estate.service .overview__photo--bleed {
  flex: 0 0 5.9rem;
}

#real-estate.service .overview__photo--bleed img {
  height: 5.6rem;
  clip-path: polygon(0 0,
      4.58rem 0,
      4.62rem 0.04rem,
      4.62rem 0.92rem,
      4.66rem 0.96rem,
      calc(100% - 0.04rem) 0.96rem,
      100% 1rem,
      100% calc(100% - 0.04rem),
      calc(100% - 0.04rem) 100%,
      0 100%);
}

#real-estate.service .business {
  position: relative;
  padding: 0.8rem 0 0;
  background: #c9d7e4; /* 下の CTA の写真の「見えている上端」の色（L116）。左端がやや暗いので左右の中間値。
    PCの写真はセクションより背が高く上が切れるので、境界に出るのは単色部分ではなく
    画像 279 行目付近（空のグラデーションの途中）。その行の中央値を実測した値。SPは単色部分が見えるので #cedbeb のまま */
  isolation: isolate;
}

#real-estate.service .business::before {
  content: "";
  position: absolute;
  /* 正方形に切り抜かれた人物写真。パネル右上のノッチに収め、
     下端はノッチの底（5.08rem）でパネルの白に隠れる。 */
  top: -0.21rem;
  left: calc(50% - 0.32rem);
  z-index: -1;
  width: 6.28rem;
  height: 6.28rem;
  background: url("../../images/real-estate/bg-detail.webp") no-repeat center / contain;
}

#real-estate.service .business__inner {
  position: relative;
  left: -0.4rem;
  width: 11.8rem;
  margin-inline: auto;
  padding: 0.81rem 0 0.8rem 0.9rem;
  isolation: isolate;
}

#real-estate.service .business__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--color-white);
  clip-path: polygon(0.04rem 0,
      6.46rem 0,
      6.5rem 0.04rem,
      6.5rem 5.04rem,
      6.54rem 5.08rem,
      calc(100% - 0.04rem) 5.08rem,
      100% 5.12rem,
      100% calc(100% - 0.04rem),
      calc(100% - 0.04rem) 100%,
      0.04rem 100%,
      0 calc(100% - 0.04rem),
      0 0.04rem);
}

#real-estate.service .business__inner::before {
  --beveled-cut: 0.04rem;
  content: "";
  position: absolute;
  top: 5.08rem;
  bottom: 0;
  left: calc(100% + 0.3rem);
  z-index: -1;
  width: 99.99rem;
  background: var(--color-white);
  clip-path: polygon(var(--beveled-cut) 0,
      100% 0,
      100% 100%,
      var(--beveled-cut) 100%,
      0 calc(100% - var(--beveled-cut)),
      0 var(--beveled-cut));
}

#real-estate.service .tags {
  padding: 0.24rem 0 0.23rem;
  border-top: 0.01rem solid var(--color-border-cool-strong);
  border-bottom: 0.01rem solid var(--color-border-cool-strong);
}

#real-estate.service .tags__title {
  font-size: 0.16rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

#real-estate.service .tags__list {
  margin-top: 0.1rem;
  font-size: 0.14rem;
  line-height: calc(24 / 14);
  letter-spacing: 0.025em;
  word-break: auto-phrase;
}

#real-estate.service .link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.12rem;
  padding-bottom: 0.24rem;
  border-bottom: 0.03rem solid var(--color-primary);
  font-size: 0.19rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

#real-estate.service .link__arrow {
  display: block;
  flex: 0 0 0.2rem;
  width: 0.2rem;
  height: 0.2rem;
}

#real-estate.service .block--rental {
  width: 4.9rem;
}

#real-estate.service .block--rental .tags {
  margin-top: 0.35rem;
}

#real-estate.service .block--share {
  display: grid;
  grid-template-columns: 6.1rem 4.2rem;
  column-gap: 0.9rem;
  margin-top: 1rem;
  margin-left: -0.9rem;
}

#real-estate.service .block--share .badge {
  grid-column: 2;
  grid-row: 1;
}

#real-estate.service .block--share .block__photo {
  grid-column: 1;
  grid-row: 1 / span 3;
}

#real-estate.service .block--share .block__photo img {
  height: 5.27rem;
  clip-path: polygon(0.04rem 0,
      calc(100% - 0.04rem) 0,
      100% 0.04rem,
      100% calc(100% - 0.04rem),
      calc(100% - 0.04rem) 100%,
      2.46rem 100%,
      2.42rem calc(100% - 0.04rem),
      2.42rem 4.72rem,
      2.38rem 4.68rem,
      0.04rem 4.68rem,
      0 4.64rem,
      0 0.04rem);
}

#real-estate.service .block--share .body-copy {
  grid-column: 2;
  grid-row: 2;
  margin-top: 0.3rem;
  max-width: 4rem;
}

#real-estate.service .block--share .link {
  grid-column: 2;
  grid-row: 3;
  align-self: start;
  width: 4rem;
  margin-top: 0.41rem;
}

#real-estate.service .block__photo {
  display: block;
  min-width: 0;
}

#real-estate.service .block__photo img {
  --beveled-cut: 0.04rem;
  display: block;
  width: 100%;
  object-fit: cover;
}

#real-estate.service .block--reform {
  display: grid;
  grid-template-columns: 4.5rem 5.6rem;
  column-gap: 0.8rem;
  margin-top: 0.57rem;
}

#real-estate.service .block--reform .badge {
  grid-column: 1 / -1;
  grid-row: 1;
}

#real-estate.service .block--reform .block__photo {
  grid-column: 2;
  grid-row: 2 / span 3;
  margin-top: 0.33rem;
}

#real-estate.service .block--reform .block__photo img {
  display: block;
  height: 7.12rem;
  object-fit: cover;
  clip-path: polygon(1.98rem 0,
      100% 0,
      100% 100%,
      0.04rem 100%,
      0 7.08rem,
      0 0.76rem,
      0.04rem 0.72rem,
      1.9rem 0.72rem,
      1.94rem 0.68rem,
      1.94rem 0.04rem);
}

#real-estate.service .block--reform .body-copy {
  grid-column: 1;
  grid-row: 2;
  margin-top: 0.34rem;
}

#real-estate.service .block--reform .tags {
  grid-column: 1;
  grid-row: 3;
  /* 写真が行2〜4にまたがるため行3が伸び、下罫線が一覧の下から離れていた。伸ばさない */
  align-self: start;
  margin-top: 0.06rem;
}

#real-estate.service .block--reform .link {
  grid-column: 1;
  grid-row: 4;
  align-self: start;
  margin-top: 0.61rem;
}

#real-estate.service .achievements {
  width: 10.3rem;
  margin-top: 0.8rem;
}

#real-estate.service .achievements__heading {
  --beveled-cut: 0.02rem;
  display: flex;
  align-items: center;
  height: 0.46rem;
  padding-inline: 0.2rem;
  background: var(--color-primary);
  font-size: 0.21rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: var(--color-white);
}

#real-estate.service .achievements__heading > span {
  position: relative;
  top: 0.04em; /* 見出しの文字を少し下げて上下中央に（他の青ベタ見出しと同じ方式） */
}

#real-estate.service .achievements__description {
  margin-top: 0.33rem;
  font-size: 0.16rem;
  font-weight: 500;
  line-height: 1.875;
  letter-spacing: 0.02em;
}

#real-estate.service .achievements__grid {
  display: grid;
  grid-template-columns: repeat(4, 2.28rem);
  justify-content: space-between;
  margin-top: 0.35rem;
}

#real-estate.service .achievements__item {
  --beveled-cut: 0.03rem;
  aspect-ratio: 228 / 240;
  background: var(--color-surface-placeholder);
}

/* 写真はセクション全幅の背景として敷く（L116）。支給画像の上端は単色 #cedbeb なので、
   背景色を同じにしておけば写真との継ぎ目が出ない。高さはデザインの実測値。 */
#real-estate.service .cta {
  position: relative;
  height: 7.78rem;
  padding: 1.06rem 0 0;
  overflow: hidden;
  /* 1920px超で写真の左右に出る余り用。写真の左右端の色（見えている範囲を上から 0/20/…/100% で実測、左右の平均）に
     合わせた縦グラデーションで、写真との縦の境目を目立たなくする。1920px以下は写真で全面が隠れるので見えない。 */
  background: #cedbeb linear-gradient(to bottom, #c8d7e4 0%, #ccd8e4 20%, #d0dde6 40%, #cad9e3 60%, #d3e0ea 80%, #d0dde6 100%);
}

/* テキスト列の左端はデザインどおり l-outer の左端から 6.7rem（チェックリストが x=700px） */
#real-estate.service .cta__inner {
  padding-left: 6.7rem;
}

/* 絶対配置の写真より手前に出す。写真の基準はセクション（.cta）なので、ここに position を付けても
   cta__inner には付けない。 */
#real-estate.service .cta__text {
  position: relative;
  z-index: 1;
  width: 5.3rem;
}

#real-estate.service .cta__title {
  margin-top: 0.11rem;
  font-size: 0.43rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

#real-estate.service .cta__description {
  margin-top: 0.19rem;
  font-size: 0.16rem;
  line-height: 1.875;
  letter-spacing: 0.02em;
}

#real-estate.service .cta__checklist {
  display: flex;
  flex-direction: column;
  gap: 0.04rem;
  margin-top: 0.39rem;
}

#real-estate.service .cta__checklist-item {
  --beveled-cut: 0.02rem;
  display: flex;
  align-items: center;
  gap: 0.08rem;
  padding: 0.16rem;
  background: var(--color-white);
  font-size: 0.15rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

#real-estate.service .cta__check {
  display: block;
  flex-shrink: 0;
  width: 0.16rem;
  height: 0.16rem;
}

/* 写真は画面幅いっぱい・縦横比固定で、セクションの下端に吸着させる（L116）。
   画像はセクションより背が高く、はみ出す上側は単色なので切れてよい。
   1920px超はセクションの高さが頭打ち（--rem-size の上限）になるのに写真だけ伸びて人物の頭が切れるため、
   幅を 13.6rem（＝1920px）で止めて中央に置く。左右の余りはセクションの背景色。 */
#real-estate.service .cta__visual {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 13.6rem;
  margin-inline: auto;
}

#real-estate.service .cta__visual img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}
