/*
Theme Name: 相続不動産の出口
Theme URI: https://souzoku-deguchi.com/
Author: 士業不動産サポート株式会社
Description: 「相続不動産の出口」オリジナルテーマ v2。エディトリアル構成・藍鼠×白×紅。写真は外観→カスタマイズから差し替え可能。
Version: 3.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: souzoku-deguchi
*/

:root {
  --deep: #2F3E4A;
  --main: #52697B;
  --tint: #EAEFF2;
  --paper: #F7F6F2;
  --ink: #2B333A;
  --sub: #5D6B75;
  --line: #D9E0E4;
  --red: #A96060;
  --serif: "Shippori Mincho", serif;
  --sans: "Zen Kaku Gothic New", sans-serif;
  --en: "Cormorant Garamond", serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--sans); color: var(--ink); background: #FFFFFF; font-size: 14.5px; line-height: 2.1; letter-spacing: .04em; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 5vw; }

.en-label { font-family: var(--en); font-style: italic; font-weight: 500; font-size: 14px; letter-spacing: .14em; color: var(--red); }
.paren { font-family: var(--en); font-style: italic; letter-spacing: .1em; }
.sec-h { font-family: var(--serif); font-weight: 600; font-size: clamp(22px, 2.8vw, 30px); line-height: 2; letter-spacing: .1em; margin-top: 18px; }
.ghost { position: absolute; font-family: var(--en); font-style: italic; font-weight: 500; font-size: clamp(100px, 15vw, 210px); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(47,62,74,.14); pointer-events: none; white-space: nowrap; }

.lnk { display: inline-flex; align-items: center; gap: 16px; font-family: var(--en); font-style: italic; font-size: 15px; letter-spacing: .12em; color: var(--ink); }
.lnk .jp { font-family: var(--sans); font-style: normal; font-size: 12px; letter-spacing: .16em; color: var(--sub); }
.lnk .ln { position: relative; width: 56px; height: 1px; background: currentColor; transition: width .4s ease; }
.lnk .ln::after { content: ""; position: absolute; right: 0; top: -3.5px; width: 9px; height: 1px; background: currentColor; transform: rotate(35deg); transform-origin: right center; }
.lnk:hover .ln { width: 84px; }
.lnk.light { color: #F4F6F7; }
.lnk.light .jp { color: rgba(244,246,247,.7); }

.reveal { opacity: 0; transform: translateY(30px); transition: opacity 1s ease, transform 1s ease; }
.reveal.on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .mv-photo, .mq-track, .mv-copy .l span { animation: none !important; transform: none !important; opacity: 1 !important; }
}

/* ===== header ===== */
.hd { position: fixed; inset: 0 0 auto; z-index: 100; transition: background .4s ease, box-shadow .4s ease; }
.hd-in { display: flex; align-items: center; justify-content: space-between; padding: 0 4vw; height: 84px; }
.brand { font-family: var(--serif); font-weight: 700; font-size: 18px; letter-spacing: .14em; color: #FFF; transition: color .4s ease; }
.brand small { display: block; font-family: var(--en); font-style: italic; font-weight: 500; font-size: 10.5px; letter-spacing: .22em; color: rgba(255,255,255,.65); transition: color .4s ease; }
.hd.solid { background: rgba(255,255,255,.96); box-shadow: 0 1px 0 var(--line); }
.hd.solid .brand { color: var(--deep); }
.hd.solid .brand small { color: var(--red); }
.gnav { display: flex; align-items: center; gap: 34px; }
.gnav a { display: block; line-height: 1.5; }
.gnav .e { display: block; font-family: var(--en); font-style: italic; font-size: 14.5px; letter-spacing: .1em; color: #FFF; transition: color .4s ease; }
.gnav .j { display: block; font-size: 10.5px; letter-spacing: .18em; color: rgba(255,255,255,.65); transition: color .4s ease; }
.gnav a:hover .e { color: #D8AFAF; }
.hd.solid .gnav .e { color: var(--ink); }
.hd.solid .gnav .j { color: var(--sub); }
.hd.solid .gnav a:hover .e { color: var(--red); }
.menu-btn { display: none; }

/* ===== MV ===== */
.mv { position: relative; height: 100svh; min-height: 620px; overflow: hidden; }
.mv-photo { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: #33424E; animation: kb 10s ease-out both; }
@keyframes kb { from { transform: scale(1.06); } to { transform: scale(1); } }
.mv-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,42,51,.42) 0%, rgba(31,42,51,.18) 45%, rgba(31,42,51,.5) 100%); }
.mv-en { position: absolute; right: -1vw; bottom: 6vh; font-family: var(--en); font-style: italic; font-weight: 500; font-size: clamp(110px, 17vw, 250px); line-height: .9; color: rgba(255,255,255,.13); letter-spacing: .02em; pointer-events: none; }
.mv-en small { display: block; font-size: .22em; letter-spacing: .3em; color: rgba(255,255,255,.4); margin-left: .3em; }
.mv-copy { position: absolute; left: 5vw; top: 50%; transform: translateY(-54%); color: #F7F9FA; }
.mv-copy .l { display: block; overflow: hidden; }
.mv-copy .l span { display: inline-block; transform: translateY(110%); animation: up 1.2s cubic-bezier(.2,.75,.25,1) forwards; }
.mv-copy .l:nth-child(2) span { animation-delay: .18s; }
.mv-copy .l:nth-child(3) span { animation-delay: .36s; }
@keyframes up { to { transform: none; } }
.mv-copy h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(26px, 4vw, 44px); line-height: 2; letter-spacing: .14em; }
.mv-sub { margin-top: 30px; font-size: 12.5px; letter-spacing: .22em; color: rgba(255,255,255,.78); }
.scroll-cue { position: absolute; left: 5vw; bottom: 0; color: rgba(255,255,255,.65); font-size: 12px; display: flex; align-items: center; gap: 14px; }
.scroll-cue::after { content: ""; width: 1px; height: 72px; background: rgba(255,255,255,.5); display: block; animation: drop 2.2s ease-in-out infinite; transform-origin: top; }
@keyframes drop { 0% { transform: scaleY(0); } 45% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* ===== marquee ===== */
.mq { overflow: hidden; padding: 0; background: #FFF; }
.mq-track { display: flex; gap: 10px; width: max-content; animation: mq 42s linear infinite; }
.mq-track div { width: min(340px, 62vw); aspect-ratio: 3/2; background-size: cover; background-position: center; background-color: var(--tint); flex-shrink: 0; }
@keyframes mq { to { transform: translateX(-50%); } }

/* ===== section base ===== */
.sec { padding: 130px 0; position: relative; }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 64px; flex-wrap: wrap; }

/* ===== property ===== */
.works { background: #FFF; }
.work-row { display: grid; grid-template-columns: 200px 1fr auto auto; gap: 34px; align-items: center; padding: 26px 0; border-top: 1px solid var(--line); transition: background .3s ease; }
.work-row:last-of-type { border-bottom: 1px solid var(--line); }
.work-row:hover { background: var(--paper); }
.work-ph { aspect-ratio: 3/2; background-size: cover; background-position: center; background-color: var(--tint); }
.work-name { font-family: var(--serif); font-weight: 600; font-size: 18px; letter-spacing: .06em; }
.work-meta { font-size: 12px; letter-spacing: .12em; color: var(--sub); margin-top: 6px; }
.work-meta em { font-style: normal; color: var(--red); }
.work-price { font-family: var(--en); font-size: 26px; letter-spacing: .04em; color: var(--deep); white-space: nowrap; }
.work-price small { font-family: var(--sans); font-size: 11px; letter-spacing: .14em; color: var(--sub); margin-left: 4px; }
.works-note { margin-top: 22px; font-size: 11.5px; letter-spacing: .12em; color: var(--sub); }

/* ===== concept ===== */
.concept { background: var(--paper); overflow: hidden; }
.concept .ghost { top: 34px; left: -1vw; }
.concept-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: start; padding-top: 70px; }
.concept-copy p { color: var(--sub); margin-bottom: 1.6em; }
.concept-copy strong { color: var(--ink); font-weight: 700; }
.concept-lnk { margin-top: 14px; }

/* ===== worry ===== */
.worry { background: #FFF; }
.worry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 6vw; }
.worry-item { border-top: 1px solid var(--line); padding: 30px 6px 30px 0; display: grid; grid-template-columns: 64px 1fr; gap: 22px; align-items: baseline; transition: background .3s ease; }
.worry-item:hover { background: var(--paper); }
.worry-no { font-family: var(--en); font-style: italic; font-size: 15px; letter-spacing: .08em; color: var(--red); }
.worry-item h3 { font-family: var(--serif); font-weight: 600; font-size: 17px; letter-spacing: .08em; }
.worry-item p { font-size: 13px; color: var(--sub); line-height: 1.95; margin-top: 6px; }
.worry-close { margin-top: 60px; font-family: var(--serif); font-size: 18px; letter-spacing: .14em; color: var(--main); text-align: center; }

/* ===== risk ===== */
.risk { background: var(--deep); color: #F2F4F5; overflow: hidden; }
.risk .bgp { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .12; }
.risk .ghost { -webkit-text-stroke-color: rgba(255,255,255,.1); top: 40px; right: -2vw; left: auto; }
.risk .wrap { position: relative; z-index: 1; }
.risk .en-label { color: #D8AFAF; }
.risk .sec-h { color: #F7F9FA; }
.risk-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 70px; }
.risk-cell { padding: 10px 40px 10px 0; }
.risk-cell + .risk-cell { border-left: 1px solid rgba(255,255,255,.16); padding-left: 40px; }
.risk-cell .r-label { font-size: 12px; letter-spacing: .22em; color: #D8AFAF; }
.risk-cell .r-num { font-family: var(--en); font-size: clamp(46px, 5vw, 66px); line-height: 1.2; letter-spacing: .02em; margin-top: 16px; }
.risk-cell .r-num small { font-family: var(--serif); font-size: 15px; letter-spacing: .12em; margin-left: 6px; }
.risk-cell p { font-size: 12.5px; color: rgba(242,244,245,.7); line-height: 2; margin-top: 16px; }
.risk-foot { font-size: 11px; letter-spacing: .1em; color: rgba(242,244,245,.5); margin-top: 46px; }

/* ===== reason ===== */
.reason { background: #FFF; }
.reason-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px 7vw; margin-top: 20px; }
.reason-item .en-label { font-size: 13px; }
.reason-item h3 { font-family: var(--serif); font-weight: 600; font-size: 19px; letter-spacing: .1em; margin: 14px 0 12px; }
.reason-item p { font-size: 13.5px; color: var(--sub); }

/* ===== flow ===== */
.flow { background: var(--paper); }
.flow-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5vw; border-top: 1px solid var(--line); padding-top: 46px; margin-top: 40px; }
.flow-no { font-family: var(--en); font-style: italic; font-size: 40px; color: var(--red); line-height: 1; }
.flow-step h3 { font-family: var(--serif); font-weight: 600; font-size: 16.5px; letter-spacing: .1em; margin: 18px 0 10px; }
.flow-step p { font-size: 12.5px; color: var(--sub); line-height: 2; }
.flow-foot { margin-top: 52px; font-size: 12.5px; letter-spacing: .1em; color: var(--sub); }

/* ===== faq ===== */
.faq { background: #FFF; }
.faq-list { margin-top: 10px; }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 54px 1fr 40px; align-items: baseline; gap: 10px; padding: 30px 0; font-family: var(--serif); font-weight: 600; font-size: 16px; letter-spacing: .06em; transition: color .3s ease; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--main); }
.faq-item summary .q { font-family: var(--en); font-style: italic; font-size: 18px; color: var(--red); }
.faq-item summary .tg { justify-self: end; font-family: var(--en); font-size: 22px; color: var(--red); transition: transform .3s ease; }
.faq-item[open] summary .tg { transform: rotate(45deg); }
.faq-a { display: grid; grid-template-columns: 54px 1fr; gap: 10px; padding: 0 0 32px; }
.faq-a .a { font-family: var(--en); font-style: italic; font-size: 18px; color: var(--main); }
.faq-a p { font-size: 13.5px; color: var(--sub); }

/* ===== cta ===== */
.cta { position: relative; padding: 170px 0; color: #F7F9FA; overflow: hidden; }
.cta .bgp { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: #33424E; }
.cta .shade { position: absolute; inset: 0; background: rgba(31,42,51,.72); }
.cta .ghost { -webkit-text-stroke-color: rgba(255,255,255,.12); right: -2vw; bottom: 20px; left: auto; }
.cta .wrap { position: relative; z-index: 1; }
.cta .en-label { color: #D8AFAF; }
.cta h2 { font-family: var(--serif); font-weight: 600; font-size: clamp(24px, 3.4vw, 36px); letter-spacing: .16em; line-height: 2; margin: 20px 0 18px; }
.cta p { font-size: 13px; letter-spacing: .16em; color: rgba(247,249,250,.8); margin-bottom: 44px; }

/* ===== footer ===== */
.ft { background: #26333D; color: rgba(242,244,245,.72); padding: 90px 0 46px; overflow: hidden; position: relative; }
.ft-en { font-family: var(--en); font-style: italic; font-weight: 500; font-size: clamp(64px, 9vw, 130px); line-height: 1; color: rgba(255,255,255,.08); margin-bottom: 60px; white-space: nowrap; }
.ft-grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 44px; }
.ft-brand { font-family: var(--serif); font-weight: 700; font-size: 20px; letter-spacing: .14em; color: #F7F9FA; }
.ft-brand small { display: block; font-size: 11px; font-weight: 400; letter-spacing: .14em; color: rgba(242,244,245,.55); margin-top: 12px; line-height: 1.9; }
.ft-nav { display: grid; gap: 16px; }
.ft-nav a { display: block; line-height: 1.5; }
.ft-nav .e { font-family: var(--en); font-style: italic; font-size: 14px; letter-spacing: .1em; color: #E9EDF0; }
.ft-nav .j { font-size: 10.5px; letter-spacing: .18em; color: rgba(242,244,245,.5); }
.ft-nav a:hover .e { color: #D8AFAF; }
.ft-copy { width: 100%; border-top: 1px solid rgba(255,255,255,.12); margin-top: 56px; padding-top: 26px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 11px; letter-spacing: .12em; color: rgba(242,244,245,.45); }
.pagetop { font-family: var(--en); font-style: italic; letter-spacing: .1em; color: rgba(242,244,245,.6); }
.pagetop:hover { color: #D8AFAF; }

@media (max-width: 900px) {
  .concept-grid, .worry-grid, .reason-grid { grid-template-columns: 1fr; }
  .risk-grid { grid-template-columns: 1fr; gap: 40px; }
  .risk-cell + .risk-cell { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,.16); padding-top: 36px; }
  .flow-grid { grid-template-columns: 1fr 1fr; gap: 46px 8vw; }
  .work-row { grid-template-columns: 120px 1fr; gap: 18px; }
  .work-price { grid-column: 2; }
  .work-lnk { grid-column: 2; }
}
@media (max-width: 720px) {
  .sec { padding: 84px 0; }
  .gnav { display: none; }
  .menu-btn { display: flex; flex-direction: column; gap: 6px; background: none; border: 0; cursor: pointer; padding: 10px; }
  .menu-btn span { width: 26px; height: 1px; background: #FFF; transition: background .4s ease; }
  .hd.solid .menu-btn span { background: var(--deep); }
  .gnav.open { display: flex; position: fixed; inset: 84px 0 auto; flex-direction: column; align-items: flex-start; background: var(--deep); padding: 34px 6vw 44px; gap: 24px; }
  .gnav.open .e { color: #FFF !important; font-size: 17px; }
  .gnav.open .j { color: rgba(255,255,255,.6) !important; }
  .mv-en { font-size: 96px; right: -8px; bottom: 10vh; }
}

/* ===== 下層ページ共通 ===== */
.page-head { background: var(--paper); padding: 168px 0 64px; }
.page-head h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(24px, 3vw, 32px); letter-spacing: .12em; margin-top: 14px; }
.content-area { padding: 70px 0 130px; }
.entry-content { max-width: 800px; }
.entry-content p { margin-bottom: 1.7em; }
.entry-content h2 { font-family: var(--serif); font-weight: 600; font-size: 22px; letter-spacing: .08em; border-left: 2px solid var(--red); padding-left: 16px; margin: 2.4em 0 1em; }
.entry-content h3 { font-family: var(--serif); font-weight: 600; font-size: 18px; letter-spacing: .08em; color: var(--main); margin: 2em 0 .8em; }
.entry-content img { margin: 1.5em 0; }
.entry-content ul, .entry-content ol { padding-left: 1.6em; margin-bottom: 1.7em; }
.entry-content blockquote { border-left: 2px solid var(--line); padding: .2em 1.4em; color: var(--sub); margin: 1.5em 0; }
.entry-content table { border-collapse: collapse; width: 100%; margin: 1.5em 0; }
.entry-content th, .entry-content td { border: 1px solid var(--line); padding: 10px 14px; font-size: 13.5px; }
.entry-content th { background: var(--paper); font-family: var(--serif); font-weight: 600; }

/* フォーム（Contact Form 7 等） */
.entry-content input[type="text"], .entry-content input[type="email"], .entry-content input[type="tel"],
.entry-content textarea, .entry-content select {
  width: 100%; padding: 12px 14px; font-size: 14.5px; font-family: var(--sans);
  border: 1px solid var(--line); background: #FFFFFF; border-radius: 0;
}
.entry-content input:focus, .entry-content textarea:focus, .entry-content select:focus { outline: none; border-color: var(--main); }
.entry-content input[type="submit"], .entry-content button[type="submit"] {
  background: var(--deep); color: #FFFFFF; border: 0; padding: 15px 46px;
  font-size: 14px; letter-spacing: .2em; cursor: pointer; transition: background .3s ease;
}
.entry-content input[type="submit"]:hover { background: var(--red); }

/* 記事一覧 */
.post-list { max-width: 860px; }
.post-list a { display: grid; grid-template-columns: 110px 1fr; gap: 24px; align-items: baseline; padding: 26px 6px; border-top: 1px solid var(--line); transition: background .3s ease; }
.post-list a:last-child { border-bottom: 1px solid var(--line); }
.post-list a:hover { background: var(--paper); }
.post-list .d { font-family: var(--en); font-style: italic; font-size: 14px; letter-spacing: .08em; color: var(--red); }
.post-list .t { font-family: var(--serif); font-weight: 600; font-size: 16px; letter-spacing: .06em; }
.pagination { margin-top: 46px; font-family: var(--en); font-style: italic; }
.pagination .page-numbers { display: inline-block; padding: 6px 12px; margin-right: 6px; border: 1px solid var(--line); font-size: 14px; }
.pagination .current { background: var(--deep); color: #FFF; border-color: var(--deep); }

/* ===== 物件ページ（不動産プラグイン出力の調整） ===== */
.fudo-body { max-width: 900px; }
.fudo-body table { border-collapse: collapse; width: 100%; margin: 1.8em 0; font-size: 13.5px; }
.fudo-body th, .fudo-body td { border: 1px solid var(--line); padding: 12px 16px; text-align: left; vertical-align: top; }
.fudo-body th { background: var(--paper); font-family: var(--serif); font-weight: 600; white-space: nowrap; min-width: 8em; }
.fudo-body dl { display: grid; grid-template-columns: 9em 1fr; border-top: 1px solid var(--line); margin: 1.8em 0; }
.fudo-body dt { font-family: var(--serif); font-weight: 600; background: var(--paper); padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.fudo-body dd { margin: 0; padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.fudo-body h2, .fudo-body h3, .fudo-body h4 {
  font-family: var(--serif); font-weight: 600; letter-spacing: .08em;
  border: 0; padding: 0; margin: 2.2em 0 .8em;
}
.fudo-body h2 { font-size: 21px; border-left: 2px solid var(--red); padding-left: 16px; }
.fudo-body h3, .fudo-body h4 { font-size: 16.5px; color: var(--main); }
.fudo-body img { max-width: 100%; height: auto; }
.fudo-body strong, .fudo-body b { font-weight: 700; }
.fudo-body hr { border: 0; border-top: 1px solid var(--line); margin: 2.5em 0; }

/* 物件ページ内のフォーム（.entry-content外に出力されても効くように） */
.fudo-body input[type="text"], .fudo-body input[type="email"], .fudo-body input[type="tel"],
.fudo-body textarea, .fudo-body select {
  width: 100%; max-width: 640px; padding: 12px 14px; font-size: 14.5px;
  font-family: var(--sans); border: 1px solid var(--line); background: #FFFFFF; border-radius: 0;
}
.fudo-body input:focus, .fudo-body textarea:focus, .fudo-body select:focus { outline: none; border-color: var(--main); }
.fudo-body input[type="submit"], .fudo-body button[type="submit"] {
  width: auto; background: var(--deep); color: #FFFFFF; border: 0; padding: 15px 46px;
  font-size: 14px; letter-spacing: .2em; cursor: pointer; transition: background .3s ease;
}
.fudo-body input[type="submit"]:hover { background: var(--red); }
.fudo-body label { display: block; margin-bottom: 1.1em; font-size: 13.5px; letter-spacing: .06em; }

@media (max-width: 720px) {
  .fudo-body dl { grid-template-columns: 1fr; }
  .fudo-body dt { border-bottom: 0; }
  .fudo-body th { min-width: 6em; white-space: normal; }
}

/* ===== 物件詳細レイアウト（v2.4） ===== */
.fudo-cols { display: grid; grid-template-columns: 1fr 1.25fr; gap: 48px; align-items: start; margin-top: 10px; }
.list_picsam { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; align-items: start; }
.list_picsam a, .list_picsam img { display: block; width: 100%; height: auto; }
.list_picsam img { border: 1px solid var(--line); background: var(--tint); }
.new_mark { display: inline-block; background: var(--red); color: #FFFFFF; font-family: var(--sans); font-weight: 500; font-size: 11px; letter-spacing: .15em; padding: 3px 12px; margin-left: 14px; vertical-align: middle; }
.new_mark.up_mark { background: var(--main); }
.list_price { border-bottom: 1px solid var(--line); padding-bottom: 18px; margin-bottom: 22px; }
.list_price dl { display: flex; flex-wrap: wrap; gap: 6px 20px; align-items: baseline; margin: 0 0 8px; border: 0; padding: 0; }
.list_price dt { font-size: 12px; letter-spacing: .18em; color: var(--sub); background: none; border: 0; padding: 0; }
.list_price dd { margin: 0; padding: 0; border: 0; font-size: 14px; background: none; }
.list_price dd.dpoint4 { font-family: var(--en); font-weight: 600; font-size: 30px; color: var(--deep); letter-spacing: .02em; }
.list_price dd.shubetsu { font-size: 12.5px; color: var(--sub); letter-spacing: .12em; }
.fudo-body .list_price table, .fudo-body .list_price th, .fudo-body .list_price td { border: 0; padding: 0; background: none; }
.fudo-body #list_add, .fudo-body #list_other { margin: 0 0 1.6em; }
.fudo-body #list_add th, .fudo-body #list_other th { width: 8.5em; font-size: 12.5px; }
.fudo-body #list_add td, .fudo-body #list_other td { font-size: 13px; }
.list_detail_bottom_info { font-size: 11.5px; letter-spacing: .06em; color: var(--sub); margin: 20px 0; }
#toiawasesaki { margin-top: 56px; }
#contact_form { margin-top: 24px; padding-top: 40px; border-top: 1px solid var(--line); }
#contact_form .contact-label { margin-bottom: 6px; }
.fudo-contact-title { font-family: var(--serif); font-weight: 600; font-size: 20px; letter-spacing: .1em; border: 0; padding: 0; margin: 0 0 24px; }
#contact_form .wpcf7 { max-width: 680px; }
.fudo-back { margin-top: 56px; }
.page-head h1 .fudo_kaiin_type_logo img { vertical-align: middle; margin-right: 10px; }
@media (max-width: 900px) {
  .fudo-cols { grid-template-columns: 1fr; gap: 36px; }
}

/* ===== 物件（v3・テーマ内蔵機能） ===== */
.bukken-ph { border: 1px solid var(--line); background: var(--tint); }
.bukken-ph img { display: block; width: 100%; height: auto; }
.bukken-ph.noimg { aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; color: var(--sub); font-family: var(--en); font-style: italic; font-size: 13px; letter-spacing: .2em; }
.bukken-table { width: 100%; }
.bukken-desc { margin-top: 56px; }
.new_mark.sold { background: var(--sub); }
.page-head h1 .new_mark { font-size: 11px; vertical-align: middle; }
.work-name .new_mark { font-size: 10px; padding: 2px 8px; margin-left: 10px; }

/* ===== 下層ページの写真ヒーロー ===== */
.page-hero { position: relative; height: clamp(300px, 44vh, 460px); display: flex; align-items: flex-end; overflow: hidden; }
.page-hero .ph-img { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: #33424E; }
.page-hero .ph-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,42,51,.5) 0%, rgba(31,42,51,.24) 45%, rgba(31,42,51,.55) 100%); }
.page-hero .ph-in { position: relative; z-index: 1; width: 100%; padding-bottom: 46px; color: #F7F9FA; }
.page-hero .ph-en { font-family: var(--en); font-style: italic; font-size: 13px; letter-spacing: .2em; color: rgba(255,255,255,.78); margin-bottom: 10px; }
.page-hero h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(24px, 3.2vw, 34px); letter-spacing: .14em; line-height: 1.8; }

/* ===== 文章の改行制御 ===== */
p, li, dd { word-break: auto-phrase; }
@media (max-width: 720px) {
  br.pc { display: none; }
}
