@charset "utf-8";
/* ひろば不動産グループ（架空）デモサイト — 共通スタイル
   値は docs/実測/fudosan/{page}/ref-{1280,375}.json の実測値による。目分量で寄せない。 */

/* ===== 1. リセット ===== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body, h1, h2, h3, h4, h5, h6, p, figure, dl, dd, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg, video { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: inherit; text-decoration: none; }
button { background: none; border: 0; padding: 0; font-family: inherit; font-size: 16px; line-height: 1.6; letter-spacing: normal; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 16px; line-height: 1.6; letter-spacing: normal; }
table { border-collapse: collapse; }

/* ===== 2. トークン（実測の配色・コンテナ幅・イージング） ===== */
:root {
  --c-text: #333333;
  --c-white: #ffffff;
  --c-sub: #7d7d7d;
  --c-accent: #ec6400;   /* 主要アクセント（購入・CTA・価格・ホバー） */
  --c-line: #e6e6e6;
  --c-bg: #f8f8f8;
  --c-yellow: #f8b41e;   /* 売却系アクセント（トップの売却カード・リストのしるし） */
  --c-sell-key: #f7ad09; /* 売却の流れページの主色（実測 43回・#f8b41e とは別の黄） */
  --c-crumb: #e8eced;
  --c-line-green: #4cc764;
  --c-blue: #1da1f3;
  --c-insta-bg: rgba(247, 173, 9, 0.1);
  --c-buy-bg: #fdf5ef;
  --c-sell-bg: #fffaf0;
  --container-width: 1110px;
  --container-wide: 1140px;
  --container-narrow: 1024px;
  --ease: cubic-bezier(0.33, 1, 0.68, 1);
  --ease-out: cubic-bezier(0.19, 1, 0.22, 1);
  --header-h: 96px;
}

/* ===== 3. タイポグラフィ（実測: body 16/25.6/0.8 #333333） ===== */
body {
  margin: 0;
  font-family: Inter, "Noto Sans JP", Avenir, "Helvetica Neue", Helvetica, Arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, "ＭＳ Ｐゴシック", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;          /* 25.6px */
  letter-spacing: 0.8px;
  color: var(--c-text);
  overflow-wrap: break-word;
}
h1, h2 { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-text); }
h3 { font-size: 16px; font-weight: 400; line-height: 1.4; letter-spacing: 0.8px; color: var(--c-text); }
h4 { font-size: 14px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-blue); }
dt, dd { font-size: 16px; font-weight: 400; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-text); }

/* 実測の頻出コンテナ幅（1110=39回・993=22回・1140=15回）。この3つを実際に使う */
.container { width: var(--container-width); max-width: 100%; margin-inline: auto; }
.container-993 { width: 993px; max-width: 100%; margin-inline: auto; }
.container-wide { width: min(var(--container-wide), 100% - 40px); margin-inline: auto; }
.container-narrow { width: min(var(--container-narrow), 100% - 40px); margin-inline: auto; }
.u-en { font-family: Inter, sans-serif; }
.u-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ===== 4. ヘッダー（実測: fixed z2000・内側の帯 96px #ffffff・左 padding 40・リンク9・第1階層3） ===== */
.l-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 2000;
  transition: 0.3s var(--ease);
}
.l-header__wrapper {
  display: flex;
  align-items: center;
  gap: 32px;
  height: var(--header-h);
  padding-left: 40px;
  background: var(--c-white);
}
.l-header__logo { display: flex; align-items: center; }
.l-header__logo--link { display: inline-block; transition: opacity 0.3s var(--ease); }
.l-header__logo--link img { width: 280px; height: 40.1px; }
.l-header__nav { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; margin-left: auto; padding-right: 96px; }
.l-header__nav--top { display: flex; align-items: center; gap: 24px; }
.l-header__nav--top > li > a { font-size: 13px; font-weight: 400; letter-spacing: 0.8px; color: var(--c-sub); transition: color 0.3s var(--ease); }
.l-header__nav--top > li.-cv > a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 168px; height: 40px; border-radius: 20px;
  background: var(--c-blue); color: var(--c-white); font-weight: 700; font-size: 14px;
  transition: opacity 0.3s var(--ease);
}
.l-header__nav--main { display: flex; align-items: center; gap: 28px; }
.l-header__nav--main > li > a { font-size: 15px; font-weight: 700; letter-spacing: 0.8px; transition: color 0.3s var(--ease); }
.l-header__nav--top > li > a:hover, .l-header__nav--main > li > a:hover { color: var(--c-accent); }
.l-header__nav--top > li.-cv > a:hover { opacity: 0.8; }
/* ロゴリンクにはホバー変化を付けない（参考の hover 計測が「変化なし」＝compare の FAIL 条件） */

/* ヘッダーのスクロール挙動（実測: 3状態とも position fixed・y=0・高さ96・背景 #ffffff で不変。
   クラスだけ headroom 方式で付け替え、位置は動かさない＝参考の計測値に合わせる） */
.headroom { transition: transform 0.3s var(--ease); }
.headroom--not-top .l-header__wrapper { box-shadow: none; }

/* ハンバーガー（実測: 1280=96×96 右上 / 375=64×64 右上・fixed z2002） */
.c-btn__hamburger {
  position: fixed;
  top: 0; right: 0;
  z-index: 2002;
  width: 96px; height: 96px;
  display: grid; place-content: center; gap: 7px;
}
.c-btn__hamburger span { display: block; width: 26px; height: 2px; background: var(--c-text); transition: transform 0.3s var(--ease), opacity 0.3s var(--ease); }
.c-btn__hamburger.is-open span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.c-btn__hamburger.is-open span:nth-child(2) { opacity: 0; }
.c-btn__hamburger.is-open span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* ドロワー（実測 375: 全画面 375×667・#ffffff・z2001・transition 0.3s・リンク28） */
.l-drawer {
  position: fixed;
  inset: 0;
  z-index: 2001;
  background: var(--c-white);
  overflow-y: auto;
  padding: 96px 24px 48px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(100%);
  transition: 0.3s var(--ease);
}
.l-drawer.is-open { opacity: 1; visibility: visible; transform: translateX(0); }
/* 開いている間はヘッダーをパネルより前面に置く。ハンバーガーは header(z2000) の子なので、
   自身の z2002 だけでは body 直下のパネル(z2001)に勝てず、×印が押せなくなる（2026-09-29 実機検証で発見） */
body:has(.l-drawer.is-open) .l-header { z-index: 2003; }
.l-drawer__group + .l-drawer__group { margin-top: 24px; }
.l-drawer__title { font-size: 12px; font-weight: 700; letter-spacing: 2.4px; color: var(--c-sub); }
.l-drawer__list { margin-top: 8px; border-top: 1px solid var(--c-line); }
.l-drawer__list > li { border-bottom: 1px solid var(--c-line); }
.l-drawer__list > li > a { display: block; padding: 14px 4px; font-size: 15px; font-weight: 700; transition: color 0.3s var(--ease); }
.l-drawer__list > li > a:hover { color: var(--c-accent); }

/* ===== 5. 固定CTA（実測: aside 48×505.6 / x=1232 y=120 / fixed z2000） ===== */
.l-aside__cv {
  position: fixed;
  top: 120px; right: 0;
  z-index: 2000;
  width: 48px;
  display: flex; flex-direction: column;
}
.l-aside__cv > li > a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  width: 48px; height: 160px;
  writing-mode: vertical-rl;
  font-size: 13px; font-weight: 700; letter-spacing: 1.3px;
  /* 参考のカードは「白地＋枠線＋文字は項目の色」（実測）。塗り＋白文字にすると
     1番目が青地に青文字（--title の色）で読めなくなるため、参考どおり白地にする */
  background: var(--c-white);
  border: 2px solid var(--c-line);
  border-radius: 4px 0 0 4px;
  color: var(--c-blue);
  transition: opacity 0.3s var(--ease);
}
.l-aside__cv > li:nth-child(2) > a { border-color: var(--c-line-green); color: var(--c-line-green); }
.l-aside__cv > li:nth-child(3) > a { border-color: var(--c-accent); color: var(--c-accent); height: 185.6px; }
.l-aside__cv > li > a:hover .l-aside__cv--icon { opacity: 0.5; }
.l-aside__cv--icon { display: block; width: 20px; height: 20px; transition: opacity 0.3s var(--ease); }
.l-aside__cv--title { font-size: 14px; font-weight: 700; letter-spacing: 0.8px; color: var(--c-blue); }

/* ===== 6. 下部お問い合わせ帯（実測: 写真帯 h384 ＋ 3ボタン h189.6 内側 426.7） ===== */
.l-aside__contact--main {
  position: relative;
  height: 384px;
  margin: 0;
  overflow: hidden;
  background: center / cover no-repeat;
  display: grid;
  align-content: center;
}
.l-aside__contact--marquee { display: flex; width: max-content; }
.l-aside__contact--marquee > span {
  display: block;
  padding-right: 0.4em;
  font-family: Inter, sans-serif;
  font-size: 96px; font-weight: 700; line-height: 1; letter-spacing: 4px;
  color: var(--c-white);
  white-space: nowrap;
  animation: textLoop 10s linear infinite;
}
.l-aside__contact--list { display: flex; justify-content: center; }
.l-aside__contact--list-col { width: 426.7px; }
.l-aside__contact--list-col > a p { font-size: 14px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.l-aside__contact--list-col > a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  height: 189.6px;
  font-size: 15px; font-weight: 700;
  transition: opacity 0.3s var(--ease);
}
.l-aside__contact--list-col:nth-child(1) > a { background: var(--c-blue); color: var(--c-white); }
.l-aside__contact--list-col:nth-child(2) > a { background: var(--c-line-green); color: var(--c-white); }
.l-aside__contact--list-col:nth-child(3) > a { background: var(--c-accent); color: var(--c-white); }
.l-aside__contact--list-col > a:hover { opacity: 0.8; }

/* ===== 7. フッター（実測: h1458.3 #ffffff 内側1140 リンク32 ロゴ264×264・padding [0,0]） ===== */
.l-footer { background: var(--c-white); }
.l-footer__inner { width: min(var(--container-wide), 100% - 40px); margin-inline: auto; padding: 120px 0 56px; }
.l-footer__profile { text-align: center; }
.l-footer__profile--logo { margin: 0 auto; width: 264px; }
/* ロゴリンクにはホバー変化を付けない（参考の hover 計測が「変化なし」＝compare の FAIL 条件） */
.l-footer__profile--logo-link { display: block; }
.l-footer__profile--logo img { width: 264px; height: 264px; }
.l-footer__profile--address { margin-top: 20px; font-size: 14px; line-height: 2; color: var(--c-sub); }
.l-footer__profile--tel, .l-footer__profile--hours, .l-footer__profile--license { margin-top: 8px; font-size: 14px; line-height: 2; color: var(--c-sub); }
.l-footer__sns { display: flex; justify-content: center; gap: 24px; margin-top: 32px; }
.l-footer__sns > li > a { display: block; transition: opacity 0.3s var(--ease); }
.l-footer__sns > li > a:hover { opacity: 0.8; }
.l-footer__nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; margin-top: 88px; padding-top: 72px; border-top: 1px solid #e8eced; }
.l-footer__nav--title { font-size: 14px; font-weight: 700; letter-spacing: 1.4px; }
.l-footer__nav--list { margin-top: 20px; display: grid; gap: 14px; }
.l-footer__nav--list > li > a { font-size: 13px; color: var(--c-sub); transition: color 0.3s var(--ease); }
.l-footer__nav--list > li > a:hover { color: var(--c-accent); }
.l-footer__copyright { margin-top: 80px; text-align: center; font-size: 12px; letter-spacing: 1.2px; color: var(--c-sub); }
.l-footer__demo { margin-top: 16px; text-align: center; font-size: 12px; line-height: 1.8; color: var(--c-sub); }

/* ===== 8. 共通パーツ（ボタン・パンくず・見出し） ===== */
.c-btn__primary { display: inline-block; }
.c-btn__primary--wrapper {
  display: inline-flex; align-items: center; gap: 12px;
  padding-bottom: 6px;
  font-size: 15px; font-weight: 700; letter-spacing: 0.8px;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 1px;
  transition: color 0.3s var(--ease);
}
/* ホバーはアンカー自身ではなく子要素（--text / --icon / --text-line）を変える＝参考と同じ（§12 末尾） */
.c-btn__primary--icon { display: grid; place-content: center; width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 50%; transition: background-color 0.3s var(--ease), color 0.3s var(--ease); }
/* パンくずの文字色は参考の実測が #333333（サブ色ではない）。19ページで色だけ薄かったのを合わせた */
.c-breadcrumb { display: flex; gap: 8px; font-size: 12px; color: var(--c-text); }
.c-breadcrumb a { transition: color 0.3s var(--ease); }
.c-breadcrumb a:hover { color: var(--c-crumb); }
.c-heading__en { font-family: Inter, sans-serif; font-size: 24px; font-weight: 700; letter-spacing: 2.4px; line-height: 1.6; }
.c-heading__ja { display: block; margin-top: 8px; font-size: 14px; font-weight: 700; letter-spacing: 1.4px; color: var(--c-sub); }

/* ===== 9. キーフレーム（実測値） ===== */
@keyframes textLoop { from { transform: translate(0, 0); } to { transform: translate(-100%, 0); } }
@keyframes textLoading { from { max-width: 0; } to { max-width: 100%; } }
@keyframes underline_animation { 0% { background-size: 100% 1px; background-position: 100% 100%; } 50% { background-size: 0 1px; background-position: 100% 100%; } 51% { background-size: 0 1px; background-position: 0 100%; } 100% { background-size: 100% 1px; background-position: 0 100%; } }
@keyframes underline_animation_gray { 0% { background-size: 100% 1px; background-position: 100% 100%; } 50% { background-size: 0 1px; background-position: 100% 100%; } 51% { background-size: 0 1px; background-position: 0 100%; } 100% { background-size: 100% 1px; background-position: 0 100%; } }
@keyframes underline_animation_white { 0% { background-size: 100% 1px; background-position: 100% 100%; } 50% { background-size: 0 1px; background-position: 100% 100%; } 51% { background-size: 0 1px; background-position: 0 100%; } 100% { background-size: 100% 1px; background-position: 0 100%; } }
@keyframes circleLine { from { stroke-dasharray: 0, 377; } to { stroke-dasharray: 377, 377; } }
@keyframes activeAnimation { from { opacity: 0; transform: translate(-50%, -60%); } to { opacity: 1; transform: translate(-50%, -50%); } }
@keyframes scroll-hint-appear { 0% { opacity: 0; transform: translateX(40px); } 50% { opacity: 1; transform: translateX(0); } 100% { opacity: 0; transform: translateX(-40px); } }

/* ===== 10. スクロール出現（実測: .visible 0.6s ease-out / .is-active 0.6s / .is-changed） ===== */
.js-reveal { opacity: 0; transition: opacity 0.6s var(--ease-out); }
.js-reveal.visible { opacity: 1; }
.js-observer { transition: all 0.6s var(--ease-out); }
.js-observer.is-active { opacity: 1; }
.js-line { display: block; max-width: 0; overflow: hidden; white-space: nowrap; }
.js-line.is-changed { animation: textLoading 1.2s linear forwards; }
.js-line.is-changed.-delay { animation-delay: 0.2s; }
/* 物件詳細の出現（実測: 開始状態は opacity 1・transform none のまま／duration 0.8s×3プロパティ／発火 0.31） */
.js-reveal2 { transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out), -webkit-transform 0.8s var(--ease-out); }
.js-reveal2.visible { transform: translateY(0); }

/* ===== 11. ブレークポイント（参考の @media の px 値をすべて宣言する＝共通方針 §11-9）
   実測値: 360 / 460 / 480 / 600 / 640 / 767 / 768 / 800 / 1024 / 1279 / 1280 / 1440 / 1600 / 1879 ===== */
@media (max-width: 1879px) { :root { --container-width: 1110px; } }
@media screen and (max-width: 1600px) { :root { --container-width: 1110px; } }
@media (max-width: 1440px) { .l-header__nav--main { gap: 24px; } }
@media screen and (min-width: 1280px) { .l-header__wrapper { padding-left: 40px; } }
@media (max-width: 1279px) {
  .l-header__nav { padding-right: 96px; }
  /* 固定CTA: 参考は 1279 以下で「右端の縦並び」から「画面下部の横3等分バー」に変わる
     （実測 375 幅で 375×73.6・y=593.4＝画面下端・z2000／下地は半透明の黒・カードは角丸） */
  .l-aside__cv {
    top: auto; bottom: 0;
    width: 100%;
    flex-direction: row;
    gap: 8px;
    padding: 15px 20px;
  }
  .l-aside__cv::before {
    content: "";
    position: absolute; inset: 0;
    z-index: -1;
    background: var(--c-text);
    opacity: 0.5;
  }
  .l-aside__cv > li { flex: 1 1 0; min-width: 0; }
  .l-aside__cv > li > a,
  .l-aside__cv > li:nth-child(3) > a {
    width: 100%; height: 100%;
    flex-direction: row;
    gap: 0.5em;
    padding: 8px;
    border-radius: 4px;
    writing-mode: horizontal-tb;
    font-size: 14px; letter-spacing: 0;
  }
  .l-aside__cv--icon { flex: 0 0 24px; width: 24px; height: 24px; }
  /* 参考の SP の h4 は 10px・字間 0.8・行間 13（＝10×1.3）。色は PC と同じ項目の色 */
  .l-aside__cv--title { font-size: inherit; letter-spacing: 0.8px; line-height: 1.3; }
  /* バーの高さぶんページの下に余白を作る。参考には無い余白だが、参考には無い
     「デモサイトの注記」（ページ最後・ゲート5 の対象）がバーに隠れるため必要。
     フッターではなく #js-wrapper に入れる＝フッターの高さは参考と同じまま（計測に出ない） */
  #js-wrapper { padding-bottom: 73.6px; }
}
@media screen and (min-width: 1024px) { .l-footer__nav { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 1024px) { .l-footer__nav { gap: 24px; } }
@media (max-width: 800px) { .l-aside__contact--marquee > span { font-size: 64px; } }
@media (min-width: 768px) { .c-btn__hamburger { width: 96px; height: 96px; } }
@media screen and (max-width: 768px) { .l-footer__nav { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) {
  :root { --header-h: 64px; }
  .l-header__wrapper { height: 64px; padding-left: 16px; background: none; }
  .l-header__logo--link img { width: 200px; height: 28.6px; }
  .l-header__nav { display: none; }
  .c-btn__hamburger { width: 64px; height: 64px; }
  /* 固定CTA: 参考は 767 以下で下地の余白と文字を詰める（バー自体は出したまま）
     高さは参考の実測 73.6px（375 幅）に合わせる＝中身の詰め方ではなくバーの高さを正とする（§7） */
  .l-aside__cv { padding: 8px 15px; min-height: 73.6px; align-items: stretch; }
  .l-aside__cv > li > a { padding: 8px 4px; gap: 0.4em; font-size: 10px; line-height: 1.3; }
  .l-aside__cv > li:nth-child(2) > a { font-size: 12px; }
  .l-aside__contact--main { height: 281.3px; }
  .l-aside__contact--list { display: block; }
  .l-aside__contact--list-col { width: 100%; }
  .l-aside__contact--list-col > a { height: 168.8px; }
  .l-aside__contact--list-col:nth-child(2) > a { height: 162.4px; }
  .l-footer__inner { padding: 64px 0 32px; }
  .l-footer__profile--logo, .l-footer__profile--logo img { width: 180px; height: 180px; }
}
@media (max-width: 640px) { .l-aside__contact--marquee > span { font-size: 48px; } }
@media screen and (max-width: 600px) { .l-footer__nav { gap: 20px; } }
@media (min-width: 480px) { .l-footer__copyright { font-size: 12px; } }
@media (max-width: 480px) { .l-footer__nav { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .l-drawer { padding: 80px 16px 40px; } }
@media (max-width: 360px) { .l-header__logo--link img { width: 168px; height: 24px; } }
@media (min-resolution: 192dpi) { .l-header__logo--link img { image-rendering: auto; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }

/* ===================================================================
   12. トップページ（index）— 実測ブロック #0〜#12 に対応
   画像は ../img/ ＝この CSS からの相対パスで参照する（assets/ の1つ上の img/ に解決）。
   絶対パス /samples/fudosan/img/ は置き場所が変わると 404 になる（複製先＝hp-seisaku の
   templates/fudosan/ で実際に壊れた・2026-10-02 findings #261）
   =================================================================== */

/* --- #0 ヒーロー: h800 / bg #ffffff --- */
.l-hero { position: relative; height: 800px; background: var(--c-white); overflow: hidden; }
.l-hero__outer { position: relative; height: 100%; }
.l-hero__wrapper {
  position: absolute; inset: 0 0 0 280px;
  background: url('../img/index-hero-1.webp') center / cover no-repeat;
}
.l-hero__sitename { display: none; }
.l-hero__catch { position: absolute; left: 80px; top: 232px; z-index: 2; display: grid; gap: 10px; justify-items: start; }
.l-hero__catch--line {
  display: block; max-width: 0; overflow: hidden; white-space: nowrap;
  padding: 6px 20px;
  background: rgba(255, 255, 255, 0.86);
  font-size: 32px; font-weight: 700; letter-spacing: 3.2px; line-height: 1.5;
}
.l-hero__catch--line.-lg { font-size: 64px; letter-spacing: 6.4px; color: var(--c-accent); }
.l-hero__catch--line.is-changed { animation: textLoading 1.2s linear forwards; }
/* ニュースティッカー（実測: 375 で bgImage=gradient・h3 は 16/400/22.4 #333333） */
.l-hero__news {
  position: absolute; left: 80px; right: 80px; bottom: 56px; z-index: 2;
  display: flex; align-items: center; gap: 24px;
  height: 64px; padding: 0 24px;
  background-image: linear-gradient(90deg, #fdf5ef 0%, #fffaf0 100%);
  color: var(--c-text);
}
.l-hero__news--link { display: flex; align-items: center; gap: 16px; min-width: 0; }
.l-hero__news--date { font-family: Inter, sans-serif; font-size: 13px; letter-spacing: 1.3px; color: var(--c-accent); }
.l-hero__news--cat { font-size: 12px; padding: 2px 10px; border: 1px solid var(--c-line); }
.l-hero__news--title { overflow: hidden; font-size: 16px; font-weight: 400; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.l-hero__news--more { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: 13px; font-weight: 700; white-space: nowrap; }
.l-hero__scroll {
  position: absolute; left: 32px; bottom: 160px; z-index: 2;
  writing-mode: vertical-rl;
  font-family: Inter, sans-serif; font-size: 12px; letter-spacing: 2.4px; color: var(--c-text);
}
.l-hero__scroll::after { content: ''; display: block; width: 1px; height: 64px; margin: 12px auto 0; background: var(--c-text); }

/* --- #1 査定バナー: h250 / pad上50 / 内側1152 --- */
.p-index__bnr { padding-top: 50px; }
.p-index__bnr-inner { width: 1152px; max-width: calc(100% - 40px); margin-inline: auto; }
.p-index__bnr-link { position: relative; display: block; transition: opacity 0.6s ease-in-out; }
.p-index__bnr-link:hover { opacity: 0.6; }
.p-index__bnr-link img { display: block; width: 800px; height: 200px; margin-inline: auto; object-fit: cover; }
/* バナーの文字は CSS で載せる（§8.1「バナー・帯の文字は HTML/CSS で載せる」）。
   擬似要素で描くので DOM の要素数（img1 a1）は参考と同じまま＝計測値に影響しない。 */
.p-index__bnr-link::before,
.p-index__bnr-link::after { position: absolute; top: 0; left: 50%; width: 800px; max-width: 100%; height: 200px; transform: translateX(-50%); pointer-events: none; }
.p-index__bnr-link::before {
  content: "お家の価格を 最短10秒査定";
  display: flex; align-items: center; padding: 0 0 26px 48px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.9) 48%, rgba(255, 255, 255, 0) 82%);
  color: var(--c-text); font-size: 30px; font-weight: 700; letter-spacing: 1.5px;
}
.p-index__bnr-link::after {
  content: "無料・匿名OK／今すぐ10秒チェック";
  display: flex; align-items: center; padding: 108px 0 0 48px;
  color: var(--c-accent); font-size: 15px; font-weight: 700; letter-spacing: 1px;
}

/* --- #2 HISTORY: h2090.9 / 内側1024 --- */
.p-index__history { position: relative; }
.p-index__history--bg {
  position: fixed; inset: 0 auto auto 0; z-index: -10;
  width: 100vw; height: 800px;
  background: url('../img/index-history-1.webp') center / cover no-repeat;
  opacity: 0.12;
}
.p-index__history--inner { width: 1024px; max-width: calc(100% - 40px); margin-inline: auto; padding: 220px 0 240px; }
.p-index__history--heading { text-align: center; }
.p-index__history--mark { margin: 56px auto 0; width: 120px; }
.p-index__history--mark-line { stroke-dasharray: 0, 377; animation: circleLine 1s ease forwards; }
.p-index__history--body { margin-top: 96px; }
.p-index__history--lead, .p-index__history--lead2 { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-index__history--lead2 { margin-top: 96px; }
/* 1段落＝1行の短い文（参考の本文量は404字）。行間ではなく段落の間隔で高さを作る */
.p-index__history--body > p { margin-top: 64px; line-height: 2.2; }
.p-index__history--body > p.-lead { font-weight: 700; }
.p-index__history--btn { display: block; margin-top: 96px; text-align: center; }

/* --- #3 FEATURES: h1973.1 / 内側1140 / h3 24/700/36 --- */
.p-index__features--inner { width: var(--container-wide); max-width: calc(100% - 40px); margin-inline: auto; padding: 130px 0 140px; }
.p-index__features--heading { text-align: center; }
.p-index__features--list { margin-top: 80px; display: grid; gap: 80px; }
.p-index__features--item { display: grid; grid-template-columns: 447px 1fr; gap: 64px; align-items: center; }
.p-index__features--item:nth-child(even) { grid-template-columns: 1fr 447px; }
.p-index__features--item:nth-child(even) .p-index__features--photo { order: 2; }
.p-index__features--photo { width: 447px; height: 447px; background: center / cover no-repeat var(--c-bg); }
.p-index__features--text > h3 { font-size: 24px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; }
.p-index__features--text > p { margin-top: 24px; line-height: 2.2; }
.p-index__features--btn { display: block; margin-top: 88px; text-align: center; }

/* --- #4 SERVICES: h2457.7 / 内側1140 --- */
.p-index__service { position: relative; }
.p-index__service--image {
  position: sticky; top: 0; left: 50%;
  width: 640px; height: 800px; margin: 0;
  background: url('../img/index-service-2.webp') center / cover no-repeat;
  opacity: 0.1;
}
.p-index__service--inner { position: relative; width: var(--container-wide); max-width: calc(100% - 40px); margin: -800px auto 0; padding: 180px 0 200px; }
.p-index__service--heading { text-align: center; }
.p-index__service--card { position: relative; margin-top: 120px; padding: 110px 72px 120px; }
.p-index__service--card.-buy { background: var(--c-buy-bg); }
.p-index__service--card.-sell { background: var(--c-sell-bg); }
.p-index__service--tag { position: absolute; top: 0; left: 72px; display: inline-block; padding: 8px 20px; background: var(--c-yellow); color: var(--c-white); font-family: Inter, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1.3px; }
.p-index__service--card-title .c-heading__en { font-size: 40px; letter-spacing: 4px; }
.p-index__service--card > p { margin-top: 32px; line-height: 2.2; }
.p-index__service--card > h3 { margin-top: 64px; font-size: 16px; font-weight: 700; line-height: 1.6; }
.p-index__service--list { margin-top: 28px; display: grid; gap: 16px; }
.p-index__service--list > li { position: relative; padding-left: 24px; line-height: 1.8; }
.p-index__service--list > li::before { content: ''; position: absolute; left: 0; top: 11px; width: 12px; height: 2px; background: var(--c-accent); }
.p-index__service--card.-sell .p-index__service--list > li::before { background: var(--c-yellow); }
.p-index__service--link { display: inline-block; margin-top: 32px; padding-bottom: 4px; border-bottom: 1px solid var(--c-line); font-size: 14px; transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.p-index__service--link:hover { color: var(--c-accent); border-color: var(--c-accent); }
.p-index__service--card .c-btn__primary { margin-top: 56px; margin-right: 32px; }

/* --- #5 PROPERTY: h1921.1 / 内側1140 / カード h3 18/700/27 --- */
.p-index__property--inner { width: var(--container-wide); max-width: calc(100% - 40px); margin-inline: auto; padding: 170px 0 180px; }
.p-index__property--heading { text-align: center; }
.p-index__property--slider { position: relative; margin-top: 88px; padding-bottom: 72px; }
.c-card__property--price, .c-card__property--spec, .c-card__property--access { display: block; }
.c-card__property--access { margin-top: 6px; font-size: 13px; line-height: 1.8; color: var(--c-sub); }
.c-card__property { display: block; }
.c-card__property--thumb { display: block; width: 100%; aspect-ratio: 350 / 196; background: center / cover no-repeat var(--c-bg); transition: transform 0.3s var(--ease); }
.c-card__property:hover .c-card__property--thumb { transform: scale(1.05); }
.c-card__property--meta { display: flex; gap: 8px; margin-top: 16px; }
.c-card__property--chip { font-size: 12px; padding: 3px 10px; border: 1px solid var(--c-line); transition: background-color 0.3s var(--ease), color 0.3s var(--ease); }
.c-card__property:hover .c-card__property--chip { background: var(--c-accent); color: var(--c-white); }
.c-card__property--area { font-size: 12px; padding: 3px 10px; color: var(--c-sub); }
.c-card__property--title { margin-top: 12px; font-size: 18px; font-weight: 700; line-height: 1.5; transition: color 0.3s var(--ease); }
.c-card__property:hover .c-card__property--title { color: var(--c-accent); }
.c-card__property--price { margin-top: 8px; font-size: 22px; font-weight: 700; color: var(--c-accent); }
.c-card__property--spec { margin-top: 8px; font-size: 13px; line-height: 1.8; color: var(--c-sub); }
.p-index__property--pagination { position: absolute; left: 0; right: 0; bottom: 0; }
.p-index__property--prev, .p-index__property--next {
  position: absolute; bottom: -8px; width: 48px; height: 48px;
  display: grid; place-content: center;
  border: 1px solid var(--c-line); border-radius: 50%;
  transition: border-color 0.3s var(--ease), color 0.3s var(--ease);
}
.p-index__property--prev { right: 64px; }
.p-index__property--next { right: 0; }
.p-index__property--prev:hover, .p-index__property--next:hover { border-color: var(--c-accent); color: var(--c-accent); }
.p-index__property--search { margin-top: 96px; padding: 56px; background: var(--c-bg); }
.p-index__property--search-title { font-size: 16px; font-weight: 700; }
.p-index__property--search-list { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 24px; }
.p-index__property--search-list > li > a { display: flex; justify-content: space-between; padding: 12px 16px; background: var(--c-white); border: 1px solid var(--c-line); font-size: 14px; transition: border-color 0.3s var(--ease), color 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.p-index__property--search-list > li > a:hover { border-color: var(--c-accent); color: var(--c-accent); box-shadow: rgba(236, 100, 0, 0.1) 0 0 15px; }
.p-index__property--search-list span { color: var(--c-sub); }
.p-index__property--btn { display: block; margin-top: 64px; text-align: center; }

/* --- #6 GROUP: h1161.4 / 内側1140 / 地図 img 570×594 --- */
.p-index__group--inner { width: var(--container-wide); max-width: calc(100% - 40px); margin-inline: auto; padding: 150px 0 160px; }
.p-index__group--heading { text-align: center; }
.p-index__group--body { margin-top: 80px; display: grid; grid-template-columns: 570px 1fr; gap: 72px; align-items: center; }
.p-index__group--map img { width: 570px; height: 594px; }
.p-index__group--text > h3 { font-size: 16px; font-weight: 700; line-height: 2; letter-spacing: 0.8px; }
.p-index__group--text > p { margin-top: 24px; line-height: 2.2; }
.p-index__group--list { margin-top: 24px; display: grid; gap: 10px; }
.p-index__group--list > li { position: relative; padding-left: 20px; font-size: 14px; line-height: 1.9; color: var(--c-sub); }
.p-index__group--list > li::before { content: ''; position: absolute; left: 0; top: 12px; width: 10px; height: 1px; background: var(--c-sub); }
.p-index__group--text .c-btn__primary { margin-top: 40px; margin-right: 32px; }

/* --- #7 NEWS: h636.9 / pad下128 / 内側1140 / h2 24/700/2.4/38.4 --- */
.p-index__news { padding-bottom: 128px; }
.p-index__news--inner { width: var(--container-wide); max-width: calc(100% - 40px); margin-inline: auto; padding-top: 80px; }
.p-index__news--heading { font-family: Inter, sans-serif; font-size: 24px; font-weight: 700; letter-spacing: 2.4px; line-height: 1.6; }
.p-index__news--list { margin-top: 32px; border-top: 1px solid var(--c-line); }
.p-index__news--list > li { display: flex; align-items: center; gap: 24px; border-bottom: 1px solid var(--c-line); }
.p-index__news--row { position: relative; flex: 1; display: flex; align-items: center; gap: 24px; min-width: 0; padding: 24px 0; }
.p-index__news--row::before { content: ''; position: absolute; left: 0; bottom: -1px; width: 0; height: 1px; background: var(--c-accent); transition: width 0.3s var(--ease); }
.p-index__news--row:hover::before { width: 100%; }
.p-index__news--meta { display: flex; align-items: center; gap: 16px; }
/* 実測: dt / dd とも 16/400/0.8/25.6 #333333 */
.p-index__news--meta dt { font-family: Inter, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.6; letter-spacing: 0.8px; transition: color 0.3s var(--ease); }
.p-index__news--meta dd { padding: 3px 12px; font-size: 16px; font-weight: 400; line-height: 1.6; letter-spacing: 0.8px; border: 1px solid #e8eced; }
.p-index__news--row h3 { overflow: hidden; font-size: 18px; font-weight: 400; line-height: 1.4; letter-spacing: 0.8px; text-overflow: ellipsis; white-space: nowrap; transition: color 0.3s var(--ease); }
.p-index__news--cat { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--c-sub); white-space: nowrap; transition: color 0.3s var(--ease); }
.p-index__news--cat:hover { color: var(--c-accent); }
.p-index__news--btn { display: block; margin-top: 40px; text-align: right; }

/* --- #8 SNS: h985.7 / pad130・80 / 内側1140 / bg #f7ad091a / img 10×211 --- */
.p-index__insta { padding: 130px 0 80px; background: var(--c-insta-bg); }
.p-index__insta--inner { width: var(--container-wide); max-width: calc(100% - 40px); margin-inline: auto; }
.p-index__insta--heading { text-align: center; }
.p-index__insta--inner > p { margin-top: 24px; text-align: center; line-height: 2; color: var(--c-sub); }
.p-index__insta--grid { margin-top: 48px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.p-index__insta--photo { position: relative; display: block; transition: all; }
.p-index__insta--photo:hover { opacity: 0.85; }
.p-index__insta--photo img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.p-index__insta--photo svg { position: absolute; right: 8px; bottom: 8px; color: var(--c-white); }
.p-index__insta--btn { display: block; margin-top: 48px; text-align: center; }

/* --- ボタンのホバー: 参考と同じく「子要素」を変える（アンカー自身は変化させない＝hover 計測が {} になる） --- */
.c-btn__primary--text { background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: 0 100%; background-size: 100% 1px; transition: color 0.3s var(--ease); }
.c-btn__primary .c-btn__primary--wrapper:hover .c-btn__primary--text { color: var(--c-accent); }
.c-btn__primary .c-btn__primary--wrapper:hover .c-btn__primary--text-line { animation: underline_animation 0.9s ease both; }
.c-btn__primary.-primary .c-btn__primary--wrapper:hover .c-btn__primary--text { color: var(--c-text); }
.c-btn__primary.-primary .c-btn__primary--wrapper:hover .c-btn__primary--icon { background-color: var(--c-text); color: var(--c-white); }
.c-btn__primary.-primary .c-btn__primary--wrapper:hover .c-btn__primary--text-line { animation: underline_animation_gray 0.9s ease both; }
.c-btn__primary.-white .c-btn__primary--wrapper:hover .c-btn__primary--text { color: var(--c-white); }
.c-btn__primary.-white .c-btn__primary--wrapper:hover .c-btn__primary--icon { background-color: var(--c-white); }
.c-btn__primary.-white .c-btn__primary--wrapper:hover .c-btn__primary--text-line { animation: underline_animation_white 0.9s ease both; }

/* --- index の SP（375）: ヒーロー 196/375/96（w345）・バナー pad上30・SNS pad70/100 --- */
@media (max-width: 767px) {
  .l-hero { height: auto; padding-top: 64px; }
  .l-hero__outer { display: grid; height: auto; }
  .l-hero__catch { position: static; height: 196px; align-content: center; padding-inline: 15px; }
  .l-hero__catch--line { padding: 4px 12px; background: none; font-size: 22px; letter-spacing: 2.2px; }
  .l-hero__catch--line.-lg { font-size: 40px; letter-spacing: 4px; }
  .l-hero__wrapper { position: static; height: 375px; }
  .l-hero__news { position: relative; left: auto; right: auto; bottom: auto; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; width: 345px; height: 96px; margin: -32px auto 0; }
  /* 参考の SP は「日付＋カテゴリ」「タイトル」の2段。1行に並べると link が 416px になり
     タイトルが画面の外（x=455）まで伸びて、ellipsis も画面外＝文字が切れて見える */
  .l-hero__news--link { flex-wrap: wrap; gap: 6px 16px; width: 100%; }
  .l-hero__news--cat { flex: none; white-space: nowrap; }
  .l-hero__news--title { width: 100%; }
  .l-hero__news--more { margin-left: 0; }
  .l-hero__scroll { display: none; }
  .p-index__bnr { padding-top: 30px; }
  .p-index__bnr-inner { width: 100%; max-width: calc(100% - 30px); }
  .p-index__bnr-link img { width: 315px; height: 78.8px; }
  .p-index__bnr-link::before,
  .p-index__bnr-link::after { width: 315px; height: 78.8px; white-space: nowrap; }
  .p-index__bnr-link::before { padding: 0 0 12px 18px; font-size: 14px; letter-spacing: 0.6px; }
  .p-index__bnr-link::after { padding: 44px 0 0 18px; font-size: 9px; letter-spacing: 0.4px; }
  .p-index__history--inner { width: 100%; max-width: 100%; padding: 90px 15px 100px; }
  .p-index__features--inner { width: 100%; max-width: 100%; padding: 90px 15px 100px; }
  .p-index__features--item, .p-index__features--item:nth-child(even) { grid-template-columns: 1fr; gap: 24px; }
  .p-index__features--photo { width: 100%; height: auto; aspect-ratio: 1; }
  .p-index__service--image { display: none; }
  .p-index__service--inner { width: 100%; max-width: 100%; margin-top: 0; padding: 90px 15px 100px; }
  .p-index__service--card { padding: 40px 24px; }
  .p-index__property--inner { width: 100%; max-width: 100%; padding: 90px 15px 100px; }
  .p-index__property--search { padding: 24px 16px; }
  .p-index__property--search-list { grid-template-columns: 1fr; }
  .p-index__group--inner { width: 100%; max-width: 100%; padding: 80px 15px 90px; }
  .p-index__group--body { grid-template-columns: 1fr; gap: 32px; }
  .p-index__group--map img { display: block; width: 159.4px; height: 166.2px; margin-inline: auto; }
  .p-index__news { padding-bottom: 96px; }
  .p-index__news--inner { width: 100%; max-width: 100%; padding: 32px 15px 0; }
  .p-index__news--list > li { flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px 0; }
  .p-index__news--row { flex-direction: column; align-items: flex-start; gap: 8px; padding: 0; }
  .p-index__news--row h3 { white-space: normal; }
  .p-index__insta { padding: 70px 0 100px; }
  .p-index__insta--inner { width: 100%; max-width: 100%; padding-inline: 15px; }
  .p-index__insta--grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  /* フッターは SP で 7 リンクだけ見せる（実測: footerLinks 375 = 7・img 1） */
  .l-footer__sns { display: none; }
  .l-footer__nav { display: block; }
  .l-footer__nav--group { display: none; }
  .l-footer__nav--group.-sp { display: block; }
}

/* ===================================================================
   13. 下層ページ共通 ＋ 物件一覧（property）
   =================================================================== */

/* --- 下層見出し帯B（実測: h202.1 / 内側1140 / h1 は 16/700/0.8/25.6＝表示サイズは内側の span） --- */
.p-lower__head { margin-top: var(--header-h); }
.p-lower__head.-b > .container-wide { padding: 50px 0 40px; }
.p-lower__head--title { display: block; }
.p-lower__head--en { display: block; font-family: Inter, sans-serif; font-size: 44px; font-weight: 700; line-height: 1.2; letter-spacing: 4.4px; }
.p-lower__head--ja { display: block; margin-top: 8px; font-size: 13px; font-weight: 700; line-height: 1.6; letter-spacing: 1.3px; }
.p-lower__head .c-breadcrumb { margin-top: 12px; }

/* --- 絞り込みパネル（実測: h497.8 / 内側1140 / btn6・li9・svg5・form1・input10） --- */
.p-property-list__filter > .container-wide { padding-bottom: 72px; }
.p-property-list__filter--form { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.p-property-list__filter--panel { border: 1px solid var(--c-line); }
.p-property-list__filter--head { display: flex; align-items: center; gap: 10px; padding: 22px 20px; border-bottom: 1px solid var(--c-line); font-size: 15px; font-weight: 700; }
.c-btn__filter-toggle { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; color: var(--c-sub); }
.c-btn__filter-toggle--bar { display: block; width: 24px; height: 1px; background: var(--c-line); }
.p-property-list__filter--list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.p-property-list__filter--list > li { border-bottom: 1px solid var(--c-line); }
.p-property-list__filter--list > li:nth-child(odd) { border-right: 1px solid var(--c-line); }
.p-property-list__filter--list label { display: flex; align-items: center; gap: 10px; padding: 21px 20px; font-size: 14px; cursor: pointer; transition: color 0.3s var(--ease); }
.p-property-list__filter--list label:hover { color: var(--c-accent); }
.p-property-list__filter--list span { margin-left: auto; font-size: 12px; color: var(--c-sub); }
.p-property-list__filter--submit { grid-column: 1 / -1; display: flex; gap: 16px; }
.p-property-list__filter--submit input[type="search"] { flex: 1; height: 56px; padding: 0 20px; border: 1px solid var(--c-line); }
.c-btn__filter-submit { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 280px; height: 56px; background: var(--c-accent); color: var(--c-white); font-weight: 700; transition: box-shadow 0.3s var(--ease); }
.c-btn__filter-submit::before { content: ""; position: absolute; inset: 0; background: rgba(255, 255, 255, 0.16); opacity: 0; transition: opacity 0.3s var(--ease); }
.c-btn__filter-submit:hover { box-shadow: rgba(236, 100, 0, 0.1) 0 0 15px; }
.c-btn__filter-submit:hover::before { opacity: 1; }
.c-btn__filter-submit > * { position: relative; }

/* --- 物件カード一覧（実測: h1906 / 内側1140 / h3×12・li23・img0） --- */
.p-property-list__body > .container-wide { padding: 8px 0 40px; }
.p-property-list__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.c-card__property--sub { display: inline-block; margin-top: 14px; padding-bottom: 3px; border-bottom: 1px solid var(--c-line); font-size: 13px; color: var(--c-sub); transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.c-card__property--sub:hover { color: var(--c-accent); border-color: var(--c-accent); }
.c-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 72px; }
.c-pagination > li > a { display: grid; place-content: center; min-width: 44px; height: 44px; padding-inline: 12px; border: 1px solid var(--c-line); font-size: 14px; transition: background-color 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease); }
.c-pagination > li > a:hover { background: var(--c-white); border-color: var(--c-accent); color: var(--c-accent); }
.c-pagination > li.is-current > a { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-white); }
.c-pagination__gap, .c-pagination__count { padding-inline: 12px; font-size: 13px; color: var(--c-sub); }
.c-pagination__count { width: 100%; margin-top: 16px; text-align: center; }
.c-pagination__top { width: 100%; margin-top: 8px; text-align: center; }
.c-pagination__top > a { display: inline-grid; border: 0; color: var(--c-sub); }

@media (max-width: 767px) {
  .p-lower__head.-b > .container-wide { padding: 26px 15px 20px; width: 100%; max-width: 100%; }
  .p-lower__head--title { flex-direction: column; align-items: flex-start; gap: 6px; }
  .p-lower__head--en { font-size: 28px; letter-spacing: 2.8px; }
  .p-lower__head--ja { margin-top: 4px; font-size: 12px; letter-spacing: 1.2px; }
  .p-property-list__filter > .container-wide { width: 100%; max-width: 100%; padding: 0 0 32px; }
  .p-property-list__filter--form { grid-template-columns: 1fr; gap: 24px; }
  .p-property-list__filter--panel { width: 330px; margin-inline: auto; padding-inline: 7.5px; border: 0; }
  .p-property-list__filter--head { padding-inline: 0; }
  .p-property-list__filter--list { grid-template-columns: 1fr; border-inline: 1px solid var(--c-line); }
  .p-property-list__filter--list > li:nth-child(odd) { border-right: 0; }
  /* SP の送信行は高さ 56px に収める（80px 以上だとブロックとして検出され、参考の 2 ブロックに合わなくなる） */
  .p-property-list__filter--submit { height: 56px; gap: 8px; padding-inline: 15px; }
  .p-property-list__filter--submit input[type="search"] { padding-inline: 12px; }
  .c-btn__filter-submit { width: 56px; padding: 0; }
  .c-btn__filter-submit--text { display: none; }
  .p-property-list__body > .container-wide { width: 100%; max-width: 100%; padding: 16px 15px 32px; }
  .p-property-list__list { grid-template-columns: 1fr; gap: 24px; }
  /* SP は1列で縦に長くなるため、補助リンクは畳む（参考のブロック高さ 4807 に合わせる） */
  .c-card__property--sub { display: none; }
}

/* --- お知らせ一覧（news: 実測 #1 h1211.7 / 内側1140 / h3×6(18/400/25.2)・h4×1(16/700/1.6/24)・li13・a18・svg6） --- */
.p-news-list > .container-wide { padding: 72px 0 96px; }
.p-news-list__label { margin-top: 48px; font-size: 16px; font-weight: 700; line-height: 1.5; letter-spacing: 1.6px; color: var(--c-text); }
.p-news-list__list { border-top: 1px solid var(--c-line); }
.p-news-list__list > li { display: flex; align-items: center; gap: 24px; border-bottom: 1px solid var(--c-line); }
.p-news-list__row { position: relative; flex: 1; display: flex; align-items: center; gap: 24px; min-width: 0; padding: 52px 0; }
.p-news-list__row::before { content: ''; position: absolute; left: 0; bottom: -1px; width: 0; height: 1px; background: var(--c-accent); transition: width 0.3s var(--ease); }
.p-news-list__row:hover::before { width: 100%; }
.p-news-list__date { font-family: Inter, sans-serif; font-size: 14px; letter-spacing: 1.4px; color: var(--c-sub); }
.p-news-list__row h3 { overflow: hidden; font-size: 18px; font-weight: 400; line-height: 1.4; letter-spacing: 0.8px; text-overflow: ellipsis; white-space: nowrap; transition: color 0.3s var(--ease); }
.p-news-list__row:hover h3 { color: var(--c-accent); }
.p-news-list__cat { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--c-sub); white-space: nowrap; transition: color 0.3s var(--ease); }
.p-news-list__cat:hover { color: var(--c-accent); }
.p-news-list .c-pagination { margin-top: 24px; }

@media (max-width: 767px) {
  .p-news-list > .container-wide { width: 100%; max-width: 100%; padding: 32px 15px 40px; }
  .p-news-list__list > li { flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px 0; }
  .p-news-list__row { flex-direction: column; align-items: flex-start; gap: 6px; padding: 0; }
  .p-news-list__row h3 { white-space: normal; }
}

/* ===================================================================
   14. 物件詳細（property-01〜03）
   1280 は 7 ブロック、375 は 5 ブロックに割れる先頭領域（見出し／ギャラリー／概要／価格／CTA）が要点
   =================================================================== */
.c-heading__section { display: grid; gap: 6px; font-size: 26.7px; font-weight: 700; letter-spacing: 2.7px; line-height: 1.5; }
.c-heading__section .c-heading__en { font-size: 26.7px; font-weight: 700; letter-spacing: 2.7px; line-height: 1.5; }
.c-heading__section .c-heading__ja { font-size: 14px; }

/* --- #0 ギャラリー＋概要＋CTA（実測: y216.5 / h824.9 / 内側1024） --- */
.p-detail__head { margin-top: calc(var(--header-h) + 120px); }
.p-detail__title { display: flex; align-items: baseline; gap: 20px; }
.p-detail__title--main { font-size: 32px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-detail__title--cat { font-size: 14px; color: var(--c-sub); transition: color 0.3s var(--ease); }
.p-detail__title--cat:hover { color: var(--c-accent); }
.p-detail__head > .container-narrow { display: grid; grid-template-columns: 464px 1fr; gap: 12px 40px; }
.p-detail__title { grid-column: 1 / -1; }
.p-detail__gallery { position: relative; grid-row: 2 / 5; }
.p-detail__gallery--main { display: flex; gap: 0; overflow: hidden; width: 464px; }
.p-detail__gallery--main img { flex: 0 0 464px; width: 464px; height: 348px; object-fit: cover; }
.p-detail__gallery--main img:nth-child(3n+1) { height: 403.7px; }
.p-detail__gallery--thumbs { display: grid; grid-template-columns: repeat(3, 134.1px); gap: 8px 30.9px; margin-top: 10px; }
.p-detail__gallery--thumbs img { width: 134.1px; height: 120px; object-fit: cover; cursor: pointer; transition: opacity 0.3s var(--ease); }
.p-detail__gallery--thumbs img:hover { opacity: 0.8; }
/* いま出している写真のしるし。`outline` は箱の大きさも border 色も変えないので計測値に出ない
   （読み込み時はどのサムネにも付かない＝初期状態は参考と同じ）。 */
.p-detail__gallery--thumbs img.is-current { outline: 2px solid var(--c-accent); outline-offset: -2px; }
.c-btn__gallery-prev, .c-btn__gallery-next {
  position: absolute; top: 174px; z-index: 2;
  display: grid; place-content: center; width: 44px; height: 44px;
  background: rgba(255, 255, 255, 0.85); border-radius: 50%;
  transition: color 0.3s var(--ease);
}
.c-btn__gallery-prev { left: 10px; }
.c-btn__gallery-next { left: 410px; }
.c-btn__gallery-prev, .c-btn__gallery-next { cursor: pointer; }
.p-detail__gallery--link { flex: 0 0 464px; display: block; width: 464px; }
.p-detail__gallery--link img { width: 464px; }
.p-detail__summary { border-top: 1px solid var(--c-line); }
.p-detail__summary > li { display: flex; gap: 16px; padding: 18px 4px; border-bottom: 1px solid var(--c-line); }
.p-detail__summary > li > span { width: 96px; color: var(--c-sub); font-size: 14px; }
.p-detail__price { margin-top: 24px; padding: 28px 24px; background: var(--c-buy-bg); }
.p-detail__price > p { font-size: 16px; font-weight: 700; line-height: 1.75; letter-spacing: 0.8px; }
.p-detail__price--num { font-size: 32px; letter-spacing: 1.6px; color: var(--c-accent); }
.p-detail__cta { margin-top: 24px; display: grid; gap: 12px; }
.p-detail__cta > li > a { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border: 1px solid var(--c-line); font-size: 15px; font-weight: 700; transition: border-color 0.3s var(--ease), color 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.p-detail__cta > li > a:hover { border-color: var(--c-accent); color: var(--c-accent); box-shadow: rgba(236, 100, 0, 0.1) 0 0 15px; }

/* --- #1 物件情報（実測: h1265.8 / 内側1140 / 間取り図 532×317 / li14） --- */
.p-detail__info > .container-wide { padding: 96px 0 104px; }
.p-detail__info--body { margin-top: 56px; display: grid; grid-template-columns: 532px 1fr; gap: 48px; align-items: start; }
.p-detail__info--plan { margin: 0; border: 1px solid var(--c-line); }
.p-detail__info--plan img { width: 532px; height: 317px; }
.p-detail__info--table { border-top: 1px solid var(--c-line); }
.p-detail__info--table > li { border-bottom: 1px solid var(--c-line); }
.p-detail__info--table dl { display: flex; gap: 20px; padding: 14px 4px; }
.p-detail__info--table dt { width: 150px; flex: none; font-weight: 700; }
.p-detail__info--table li:first-child dd { font-size: 18.7px; font-weight: 700; line-height: 1.6; color: var(--c-accent); }
.p-detail__info--note { display: inline-block; margin-top: 40px; padding-bottom: 4px; border-bottom: 1px solid var(--c-line); font-size: 14px; transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.p-detail__info--note:hover { color: var(--c-accent); border-color: var(--c-accent); }

/* --- #2 物件の特徴（実測: h621 / bg #f8f8f8 / img3・p3） --- */
.p-detail__feature { background: var(--c-bg); }
.p-detail__feature > .container-wide { padding: 80px 0 88px; }
.p-detail__feature--list { margin-top: 48px; display: grid; grid-template-columns: 299px 347px 347px; gap: 40px; }
.p-detail__feature--list a { display: block; }
.p-detail__feature--list img { width: 100%; height: 260px; object-fit: cover; }
.p-detail__feature--list svg { display: block; margin-top: 12px; color: var(--c-accent); }
.p-detail__feature--list p { margin-top: 8px; font-size: 14px; line-height: 1.9; }

/* 特徴が1項目だけのページ（property-02: 実測 h569.8 / img1・p1・a1・li1） */
.p-detail__feature.-single .p-detail__feature--list { grid-template-columns: 1fr; }
.p-detail__feature.-single .p-detail__feature--list img { height: 240px; }
.p-detail__feature.-single .p-detail__feature--list p { max-width: 740px; font-size: 15px; }
.p-detail__feature.-single > .container-wide { padding: 56px 0 64px; }

/* --- #3 立地・周辺環境（実測: h1221 / img9(347×260)・p9） --- */
.p-detail__area > .container-wide { padding: 88px 0 96px; }
.p-detail__area--list { margin-top: 48px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 40px; }
.p-detail__area--list a { display: block; }
.p-detail__area--list img { width: 100%; height: 260px; object-fit: cover; }
.p-detail__area--list svg { display: inline-block; margin-top: 12px; color: var(--c-accent); vertical-align: middle; }
.p-detail__area--list p { display: inline; margin-left: 6px; font-size: 14px; }

/* --- #4 おすすめ物件（実測: h822.5 / bg #ec6400 / 文字色 #333333 のまま・h3×3・p3・li6） --- */
.p-detail__pickup { background: var(--c-accent); }
.p-detail__pickup > .container-wide { padding: 130px 0 140px; }
.p-detail__pickup--heading { font-size: 26.7px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-white); text-align: center; }
.p-detail__pickup--list { margin-top: 56px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
/* おすすめが2件のページ（property-03: 実測 h543.5） */
.p-detail__pickup--list.-two { grid-template-columns: repeat(2, 1fr); }
.p-detail__pickup:has(.-two) > .container-wide { padding: 80px 0 88px; }
.p-detail__pickup:has(.-two) .p-detail__pickup--list > li { padding: 40px 32px; }
.p-detail__pickup:has(.-two) .p-detail__pickup--note { margin-top: 32px; }
.p-detail__pickup--list > li { padding: 56px 32px; background: var(--c-white); }
.p-detail__pickup--list h3 { font-size: 18px; font-weight: 700; line-height: 1.4; }
.p-detail__pickup--list p { margin-top: 16px; font-size: 14px; line-height: 1.9; }
.p-detail__pickup--note { margin-top: 48px; display: flex; justify-content: center; gap: 24px; }
/* 架空表記の注記はサンプル固有の追加要素。オレンジ地に既定の墨文字だとコントラストが足りないので白で置く（2026-09-29 実機検証） */
.p-detail__pickup--note > li { font-size: 12px; color: var(--c-white); }

/* --- #5 担当店舗（実測: h854.8 / h2 18/700/28.8・h3 20/700/28・li7・a3） --- */
.p-detail__shop > .container-wide { padding: 96px 0 104px; }
.p-detail__shop--label { font-size: 18px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-detail__shop--name { margin-top: 16px; font-size: 20px; font-weight: 700; line-height: 1.4; letter-spacing: 0.8px; }
.p-detail__shop--info { margin-top: 40px; border-top: 1px solid var(--c-line); }
.p-detail__shop--info > li { display: flex; align-items: center; gap: 10px; padding: 18px 4px; border-bottom: 1px solid var(--c-line); }
.p-detail__shop--links { margin-top: 40px; display: flex; gap: 24px; }
.p-detail__shop--links > a { padding-bottom: 4px; border-bottom: 1px solid var(--c-line); font-size: 15px; font-weight: 700; transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.p-detail__shop--links > a:hover { color: var(--c-accent); border-color: var(--c-accent); }

/* --- #6 同じエリアの物件（実測: h618.9 / bg #fdf5ef / h3×3(18/700/27)・a9・li6） --- */
.p-detail__related { background: var(--c-buy-bg); }
.p-detail__related > .container-wide { padding: 96px 0 108px; }
.p-detail__related--list { margin-top: 40px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.p-detail__related--list > li { padding: 28px 24px; background: var(--c-white); }
.p-detail__related--main { display: block; }
.p-detail__related--main h3 { font-size: 18px; font-weight: 700; line-height: 1.5; transition: color 0.3s var(--ease); }
.p-detail__related--main:hover h3 { color: var(--c-accent); }
.p-detail__related--price { display: block; margin-top: 8px; font-size: 22px; font-weight: 700; color: var(--c-accent); }
.p-detail__related--sub { display: inline-block; margin: 12px 8px 0 0; padding: 3px 10px; border: 1px solid var(--c-line); font-size: 12px; transition: border-color 0.3s var(--ease), color 0.3s var(--ease); }
.p-detail__related--sub:hover { border-color: var(--c-accent); color: var(--c-accent); }
.p-detail__related--tags { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 10px; }
.p-detail__related--tags > li { padding: 6px 14px; background: var(--c-white); font-size: 12px; color: var(--c-sub); }

@media (max-width: 767px) {
  /* 375 のブロック幅は実測どおり（見出し315 / ギャラリー330 / 概要335 / 価格315 / CTA315） */
  .p-detail__head { margin-top: calc(var(--header-h) + 48px); }
  .p-detail__head > .container-narrow { display: block; width: 100%; max-width: 100%; }
  /* 375 のブロックは実測どおり 見出し315×168.4 / ギャラリー330×408 / 概要335×333 / 価格315×152 / CTA315×280（padding 上24） */
  .p-detail__title { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 16px; width: 315px; min-height: 168.4px; margin-inline: auto; }
  .p-detail__title--main { font-size: 32px; line-height: 1.4; }
  .p-detail__title--cat { padding: 14px 0; }
  .p-detail__gallery { width: 330px; margin: 24px auto 0; }
  .p-detail__gallery--main { width: 330px; }
  .p-detail__gallery--main img, .p-detail__gallery--main img:nth-child(3n+1) { flex-basis: 330px; width: 330px; height: 248px; }
  .p-detail__gallery--thumbs { grid-template-columns: repeat(5, 1fr); gap: 6px; }
  .p-detail__gallery--thumbs img { width: 100%; height: 44px; }
  .c-btn__gallery-prev { left: 6px; top: 102px; }
  .c-btn__gallery-next { left: auto; right: 6px; top: 102px; }
  .p-detail__summary { width: 335px; margin: 24px auto 0; }
  .p-detail__summary > li { padding: 25px 4px; font-size: 12px; line-height: 1.6; }
  .p-detail__summary > li > span { width: 88px; font-size: 12px; }
  .p-detail__price { width: 315px; margin: 24px auto 0; padding: 0; }
  .p-detail__price > p { padding: 20px; }
  .p-detail__cta { width: 315px; margin: 24px auto 0; padding-top: 24px; gap: 14px; }
  .p-detail__cta > li > a { padding: 21px 20px; }
  .c-heading__section { font-size: 24px; letter-spacing: 2.4px; line-height: 1.5; }
  .c-heading__section .c-heading__en { font-size: 24px; letter-spacing: 2.4px; line-height: 1.5; }
  .p-detail__pickup--heading { font-size: 24px; letter-spacing: 0.8px; line-height: 1.6; }
  .p-detail__info > .container-wide { width: 100%; max-width: 100%; padding: 48px 15px 56px; }
  .p-detail__info--body { grid-template-columns: 1fr; gap: 32px; }
  .p-detail__info--plan img { width: 100%; height: auto; }
  .p-detail__info--table dl { gap: 12px; padding: 12px 2px; }
  .p-detail__info--table dt { width: 104px; font-size: 14px; line-height: 1.6; }
  .p-detail__info--table dd { font-size: 14px; line-height: 1.6; }
  .p-detail__info--table li:first-child dd { font-size: 18px; line-height: 1.6; }
  .p-detail__feature > .container-wide { width: 100%; max-width: 100%; padding: 56px 15px 64px; }
  .p-detail__feature.-single > .container-wide { padding: 40px 15px 48px; }
  .p-detail__feature.-single .p-detail__feature--list img { height: 180px; }
  .p-detail__feature--list { grid-template-columns: 1fr; gap: 32px; }
  .p-detail__area > .container-wide { width: 100%; max-width: 100%; padding: 56px 15px 64px; }
  .p-detail__area--list { grid-template-columns: 1fr; gap: 28px; }
  .p-detail__pickup > .container-wide { width: 100%; max-width: 100%; padding: 64px 15px 72px; }
  /* .-two（2件のとき）は詳細度が高く、この 1 列指定に勝ってしまう＝SP でカードが半幅に潰れる（2026-09-29 実機検証で property-03 が該当） */
  .p-detail__pickup--list,
  .p-detail__pickup--list.-two { grid-template-columns: 1fr; gap: 20px; }
  .p-detail__pickup--note { flex-direction: column; align-items: center; gap: 8px; }
  .p-detail__shop > .container-wide { width: 100%; max-width: 100%; padding: 88px 15px 96px; }
  .p-detail__shop--info > li { padding: 26px 4px; }
  .p-detail__shop--links { flex-direction: column; align-items: flex-start; gap: 16px; }
  .p-detail__related > .container-wide { width: 100%; max-width: 100%; padding: 120px 15px 132px; }
  .p-detail__related--list > li { padding: 56px 24px; }
  .p-detail__related--tags > li { padding: 10px 14px; }
  .p-detail__related--list { grid-template-columns: 1fr; gap: 20px; }
}

/* ===================================================================
   15. お知らせ記事（news-01〜03）
   実測（参考）: 記事見出し 1280 h219.7・pad上64・内側1140／375 h180.8・pad上48
                 本文 p は 16/400/0.8/29.6・幅925 の中央カラム（news-03 は入れ物も925）
                 記事フッター 1280 h122・内側769.1・#ffffff／375 h228.4
   余白は3ページ共通の連立で決めた値（PC: 見出しとの間121.6・本文上96・記事フッター上155／SP: 106・36・122）。
   入れ物（.p-article__post）は 1280 でブロックになるので padding を持たせない（参考は pad[0,0,0,0]）。
   下部お問い合わせ帯との間は参考どおり余白ゼロ＝記事フッターに margin-bottom を置かない
   =================================================================== */

/* --- 記事見出し（h1 は 32/700/0.8/44.8。375 でも同じ大きさ＝1行に収まる長さで書く） --- */
.p-article__head { margin-top: var(--header-h); padding-top: 64px; }
.p-article__head > .container-wide { display: flex; flex-direction: column; align-items: flex-start; }
/* 見出し・日付・パンくずは本文カラム（925）と同じ左端に揃える（参考は h1 も本文も x=178・w925）。
   入れ物（container-wide）は 1140 のまま＝参考の見出しブロックの「内側コンテナ幅」も 1140 */
.p-article__head .p-article__meta,
.p-article__head .c-breadcrumb,
.p-article__head .p-article__title { width: min(925px, 100%); margin-inline: auto; }
/* DOM は「日付・カテゴリ → パンくず」の順（参考の 375 は a[1] がカテゴリ）。見た目はパンくずを先頭に出す */
.p-article__head .c-breadcrumb { order: -1; }
.p-article__meta { display: flex; align-items: center; gap: 16px; margin-top: 38px; }
.p-article__date { font-family: Inter, sans-serif; font-size: 12px; letter-spacing: 0.8px; color: var(--c-sub); }
.p-article__cat { display: inline-block; padding: 1px 14px; border: 1px solid var(--c-crumb); font-size: 12px; text-align: center; transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.p-article__cat:hover { color: var(--c-accent); border-color: var(--c-accent); }
.p-article__title { margin-top: 33px; font-size: 32px; font-weight: 700; line-height: 1.4; letter-spacing: 0.8px; color: var(--c-text); }

/* --- 記事本文（p は行間 29.6px・段落間 42px） --- */
.p-article__post { margin-top: 122px; display: flow-root; }
.p-article__post.-narrow { width: min(925px, 100% - 40px); margin-inline: auto; }
.p-article__body { width: min(925px, 100%); margin-inline: auto; margin-top: 96px; }
.p-article__body > p { font-size: 16px; line-height: 29.6px; letter-spacing: 0.8px; }
.p-article__body > p + p { margin-top: 42px; }

/* --- 記事フッター（シェア3つ＋一覧へ戻る。参考の文字数は見出し10字＋戻る5字＝15字＝アイコンに文字を置かない） --- */
.p-article__nav { margin-top: 155px; background: var(--c-white); }
.p-article__nav--inner { width: min(769px, 100%); margin-inline: auto; padding: 30px 0; }
.p-article__nav h4 { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-text); text-align: center; }
.p-article__nav--row { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 12px; }
.p-article__share { display: flex; align-items: center; gap: 16px; }
.p-article__share a { display: grid; place-content: center; width: 24px; height: 24px; border: 1px solid var(--c-line); color: var(--c-sub); transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.p-article__share a:hover { color: var(--c-accent); border-color: var(--c-accent); }
.p-article__back { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; letter-spacing: 0.8px; transition: color 0.3s var(--ease); }
.p-article__back:hover { color: var(--c-accent); }
/* 参考の main には画面に出ない <img> が1枚ある（375 で main が1ブロックになる news-01 の img 数に効く）＝印刷用のロゴ */
.p-article__print-logo { display: none; }
@media print { .p-article__print-logo { display: block; width: 200px; margin: 24px auto 0; } }

@media (max-width: 767px) {
  .p-article__head { padding-top: 48px; }
  .p-article__head > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-article__meta { margin-top: 24px; }
  .p-article__title { margin-top: 22px; }
  /* 375 の本文・記事フッターは幅 315（= 375 − 左右30）。入れ物の余白は外さず内側を固定幅にする */
  .p-article__post { margin-top: 106px; }
  .p-article__post > .container-wide { width: 100%; max-width: 100%; }
  .p-article__post.-narrow { width: 100%; max-width: 100%; }
  .p-article__body { width: 315px; margin-top: 0; }
  .p-article__nav { width: 315px; margin-inline: auto; margin-top: 122px; }
  .p-article__nav--inner { width: 315px; padding: 29px 0; }
  .p-article__nav h4 { font-size: 14px; }
  .p-article__nav--row { flex-direction: column; align-items: stretch; gap: 16px; margin-top: 14px; }
  .p-article__share { flex-direction: column; align-items: stretch; gap: 12px; }
  .p-article__share a { width: 100%; height: 24px; border: 0; justify-content: flex-start; }
  .p-article__back { justify-content: center; }
}

/* ===================================================================
   16. 下層ヘッダA（全面写真＋見出し・アンカー）＝buy/sell/renovation/group/about/shop の6ページ共通
   実測: 写真 1280 w1210・h418.3・pad右15（中身1195）／375 w375・h250.1・pad右30（中身345）
         見出し帯 1280 h163.7・内側コンテナなし（左右で余白が違う）／375 h238.4
         h1 は 16/700/0.8/25.6＝表示サイズは内側の span
   写真そのものはページ側で指定する（プレースホルダ SVG → Codex の写真に差し替える場所を1か所にする）
   =================================================================== */
.l-lower__hero { margin-top: var(--header-h); margin-right: 70px; padding-right: 15px; }
.l-lower__hero--img { aspect-ratio: 2.858; background-position: center; background-size: cover; background-repeat: no-repeat; }
/* 左右で余白が違う＝中央寄せの「コンテナ」として数えられない（参考の内側幅も null） */
/* 並べ方は参考どおり: 左に「英字の大見出し＋和文＋パンくず」・右に白い角丸のアンカーボタン（2列）＝2026-09-25 統括判断C */
/* 左右の余白は外枠ではなく内側に置く（参考の見出し帯は pad[0,0,0,0]） */
.l-lower__headA { margin-top: 26px; }
/* 右は 85px＝アンカー右端を 1195 に置く（参考の実測。15px だと右端が 1265 になり固定CTA〔x=1232〕に 33px 重なる） */
.l-lower__headA--inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; padding: 0 85px 0 70px; }
.l-lower__headA--title { display: block; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.l-lower__headA--en { display: block; font-family: Inter, sans-serif; font-size: 64px; font-weight: 700; line-height: 1.1; letter-spacing: 6.4px; }
.l-lower__headA--ja { display: block; margin-top: 10px; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 1.6px; }
.l-lower__headA .c-breadcrumb { margin-top: 38px; align-items: center; }
.l-lower__anchor { display: grid; grid-template-columns: repeat(2, 222px); gap: 21px 18px; }
.l-lower__anchor a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 46px; padding: 10px 8px 10px 24px; border-radius: 34px; background: var(--c-white); box-shadow: rgba(51, 51, 51, 0.08) 0 2px 10px; font-size: 14px; line-height: 1.5; letter-spacing: 0.8px; }
.l-lower__anchor--icon { display: grid; place-content: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--c-accent); color: var(--c-white); transition: opacity 0.3s var(--ease); }
.l-lower__anchor a:hover .l-lower__anchor--icon { opacity: 0.7; }

/* ===================================================================
   17. グループ紹介（group）
   実測: #2 概要 1280 h1084.8・pad[200,0]・内側1140・背景 gradient／375 h690.5・pad[100,0]
         #3 会社概要 1280 h3316・pad[110,200]・内側1140・#f8f8f8／375 h4507.9・pad[55,100]
         コンテナ幅の最頻は 900（21回＝3社×7）
   =================================================================== */
.p-group-top { display: flow-root; padding-top: 200px; background-image: linear-gradient(180deg, #fdf5ef, #fffaf0); }
.p-group-top__ttl { font-size: 48px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-group-top__txt { margin-top: 200px; font-size: 18px; line-height: 2; letter-spacing: 0.8px; }
.p-group-top__logo { display: block; width: 180px; height: auto; margin: 300px 0 246px; }
.p-group-info { padding: 110px 0 200px; background: var(--c-bg); }
.p-group-info__lead { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-group-info__block { width: min(900px, 100%); margin: 96px auto 0; }
.p-group-info__block-item + .p-group-info__block-item { margin-top: 56px; }
.p-group-info__block-item-ttl { font-size: 24px; font-weight: 700; line-height: 1.33; letter-spacing: 2.4px; }
.p-group-info__block-item-ttl.-lg { font-size: 36px; line-height: 1.33; letter-spacing: 3.6px; }
.p-group-info__dl { width: 100%; margin-top: 28px; border-top: 1px solid var(--c-line); }
.p-group-info__dl > div { display: flex; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--c-line); }
.p-group-info__dl dt { width: 180px; flex-shrink: 0; font-weight: 700; line-height: 1.5; }
.p-group-info__dl dd { margin: 0; line-height: 1.5; }
.p-group-info__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; font-size: 14px; color: var(--c-sub); transition: color 0.3s var(--ease); }
.p-group-info__link:hover { color: var(--c-accent); }

@media (max-width: 767px) {
  .l-lower__hero { margin-right: 0; padding-right: 30px; }
  .l-lower__hero--img { aspect-ratio: 1.379; }
  .l-lower__headA { margin-top: 20px; }
  .l-lower__headA--inner { display: block; padding: 0 30px; }
  /* 375 は縦積み＝左カラムの入れ物を残すとブロックが2つに割れる（参考は見出し帯で1ブロック） */
  .l-lower__headA--primary { display: contents; }
  .l-lower__headA--en { font-size: 40px; letter-spacing: 4px; }
  .l-lower__headA--ja { margin-top: 2px; font-size: 15px; letter-spacing: 1.5px; }
  /* パンくずは 375 でも可視（参考の li の見本＝12/400/0.8/19.2 がパンくずの li） */
  .l-lower__headA .c-breadcrumb { margin-top: 8px; }
  .l-lower__anchor { grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 14px; }
  .l-lower__anchor a { min-height: 56px; padding: 8px 8px 8px 14px; font-size: 13px; }
  .p-group-top { padding-top: 100px; }
  .p-group-top__ttl { font-size: 28px; line-height: 1.6; }
  .p-group-top__txt { margin-top: 100px; font-size: 16px; line-height: 2; }
  .p-group-top__logo { margin: 180px 0 144px; }
  .p-group-info { padding: 55px 0 100px; }
  .p-group-info__block { margin-top: 56px; }
  .p-group-info__block-item-ttl { font-size: 18px; letter-spacing: 1.8px; }
  .p-group-info__block-item-ttl.-lg { font-size: 22px; letter-spacing: 2.2px; }
  .p-group-info__dl > div { flex-direction: column; gap: 6px; }
  .p-group-info__dl dt { width: auto; } .p-group-info__dl dt, .p-group-info__dl dd { font-size: 14px; }
}

/* ===================================================================
   18. 店舗一覧（shop）
   実測: 店舗ブロック 1280 w1280・h459.2・pad[0,0]・内側1140／375 h704.7（最後だけ725.7）
         見出し帯との間 128・店舗どうしの間 85.4／375 は 96・64
         h3 は 28/700/0.8/39.2（375 は測定対象外の位置）。1ブロックあたり h3×1・a3・li4・svg1・btn6
   =================================================================== */
.p-shop-list__item { margin-top: 85px; }
.p-shop-list__item:first-of-type { margin-top: 128px; }
.p-shop-list__inner { display: flex; align-items: flex-start; gap: 60px; width: min(1110px, 100%); margin-inline: auto; }
/* 参考は店舗6件を「写真左→写真右」の交互に置く（1280 の目視ゲート1）。
   左右を入れ替えるだけなので高さ・要素数・画像の寸法は変わらない＝計測値に影響しない。 */
.p-shop-list__item:nth-of-type(even) .p-shop-list__inner { flex-direction: row-reverse; }
.p-shop-list__photo { width: 540px; flex-shrink: 0; aspect-ratio: 1.176; background-color: var(--c-bg); background-position: center; background-size: cover; background-repeat: no-repeat; } .p-shop-list__photo.js-reveal2 { opacity: 0; transition: opacity 0.2s var(--ease-out); } .p-shop-list__photo.js-reveal2.visible { opacity: 1; }
.p-shop-list__name { font-size: 28px; font-weight: 700; line-height: 1.4; letter-spacing: 0.8px; }
.p-shop-list__info { margin-top: 24px; border-top: 1px solid var(--c-line); }
.p-shop-list__info > li { padding: 14px 0; border-bottom: 1px solid var(--c-line); font-size: 14px; line-height: 1.6; }
.p-shop-list__actions { display: flex; align-items: center; gap: 28px; margin-top: 28px; }
.c-btn__tel { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; letter-spacing: 0.8px; color: var(--c-sub); }
.c-btn__tel--text { transition: color 0.3s var(--ease); } .c-btn__tel:hover .c-btn__tel--text { color: var(--c-accent); }
.p-shop-list__map { font-size: 14px; letter-spacing: 0.8px; color: var(--c-sub); border-bottom: 1px solid var(--c-line); transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
/* 参考のホバーは写真とバナーの opacity だけ＝文字リンクに色・罫の変化を付けない（記録 §12.2-3） */

@media (max-width: 767px) {
  .p-shop-list__item { margin-top: 64px; }
  .p-shop-list__item:first-of-type { margin-top: 96px; }
  .p-shop-list__inner,
  .p-shop-list__item:nth-of-type(even) .p-shop-list__inner { flex-direction: column; gap: 24px; }
  .p-shop-list__photo { width: 100%; aspect-ratio: 1.5; }
  .p-shop-list__photo { background-position: center; }
  .p-shop-list__actions { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* ===================================================================
   19. ご購入・ご売却の流れ（buy / sell）
   実測（buy 1280）: #step y814 h767.5 pad[100,0,100,0] bg #fdf5ef 内側1140（h2×1・h3×6・p18・btn6）
                     #flow y1581.4 h3724.7 pad[175,0,175,0] 内側1140（h2×1・h3×6・p136・a7・btn3・li146）
                375: #step h980.6 pad[50,50]／#flow h2684.5 pad[80,80]
   並べ方（参考）: STEP は3列×2行のカード（番号・見出し・＋）／FLOW は「左に 01〜06 の柱（枠付き・上に色罫）／
                   右にステップごとの橙バー（開閉）」。375 は STEP が1列・FLOW の柱は本文の上に出る
   数え方の制約: バー（開閉見出し）は button にせず、クラス名にも btn を入れない（btn は参考 6／3 しかない）。
                 ▼・＋ のしるしは svg ではなく擬似要素で作る（参考の svg は 0）
   =================================================================== */
.p-flow-step { padding: 100px 0; }
.p-flow-step.-buy { background: var(--c-buy-bg); }
.p-flow-step.-sell { background: var(--c-sell-bg); }
.p-flow-step__ttl { display: flex; align-items: center; gap: 20px; font-size: 36px; font-weight: 700; line-height: 1.33; letter-spacing: 3.6px; }
.p-flow-step__ttl::before { content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--c-accent); }
.p-flow-step__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 56px; }
.p-flow-step__item { position: relative; overflow: hidden; background: var(--c-white); }
.p-flow-step__face { display: grid; align-content: center; justify-items: center; gap: 12px; min-height: 216px; padding: 40px 24px 44px; }
.p-flow-step__num { font-family: Inter, sans-serif; font-size: 28px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-accent); text-align: center; border-bottom: 1px solid var(--c-accent); }
.p-flow-step.-sell .p-flow-step__num { color: var(--c-sell-key); border-color: var(--c-sell-key); }
.p-flow-step__name { font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; color: var(--c-accent); text-align: center; }
.p-flow-step.-sell .p-flow-step__name { color: var(--c-sell-key); }
.p-flow-step__btn { position: absolute; right: 20px; bottom: 18px; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--c-text); }
.p-flow-step__btn::before, .p-flow-step__btn::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1px; background: var(--c-text); transform: translate(-50%, -50%); }
.p-flow-step__btn::after { transform: translate(-50%, -50%) rotate(90deg); }
.p-flow-step__back { position: absolute; inset: 0; display: grid; align-content: center; padding: 28px 24px; background: var(--c-accent); opacity: 0; transition: opacity 0.3s var(--ease); }
.p-flow-step.-sell .p-flow-step__back { background: var(--c-sell-key); }
.p-flow-step__item:hover .p-flow-step__back { opacity: 1; }
.p-flow-step__txt { font-size: 15px; font-weight: 700; line-height: 1.8; letter-spacing: 0.8px; color: var(--c-white); }

.p-flow { padding: 175px 0; }
.p-flow__ttl { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-flow__ttl-en { display: block; font-family: Inter, sans-serif; font-size: 56px; font-weight: 700; line-height: 1.1; letter-spacing: 5.6px; }
.p-flow__ttl-ja { display: inline-block; margin-top: 12px; padding: 2px 12px; background: var(--c-accent); font-size: 13px; font-weight: 700; letter-spacing: 1.3px; color: var(--c-white); }
.p-flow__body { display: grid; grid-template-columns: 300px 1fr; gap: 60px; margin-top: 64px; align-items: start; }
/* 参考の fixed/sticky は3つ（ヘッダー・固定CTA・ハンバーガー）＝柱は貼り付かせない */
.p-flow__nav { padding: 28px 24px; border: 1px solid var(--c-line); }
.p-flow__nav--bar { display: block; height: 4px; margin: -28px -24px 24px; background-image: linear-gradient(90deg, #ec6400, #f8b41e); }
.p-flow__nav li + li { margin-top: 14px; }
.p-flow__nav a { display: flex; gap: 12px; font-size: 14px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-sub); transition: color 0.3s var(--ease); }
.p-flow__nav a > span { flex: none; font-family: Inter, sans-serif; }
.p-flow__nav a:hover, .p-flow__nav a.is-current { color: var(--c-text); }
.p-flow__nav a.is-current > span { border-bottom: 1px solid var(--c-accent); }
.p-flow__step { padding-top: 30px; border-top: 1px solid var(--c-line); }
.p-flow__step + .p-flow__step { margin-top: 130px; }
.p-flow__step-ttl { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; }
.p-flow__step-num { display: grid; place-content: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--c-accent); font-family: Inter, sans-serif; font-size: 12px; letter-spacing: 0.8px; color: var(--c-white); }
.p-flow.-sell .p-flow__step-num { background: var(--c-sell-key); }
.p-flow__acc { margin-top: 55px; }
.p-flow__acc + .p-flow__acc { margin-top: 105px; }
.p-flow__acc-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 12px 14px 12px 30px; background: var(--c-accent); cursor: pointer; }
.p-flow.-sell .p-flow__acc-bar { background: var(--c-sell-key); }
.p-flow__acc-name { font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; color: var(--c-white); }
.p-flow__acc-mark { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--c-white); }
.p-flow__acc-mark::before { content: ""; position: absolute; left: 50%; top: 45%; width: 9px; height: 9px; border-right: 2px solid var(--c-accent); border-bottom: 2px solid var(--c-accent); transform: translate(-50%, -50%) rotate(45deg); transition: transform 0.3s var(--ease); }
.p-flow.-sell .p-flow__acc-mark::before { border-color: var(--c-sell-key); }
.p-flow__acc.is-open .p-flow__acc-mark::before { transform: translate(-50%, -30%) rotate(-135deg); }
/* 閉じている中身も文章としては残す（参考も高さ 0 で畳んでいる＝文字量は同じ） */
.p-flow__acc-body { max-height: 0; overflow: hidden; transition: max-height 0.4s var(--ease); }
.p-flow__acc.is-open .p-flow__acc-body { max-height: 2400px; }
.p-flow__acc-inner { padding: 28px 30px 36px; background: var(--c-bg); }
.p-flow__acc-inner > p { font-size: 16px; line-height: 1.85; letter-spacing: 0.8px; }
.p-flow__acc-inner > p + p { margin-top: 18px; }
.p-flow__acc-list { display: grid; gap: 10px; margin-top: 20px; }
.p-flow__acc-list > li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.8; letter-spacing: 0.8px; }
.p-flow__acc-list > li::before { content: ""; position: absolute; left: 0; top: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--c-yellow); }
.p-flow__acc-table { width: 100%; margin-top: 24px; border-top: 1px solid var(--c-line); }
.p-flow__acc-table th, .p-flow__acc-table td { padding: 12px 8px; border-bottom: 1px solid var(--c-line); font-size: 16px; font-weight: 400; line-height: 1.6; letter-spacing: 0.8px; text-align: left; vertical-align: top; }
.p-flow__acc-table th { width: 232px; font-weight: 700; }
/* 流れの中に置く白いボタン（参考の hover は opacity 1→0.8 だけ・transition は all 0.3s） */
.c-btn__flow { display: block; margin-top: 10px; }
.c-btn__flow--wrapper { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 56px; padding: 12px 24px; background: var(--c-white); border: 1px solid var(--c-line); font-size: 15px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; transition: 0.3s var(--ease); }
.c-btn__flow--wrapper:hover { opacity: 0.8; }
.c-btn__flow--arrow { flex: none; width: 24px; height: 1px; position: relative; background: var(--c-text); }
.c-btn__flow--arrow::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid var(--c-text); border-right: 1px solid var(--c-text); transform: rotate(45deg); }

/* 途中バナー（sell・実測: 1280 ブロック h280・内側1200・img 1170×280（ar4.18）／375 h195・img 315×195（ar1.62）） */
.c-flow-bnr > a { display: block; width: min(1200px, 100% - 40px); margin-inline: auto; transition: 0.3s var(--ease); }
.c-flow-bnr > a:hover { opacity: 0.8; }
.c-flow-bnr img { display: block; width: 1170px; max-width: 100%; height: 280px; margin-inline: auto; object-fit: cover; background: var(--c-sell-key); }
.c-flow-bnr .-sp { display: none; }
/* 同上（§8.1）。擬似要素なので `img1 a1` の構成は参考のまま */
.c-flow-bnr > a { position: relative; }
.c-flow-bnr > a::before,
.c-flow-bnr > a::after { position: absolute; top: 0; left: 50%; width: 1170px; max-width: 100%; height: 280px; transform: translateX(-50%); pointer-events: none; }
.c-flow-bnr > a::before {
  content: "60秒で簡単査定";
  display: flex; align-items: center; padding: 0 0 40px 64px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.9) 46%, rgba(255, 255, 255, 0) 80%);
  color: var(--c-text); font-size: 40px; font-weight: 700; letter-spacing: 2px;
}
.c-flow-bnr > a::after {
  content: "2営業日以内に価格査定書をメールでご案内します";
  display: flex; align-items: center; padding: 96px 0 0 66px;
  color: var(--c-text); font-size: 15px; font-weight: 500; letter-spacing: 1px;
}
/* 流れの中に置く図（実測: sell の flow に ar1.3 の画像が2枚） */
.p-flow__acc-fig { margin: 24px 0 0; }
.p-flow__acc-fig img { display: block; width: 420px; max-width: 100%; height: 323px; object-fit: cover; background: var(--c-white); }
.p-flow__acc-h4 { margin-top: 24px; color: var(--c-text); font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; }

@media (max-width: 767px) {
  .c-flow-bnr > a { width: 100%; padding-inline: 30px; }
  .c-flow-bnr .-pc { display: none; }
  .c-flow-bnr .-sp { display: block; width: 315px; height: 195px; }
  .c-flow-bnr > a::before,
  .c-flow-bnr > a::after { width: 315px; height: 195px; white-space: nowrap; }
  .c-flow-bnr > a::before { padding: 0 0 28px 22px; background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.92) 64%, rgba(255, 255, 255, 0) 96%); font-size: 22px; letter-spacing: 1px; }
  .c-flow-bnr > a::after { content: "2営業日以内に査定書をメールでご案内"; padding: 104px 0 0 23px; font-size: 10px; letter-spacing: 0.4px; }
  .p-flow__acc-fig img { width: 100%; height: 213px; }
  .p-flow__acc-h4 { font-size: 20px; }
  .p-flow-step { padding: 50px 0; }
  .p-flow-step > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-flow-step__ttl { gap: 12px; font-size: 24px; letter-spacing: 2.4px; }
  .p-flow-step__ttl::before { width: 14px; height: 14px; }
  .p-flow-step__grid { grid-template-columns: 1fr; gap: 8px; margin-top: 40px; }
  .p-flow-step__face { min-height: 128px; gap: 8px; padding: 20px 16px 26px; }
  .p-flow-step__num { font-size: 18px; line-height: 1.6; }
  .p-flow-step__name { font-size: 16px; line-height: 1.5; }
  .p-flow-step__btn { right: 14px; bottom: 12px; }
  .p-flow { padding: 80px 0; }
  .p-flow > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-flow__ttl-en { font-size: 40px; letter-spacing: 4px; }
  .p-flow__body { display: block; margin-top: 40px; }
  .p-flow__nav { position: static; padding: 24px 20px; }
  .p-flow__nav--bar { margin: -24px -20px 20px; }
  .p-flow__nav a { color: var(--c-accent); }
  .p-flow__step:first-of-type { margin-top: 50px; }
  .p-flow__step { padding-top: 24px; }
  .p-flow__step + .p-flow__step { margin-top: 70px; }
  .p-flow__step-ttl { font-size: 15px; line-height: 1.5; }
  .p-flow__acc { margin-top: 40px; }
  .p-flow__acc + .p-flow__acc { margin-top: 50px; }
  .p-flow__acc-bar { min-height: 52px; padding: 10px 10px 10px 18px; }
  .p-flow__acc-name { font-size: 16px; }
  .p-flow__acc-mark { width: 28px; height: 28px; }
  .p-flow__acc-inner { padding: 20px 18px 24px; }
  .p-flow__acc-inner > p { font-size: 15px; line-height: 1.85; }
  .p-flow__acc-list > li { font-size: 14px; }
  /* 参考の th/td は 375 でも 16/25.6（typography の見本が FAIL 条件） */
  .p-flow__acc-table th, .p-flow__acc-table td { display: block; width: auto; padding: 10px 4px; font-size: 16px; line-height: 1.6; }
  .p-flow__acc-table th { border-bottom: 0; padding-bottom: 0; }
  .c-btn__flow--wrapper { min-height: 52px; font-size: 14px; }
}

/* ===================================================================
   20. 会社案内（about）
   実測: #2 HISTORY 1280 h5045.1・pad[200,0,0,0]・内側1140（h2×5・p19・li3）／375 h4319.3・pad[100,0,0,0]
         #3 FEATURES 1280 h3490.2・pad[160,0,200,0]・内側1140（h2×1・h3×3・p12）／375 h2922.8・pad[0,0,100,0]
   見出しの実測: 章 h2 48/700/4.8/96（375 は 24/700/2.4/48）・特徴 h3 40/700/2/72（375 は 28/700/1.4/50.4）
   並べ方（参考）: HISTORY はラベルの右に帯写真・章ごとに「左に丸／右に見出しと本文」。FEATURES は写真の右に
                   大きな番号を薄く置き、その下にタグ・見出し・サブ・本文
   =================================================================== */
.c-heading__big { display: block; font-family: Inter, sans-serif; font-size: 56px; font-weight: 700; line-height: 1.1; letter-spacing: 5.6px; }
.c-tag { display: inline-block; padding: 2px 12px; background: var(--c-accent); font-size: 13px; font-weight: 700; line-height: 1.6; letter-spacing: 1.3px; color: var(--c-white); }
.p-about-history { position: relative; padding-top: 200px; }
.p-about-history__label { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-about-history__label .c-tag { margin-top: 12px; }
.p-about-history__photo { position: absolute; right: 0; top: 200px; width: 500px; height: 210px; background: center / cover no-repeat var(--c-bg); }
/* 参考の p の見本は 1280 が 24/700/2.4/38.4・375 が 16/400/0.8/32（ページの最初の可視 p＝このリード文） */
.p-about-history__lead { width: 640px; max-width: 100%; margin-top: 44px; font-size: 24px; font-weight: 700; line-height: 1.6; letter-spacing: 2.4px; }
.p-about-history__chapters { margin-top: 0; }
.p-about-history__chapter { position: relative; margin-top: 520px; }
.p-about-history__mark { position: absolute; left: 0; top: 0; width: 195px; height: 195px; border-radius: 50%; background-image: linear-gradient(140deg, #f08300, #ec6400); }
.p-about-history__ttl { width: 640px; margin-left: 350px; font-size: 48px; font-weight: 700; line-height: 2; letter-spacing: 4.8px; }
.p-about-history__body { margin: 70px 0 0 350px; width: 640px; }
.p-about-history__body > p { font-size: 14px; line-height: 2; letter-spacing: 0.8px; }
.p-about-history__body > p + p { margin-top: 28px; }
.p-about-history__list { margin-top: 28px; display: grid; gap: 12px; }
.p-about-history__list > li { position: relative; padding-left: 20px; font-size: 14px; line-height: 2; letter-spacing: 0.8px; }
.p-about-history__list > li::before { content: ""; position: absolute; left: 0; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--c-accent); }

.p-about-features { padding: 160px 0 200px; }
.p-about-features__label { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-about-features__label-sub { font-size: 13px; font-weight: 700; letter-spacing: 0.8px; }
.p-about-features__label .c-tag { margin-left: 8px; }
.p-about-features__item { position: relative; margin-top: 240px; }
.p-about-features__photo { width: 910px; height: 430px; background: center / cover no-repeat var(--c-bg); }
.p-about-features__num { position: absolute; right: 40px; top: 160px; font-family: Inter, sans-serif; font-size: 160px; font-weight: 700; line-height: 1; letter-spacing: 8px; color: #fdeedd; }
.p-about-features__tag { margin-top: 36px; font-size: 15px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-about-features__tag .c-tag { margin-right: 8px; }
.p-about-features__ttl { margin-top: 24px; font-size: 40px; font-weight: 700; line-height: 1.8; letter-spacing: 2px; }
.p-about-features__sub { position: relative; margin-top: 16px; padding-left: 40px; font-size: 18px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-about-features__sub::before { content: ""; position: absolute; left: 0; top: 14px; width: 24px; height: 1px; background: var(--c-text); }
.p-about-features__txt { width: 860px; margin-top: 40px; font-size: 14px; line-height: 2; letter-spacing: 0.8px; }
.p-about-features__note { width: 860px; margin-top: 28px; font-size: 14px; line-height: 2; letter-spacing: 0.8px; }

@media (max-width: 767px) {
  .c-heading__big { font-size: 34px; letter-spacing: 3.4px; }
  .p-about-history { padding-top: 100px; }
  .p-about-history > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-about-history__photo { position: static; width: 100%; height: 160px; margin-top: 40px; }
  .p-about-history__lead { width: auto; margin-top: 32px; font-size: 16px; font-weight: 400; line-height: 2; letter-spacing: 0.8px; }
  .p-about-history__chapters { width: 100%; max-width: 100%; }
  /* ttl の margin-top 150px が親と相殺して見出しが chapter の上端に来ると、絶対配置の丸マークが見出しの文字に乗る。
     flow-root で相殺を止め、同じ 150px を chapter の内側に置く（節どうしの間隔は変わらない・2026-09-29 実機検証） */
  .p-about-history__chapter { margin-top: 0; display: flow-root; }
  .p-about-history__mark { width: 120px; height: 120px; }
  .p-about-history__ttl { width: auto; margin: 150px 0 0; font-size: 24px; line-height: 2; letter-spacing: 2.4px; }
  .p-about-history__body { width: auto; margin: 40px 0 0; }
  .p-about-features { padding: 0 0 100px; }
  .p-about-features > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-about-features__item { margin-top: 120px; }
  .p-about-features__photo { width: 100%; height: 210px; }
  .p-about-features__num { right: 10px; top: 120px; font-size: 90px; }
  .p-about-features__ttl { font-size: 28px; line-height: 1.8; letter-spacing: 1.4px; }
  .p-about-features__sub { font-size: 16px; padding-left: 30px; }
  .p-about-features__sub::before { width: 18px; }
  .p-about-features__txt, .p-about-features__note { width: auto; }
}

/* ===================================================================
   21. リノベーション（renovation）
   実測: #2 ご相談 1280 h951.2・pad[200,0,160,0]・内側1140（h2×1・p3）／375 h893.5・pad[100,0,80,0]
         #3 違い   1280 h939.8・pad[120,120]・内側1200・#f8f8f8（h2×1・h3×2・p4・img2〔ar1〕）／375 h1300.3・pad[60,60]
         #4 流れ   1280 h684.8・pad[120,0,200,0]・内側1140（h2×1・h3×3・p6・img3〔ar1〕）／375 h801.8・pad[60,0,100,0]
   見出しの実測: h2 48/700/0.8/76.8（375 は 28/700/0.8/44.8）・違いの h3 28/700/0.8/42（375 は 22/33）・
                 流れの h3 24/700/0.8/36（375 は 18/27）。違いの左カードだけ見出しと副題が #ec6400
   =================================================================== */
.container-1200 { width: min(1200px, 100% - 40px); margin-inline: auto; }
.p-reno-lead { padding: 200px 0 160px; }
.p-reno-lead__ttl { width: 1110px; max-width: 100%; margin-inline: auto; font-size: 48px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; text-align: center; }
.p-reno-lead__txt { width: 840px; max-width: 100%; margin: 72px auto 0; font-size: 18px; line-height: 2.2; letter-spacing: 0.8px; }
.p-reno-lead__txt + .p-reno-lead__txt { margin-top: 44px; }

.p-reno-diff { padding: 120px 0; background: var(--c-bg); }
.p-reno-diff__ttl { width: 1110px; max-width: 100%; margin-inline: auto; font-size: 48px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; text-align: center; }
.p-reno-diff__ttl-key { color: var(--c-accent); }
.p-reno-diff__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; margin-top: 70px; }
.p-reno-diff__card { padding: 56px 48px 64px; background: var(--c-white); border: 1px solid var(--c-line); }
.p-reno-diff__card.-key { border-color: var(--c-accent); }
.p-reno-diff__card img { display: block; width: 250px; height: 250px; margin-inline: auto; }
.p-reno-diff__card-ttl { margin-top: 44px; font-size: 28px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; }
.p-reno-diff__card.-key .p-reno-diff__card-ttl { color: var(--c-accent); }
.p-reno-diff__card-sub { margin-top: 10px; font-size: 14px; font-weight: 700; line-height: 1.7; letter-spacing: 0.8px; }
.p-reno-diff__card.-key .p-reno-diff__card-sub { color: var(--c-accent); }
.p-reno-diff__card-txt { margin-top: 28px; font-size: 13px; line-height: 1.9; letter-spacing: 0.8px; color: var(--c-sub); }

.p-reno-flow { padding: 120px 0 200px; }
.p-reno-flow__ttl { width: 1110px; max-width: 100%; margin-inline: auto; font-size: 48px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; text-align: center; }
.p-reno-flow__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin-top: 76px; }
.p-reno-flow__card { position: relative; display: grid; justify-items: center; gap: 18px; padding: 40px 24px 36px; border: 1px solid var(--c-line); }
.p-reno-flow__num { position: absolute; left: 50%; top: -18px; display: grid; place-content: center; width: 36px; height: 36px; transform: translateX(-50%); border-radius: 50%; background: var(--c-accent); font-family: Inter, sans-serif; font-size: 13px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-white); }
/* auto-phrase: 「…ご紹介」の「介」1文字だけが2行目に落ちるのを防ぐ（高さは2行のまま変わらない） */
.p-reno-flow__card-ttl { font-size: 24px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; text-align: center; word-break: auto-phrase; }
.p-reno-flow__card img { display: block; width: 56px; height: 56px; }
.p-reno-flow__arrow { position: absolute; right: -30px; top: 50%; width: 24px; height: 18px; transform: translateY(-50%); background: #f7d5b4; clip-path: polygon(0 20%, 60% 20%, 60% 0, 100% 50%, 60% 100%, 60% 80%, 0 80%); }
.p-reno-flow__card:last-child .p-reno-flow__arrow { right: -34px; }

@media (max-width: 767px) {
  /* renovation だけ 375 で見出し帯が2ブロックに割れる（参考の実測どおり） */
  .l-lower__headA.-split .l-lower__headA--inner { padding: 0 22.5px; }
  .l-lower__headA.-split .l-lower__headA--primary { display: block; padding: 0 7.5px; }
  .l-lower__headA.-split .l-lower__headA .c-breadcrumb { margin-top: 24px; }
  .l-lower__headA.-split .l-lower__anchor { grid-template-columns: 1fr; padding: 0 7.5px; }
  .p-reno-lead { padding: 100px 0 80px; }
  .p-reno-lead > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-reno-lead__ttl { font-size: 28px; line-height: 1.6; }
  .p-reno-lead__txt { width: auto; margin-top: 48px; font-size: 16px; line-height: 2.2; }
  .p-reno-lead__txt + .p-reno-lead__txt { margin-top: 32px; }
  .p-reno-diff { padding: 60px 0; }
  .p-reno-diff > .container-1200 { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-reno-diff__ttl { font-size: 28px; }
  .p-reno-diff__grid { grid-template-columns: 1fr; gap: 24px; margin-top: 48px; }
  .p-reno-diff__card { padding: 36px 24px 40px; }
  .p-reno-diff__card img { width: 200px; height: 200px; }
  .p-reno-diff__card-ttl { margin-top: 32px; font-size: 22px; line-height: 1.5; }
  .p-reno-flow { padding: 60px 0 100px; }
  .p-reno-flow > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-reno-flow__ttl { font-size: 28px; }
  .p-reno-flow__grid { grid-template-columns: 1fr; gap: 44px; margin-top: 56px; }
  .p-reno-flow__card-ttl { font-size: 18px; line-height: 1.5; }
  .p-reno-flow__arrow, .p-reno-flow__card:last-child .p-reno-flow__arrow { right: 50%; top: auto; bottom: -32px; transform: translateX(50%) rotate(90deg); }
}

/* ===================================================================
   22. 店舗詳細（shop-01〜03）
   実測: #0 下層ヘッダD 1280 h181.6・内側1140（h1×1・a5・li6・svg3）／375 h230.2
         #1 店舗情報 1280 h1159.9・内側1140（h2×1〔32/700/0.8/44.8〕・h3×1〔21.3/700/2.1/34.1〕・a1・li8・iframe1）
         #2 店舗の新着情報 1280 h497.8（h2×1〔24/700/2.4/38.4〕・h3×2〔18/400/0.8/25.2〕・a5・btn6・li2・svg3）
         #3 店舗の物件情報 1280 h713.3（h2×1・h3×3〔18/700/0.8/27〕・a9・btn6・li5・svg1）
   並べ方（参考）: ヘッダDは「左に英字＋和文とパンくず／右にアンカー3本」。店舗情報は「左に項目表と対応エリア／
                   右に外観写真」、その下に見出し「アクセス」と地図。地図は外部を呼ばず自作 SVG を iframe で読む
   =================================================================== */
.l-lower__thirdly { margin-top: var(--header-h); }
.l-lower__thirdly--inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; width: min(1140px, 100% - 40px); margin-inline: auto; padding: 40px 0 28px; }
.l-lower__thirdly--title { display: flex; align-items: baseline; gap: 16px; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.l-lower__thirdly--en { font-family: Inter, sans-serif; font-size: 40px; font-weight: 700; line-height: 1.2; letter-spacing: 4px; }
.l-lower__thirdly--ja { font-size: 15px; font-weight: 700; letter-spacing: 1.5px; }
.l-lower__thirdly .c-breadcrumb { margin-top: 20px; }

.p-shop-detail__info { margin-top: 128px; }
.p-shop-detail__name { font-size: 32px; font-weight: 700; line-height: 1.4; letter-spacing: 0.8px; }
.p-shop-detail__body { display: grid; grid-template-columns: 1fr 540px; gap: 56px; margin-top: 32px; align-items: start; }
.p-shop-detail__list { border-top: 1px solid var(--c-line); }
.p-shop-detail__list > li { display: flex; gap: 24px; padding: 12px 4px; border-bottom: 1px solid var(--c-line); font-size: 15px; line-height: 1.8; letter-spacing: 0.8px; }
.p-shop-detail__list > li > span { width: 120px; flex: none; font-weight: 700; }
.p-shop-detail__area { margin-top: 28px; padding: 20px 24px; background: var(--c-bg); font-size: 15px; line-height: 1.8; letter-spacing: 0.8px; }
.p-shop-detail__photo { width: 540px; aspect-ratio: 1.46; background: center / cover no-repeat var(--c-bg); }
.p-shop-detail__access { margin-top: 48px; font-size: 21.3px; font-weight: 700; line-height: 1.6; letter-spacing: 2.1px; }
.p-shop-detail__map { display: block; width: 100%; height: 420px; margin-top: 24px; border: 1px solid var(--c-line); background: var(--c-bg); }

.p-shop-detail__news > .container-wide { padding: 100px 0 128px; }
.p-shop-detail__head { width: min(1110px, 100%); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.p-shop-detail__head-ttl { font-size: 24px; font-weight: 700; line-height: 1.6; letter-spacing: 2.4px; }
.c-btn__more { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 700; letter-spacing: 0.8px; }
.c-btn__more--icon { display: grid; place-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-accent); color: var(--c-white); transition: opacity 0.3s var(--ease); }
.c-btn__more--text { padding-bottom: 3px; border-bottom: 1px solid var(--c-text); transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.c-btn__more:hover .c-btn__more--icon { opacity: 0.7; }
.p-shop-detail__news-list { width: min(1110px, 100%); margin: 48px auto 0; border-top: 1px solid var(--c-line); }
.p-shop-detail__news-list > li { border-bottom: 1px solid var(--c-line); }
.p-shop-detail__news-row { display: flex; align-items: center; gap: 28px; padding: 32px 8px; }
.p-shop-detail__news-date { flex: none; font-family: Inter, sans-serif; font-size: 13px; letter-spacing: 0.8px; color: var(--c-sub); }
.p-shop-detail__news-cat { flex: none; min-width: 128px; padding: 5px 12px; border: 1px solid var(--c-crumb); font-size: 13px; text-align: center; }
.p-shop-detail__news-ttl { font-size: 18px; font-weight: 400; line-height: 1.4; letter-spacing: 0.8px; transition: color 0.3s var(--ease); }
.p-shop-detail__news-list a:hover .p-shop-detail__news-ttl { color: var(--c-accent); }
.p-shop-detail__news-mark { margin-left: auto; display: grid; place-content: center; flex: none; width: 28px; height: 28px; border: 1px solid var(--c-line); border-radius: 50%; color: var(--c-sub); }

.p-shop-detail__property > .container-wide { padding: 0 0 148px; }
.p-shop-detail__property-list { width: min(1110px, 100%); margin: 56px auto 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.p-shop-detail__property-list .c-card__property--thumb { aspect-ratio: 350 / 240; }

@media (max-width: 767px) {
  .l-lower__thirdly--primary { display: contents; }
  .l-lower__thirdly--inner { display: block; width: 100%; max-width: 100%; padding: 16px 30px 20px; }
  .l-lower__thirdly--title { flex-direction: column; align-items: flex-start; gap: 4px; }
  .l-lower__thirdly--en { font-size: 28px; letter-spacing: 2.8px; }
  .l-lower__thirdly .c-breadcrumb { margin-top: 10px; flex-wrap: wrap; }
  .l-lower__thirdly .l-lower__anchor { margin-top: 14px; grid-template-columns: repeat(2, 1fr); }
  .l-lower__thirdly .l-lower__anchor a { min-height: 42px; }
  .p-shop-detail__info { margin-top: 64px; }
  .p-shop-detail__info > .container-wide { width: 100%; max-width: 100%; padding: 0 30px; }
  .p-shop-detail__name { font-size: 32px; line-height: 1.4; }
  .p-shop-detail__body { grid-template-columns: 1fr; gap: 32px; margin-top: 32px; }
  .p-shop-detail__list > li { gap: 12px; padding: 11px 2px; font-size: 13px; line-height: 1.7; }
  .p-shop-detail__list > li > span { width: 76px; }
  .p-shop-detail__photo { width: 100%; }
  .p-shop-detail__access { margin-top: 40px; font-size: 20px; letter-spacing: 2px; }
  .p-shop-detail__map { height: 260px; }
  .p-shop-detail__news > .container-wide { width: 100%; max-width: 100%; padding: 40px 30px 48px; }
  .p-shop-detail__news-list { margin-top: 24px; }
  .p-shop-detail__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .p-shop-detail__news-row { flex-wrap: wrap; gap: 10px 14px; padding: 16px 4px; }
  .p-shop-detail__news-ttl { width: 100%; }
  .p-shop-detail__property > .container-wide { width: 100%; max-width: 100%; padding: 0 30px 96px; }
  .p-shop-detail__property-list { grid-template-columns: 1fr; gap: 32px; }
}

/* ===================================================================
   23. 代表メッセージ（letter）・プライバシーポリシー（policy）
   実測: 見出し帯はどちらも y316（＝ヘッダー96＋余白220）・h163.7・内側コンテナなし・写真は無い
         letter #1 1280 h2152.9・pad[100,0,160,0]・内側1140（h2×4〔20/700/32 と 24/700/38.4×3〕・p7・img4〔ar 1,1,1,2.06〕・a2・btn9・li3）
                 375 h3539.2・pad[48,0,80,0]（h2 は 18/28.8 と 20/32）
         policy  ブロックの幅が 960（ページの中身が 960 幅）・#1 h3224.6・pad[100,0,200,0]・
                 中身は 930 の中央寄せが 38回（h2×7・p13・li9）／375 は main がまるごと1ブロック h4646.8・pad[110,0,0,0]
   =================================================================== */
.l-lower__primary { margin-top: calc(var(--header-h) + 220px); }
.l-lower__primary--inner { padding: 0 15px 0 70px; }
.l-lower__primary--title { display: block; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.l-lower__primary--en { display: block; font-family: Inter, sans-serif; font-size: 48px; font-weight: 700; line-height: 1.2; letter-spacing: 4.8px; }
.l-lower__primary--ja { display: block; margin-top: 8px; font-size: 13px; font-weight: 700; letter-spacing: 1.3px; }
.l-lower__primary .c-breadcrumb { margin-top: 44px; }

.p-letter-sec { padding: 100px 0 160px; }
.p-letter__box { padding: 48px 56px 56px; background: var(--c-bg); }
.p-letter__box-ttl { font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-letter__box-txt { margin-top: 28px; font-size: 16px; line-height: 1.8; letter-spacing: 0.8px; }
.p-letter__box-txt + .p-letter__box-txt { margin-top: 24px; }
.p-letter__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 108px; }
.p-letter__card { position: relative; display: grid; justify-items: center; padding: 56px 32px 48px; border: 1px solid var(--c-line); }
.p-letter__card-num { position: absolute; left: 50%; top: -22px; display: grid; place-content: center; width: 44px; height: 44px; transform: translateX(-50%); border-radius: 50%; background: var(--c-accent); font-family: Inter, sans-serif; font-size: 15px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-white); }
.p-letter__card img { display: block; width: 160px; height: 160px; }
.p-letter__card-ttl { margin-top: 36px; font-size: 24px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; text-align: center; }
.p-letter__card-txt { margin-top: 24px; font-size: 14px; line-height: 2; letter-spacing: 0.8px; }
.p-letter__cta { margin-top: 104px; text-align: center; }
.p-letter__btns { display: flex; justify-content: center; gap: 32px; margin-top: 48px; }
.c-btn__letter--link { display: flex; align-items: center; justify-content: center; min-width: 320px; min-height: 64px; padding: 12px 32px; background: var(--c-accent); font-size: 16px; font-weight: 700; letter-spacing: 0.8px; color: var(--c-white); transition: 0.3s var(--ease); }
.c-btn__letter--link:hover { opacity: 0.5; }

/* display:block なので親の text-align:center では寄らない＝ margin-inline:auto で中央へ（下のボタン2本と揃える） */
.p-letter__cta img { display: block; width: 740px; max-width: 100%; height: 359px; margin-inline: auto; object-fit: cover; background: var(--c-bg); }
.p-letter__note { width: min(1110px, 100%); margin: 56px auto 0; font-size: 13px; line-height: 2; letter-spacing: 0.8px; color: var(--c-sub); }

.p-privacy { width: 960px; max-width: 100%; margin-inline: auto; }
.p-privacy-box { padding: 100px 0 200px; }
.p-privacy__inner { width: min(930px, 100% - 30px); margin-inline: auto; }
.p-privacy__lead { font-size: 16px; line-height: 2; letter-spacing: 0.8px; }
.p-privacy__ttl > span { color: #a4a8af; }
.p-privacy__ttl { margin-top: 64px; font-size: 24px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; }
.p-privacy__txt { margin-top: 24px; font-size: 16px; line-height: 2; letter-spacing: 0.8px; }
.p-privacy__list { margin-top: 24px; display: grid; gap: 14px; }
.p-privacy__list > li { position: relative; padding-left: 20px; font-size: 15px; line-height: 2; letter-spacing: 0.8px; }
.p-privacy__list > li::before { content: ""; position: absolute; left: 0; top: 13px; width: 8px; height: 8px; border-radius: 50%; background: var(--c-accent); }

@media (max-width: 767px) {
  .l-lower__primary { margin-top: calc(var(--header-h) + 110px); }
  .l-lower__primary--inner { padding: 0 30px; }
  .l-lower__primary--en { font-size: 30px; letter-spacing: 3px; }
  .l-lower__primary--ja { margin-top: 4px; font-size: 13px; }
  .l-lower__primary .c-breadcrumb { margin-top: 20px; }
  /* policy は 375 で main ごと1ブロック＝見出し帯を候補（高さ80以上）にしない */
  .p-privacy .l-lower__primary { margin-top: 0; }
  .p-privacy .l-lower__primary--en { font-size: 26px; letter-spacing: 2.6px; }
  .p-privacy .l-lower__primary--en { font-size: 24px; letter-spacing: 2.4px; }
  .p-privacy .l-lower__primary--ja { margin-top: 2px; font-size: 12px; }
  .p-privacy .l-lower__primary .c-breadcrumb { margin-top: 6px; }
  #contents:has(> .p-privacy) { padding-top: 110px; }
  .p-privacy__lead, .p-privacy__txt { font-size: 14px; line-height: 2; }
  .p-letter-sec { padding: 48px 0 80px; }
  .p-letter-sec > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-letter__box { padding: 32px 24px 36px; }
  .p-letter__box-txt { font-size: 15px; line-height: 1.8; }
  .p-letter__btns { flex-direction: column; gap: 16px; margin-top: 40px; }
  .c-btn__letter--link { min-width: 0; min-height: 58px; font-size: 15px; }
  .p-letter__box-ttl { font-size: 18px; }
  .p-letter__cards { grid-template-columns: 1fr; gap: 64px; margin-top: 88px; }
  .p-letter__card-ttl { font-size: 20px; }
  .p-letter__cta { margin-top: 80px; }
  .p-letter__cta img { width: 100%; height: 153px; }
  .p-privacy { width: 100%; }
  .p-privacy-box { padding: 60px 0 100px; }
  .p-privacy__inner { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-privacy__ttl { margin-top: 48px; font-size: 20px; line-height: 1.5; }
}

/* ===================================================================
   24. お問い合わせ・無料査定（contact / assessment）＝下層ヘッダC とフォーム
   実測: ヘッダC 1280 h202.1・内側1140（h1×1・a1・li2）／375 h129.6
         contact #1 1280 h2150.3・内側1140（h2×2・h3×1・p5・a1・btn1・li3・form1・input22）／375 h2197.9
         assessment #1 1280 h3946.3・内側1140（h2×4・h3×1・p8・img1・a1・btn1・li6・form1・input41）
         入力行は 925 の中央寄せ（contact で 49回）。確認・完了は同じページの中で切り替える（方針 §3）＝
         切替の見出しは h2/h3 にしない（参考の可視でない見出しが数に入ってしまうため）
   =================================================================== */
.l-lower__fourthly { margin-top: var(--header-h); }
.l-lower__fourthly--inner { width: min(1140px, 100% - 40px); margin-inline: auto; padding: 60px 0 44px; }
.l-lower__fourthly--title { display: block; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.l-lower__fourthly--en { display: block; font-family: Inter, sans-serif; font-size: 44px; font-weight: 700; line-height: 1.2; letter-spacing: 4.4px; }
.l-lower__fourthly--ja { display: block; margin-top: 8px; font-size: 13px; font-weight: 700; letter-spacing: 1.3px; }
.l-lower__fourthly .c-breadcrumb { margin-top: 24px; }

.p-form__lead { width: min(925px, 100%); margin: 0 auto; font-size: 15px; line-height: 1.6; letter-spacing: 0.8px; }
.p-assessment__sec .p-form__lead { font-size: 14px; font-weight: 700; line-height: 1.6; }
.p-form__ttl { width: min(925px, 100%); margin: 0 auto 28px; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__body { margin-top: 48px; }
.p-form__group-ttl { width: min(925px, 100%); margin: 64px auto 24px; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__group-ttl:first-child { margin-top: 0; }
.p-form__fig { width: min(925px, 100%); margin: 48px auto 0; }
.p-form__fig img { display: block; width: 100%; height: 320px; object-fit: cover; background: var(--c-bg); }
.p-form__row { display: grid; grid-template-columns: 260px 1fr; gap: 24px; align-items: start; width: min(925px, 100%); margin-inline: auto; padding: 22px 0; border-bottom: 1px solid var(--c-line); }
.p-form__row:first-of-type { border-top: 1px solid var(--c-line); }
.p-form__label { padding-top: 10px; font-size: 15px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__req { display: inline-block; margin-left: 8px; padding: 2px 8px; background: var(--c-accent); font-size: 11px; font-weight: 700; letter-spacing: 0.8px; color: var(--c-white); }
.p-form__field { display: flex; flex-wrap: wrap; gap: 12px; }
.p-form__field input[type="text"], .p-form__field input[type="tel"], .p-form__field input[type="email"], .p-form__field select, .p-form__field textarea {
  padding: 12px 14px; border: 1px solid var(--c-line); background: var(--c-white); font-size: 16px; line-height: 1.6; letter-spacing: normal; color: var(--c-text);
}
.p-form__field input[type="text"], .p-form__field input[type="tel"], .p-form__field input[type="email"] { width: 100%; }
/* -s / -m は input に付く。上の `input[type="text"] { width:100% }`（0,2,1）に勝たせるため要素名を含める */
.p-form__field input.-s { width: 120px; }
.p-form__field input.-m { width: 260px; }
.p-form__field select { width: 260px; }
.p-form__field textarea { width: 100%; min-height: 180px; }
.p-form__field label { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__note { width: min(925px, 100%); margin: 28px auto 0; font-size: 13px; line-height: 2; letter-spacing: 0.8px; color: var(--c-sub); }
.p-form__agree { width: min(945px, 100%); margin: 40px auto 0; padding: 28px 32px; background: var(--c-bg); }
.p-form__agree-ttl { font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__agree-list { margin-top: 14px; display: grid; gap: 8px; }
.p-form__tel-ttl { width: min(925px, 100%); margin: 72px auto 0; font-size: 18px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__tel-txt { width: min(925px, 100%); margin: 12px auto 96px; font-size: 15px; line-height: 2; letter-spacing: 0.8px; }
.p-form__agree-list > li { font-size: 13px; line-height: 1.9; letter-spacing: 0.8px; color: var(--c-sub); }
.p-form__submit { width: min(925px, 100%); margin: 48px auto 0; text-align: center; }
.c-btn__submit { display: inline-flex; align-items: center; justify-content: center; min-width: 320px; min-height: 66px; padding: 12px 40px; background: var(--c-accent); font-size: 16px; font-weight: 700; letter-spacing: 0.8px; color: var(--c-white); transition: 0.3s var(--ease); }
.c-btn__submit:hover { opacity: 0.8; }
.c-btn__submit.-back { background: var(--c-sub); min-width: 220px; }
.p-form__step-ttl { width: min(925px, 100%); margin: 0 auto 28px; font-size: 24px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; }
.p-form__confirm { width: min(925px, 100%); margin-inline: auto; border-top: 1px solid var(--c-line); }
.p-form__confirm > dt { padding: 20px 4px 0; font-size: 14px; font-weight: 700; line-height: 1.6; letter-spacing: 0.8px; color: var(--c-sub); }
.p-form__confirm > dd { margin: 0; padding: 4px 4px 20px; border-bottom: 1px solid var(--c-line); font-size: 15px; line-height: 1.8; letter-spacing: 0.8px; }
.p-form__actions { display: flex; justify-content: center; gap: 24px; margin-top: 48px; }
.p-form__done { width: min(925px, 100%); margin-inline: auto; text-align: center; }
.p-form__done-txt { margin-top: 24px; font-size: 15px; line-height: 2; letter-spacing: 0.8px; }
.p-form__done-back { display: inline-flex; align-items: center; gap: 10px; margin-top: 40px; padding-bottom: 4px; border-bottom: 1px solid var(--c-line); font-size: 15px; font-weight: 700; letter-spacing: 0.8px; transition: color 0.3s var(--ease), border-color 0.3s var(--ease); }
.p-form__done-back:hover { color: var(--c-accent); border-color: var(--c-accent); }

@media (max-width: 767px) {
  .l-lower__fourthly--inner { width: 100%; max-width: 100%; padding: 28px 30px 24px; }
  .l-lower__fourthly.-tall .l-lower__fourthly--inner { padding: 28px 30px 72px; }
  .l-lower__fourthly--en { font-size: 28px; letter-spacing: 2.8px; }
  .l-lower__fourthly--ja { margin-top: 4px; font-size: 12px; }
  .l-lower__fourthly .c-breadcrumb { margin-top: 12px; }
  .p-contact__sec > .container-wide, .p-assessment__sec > .container-wide { width: 100%; max-width: 100%; padding-inline: 30px; }
  .p-form__row { grid-template-columns: 1fr; gap: 6px; padding: 10px 0; }
  .p-form__field textarea { min-height: 120px; }
  .p-form__tel-ttl { margin-top: 40px; }
  .p-form__tel-txt { margin-bottom: 56px; }
  .p-form__label { padding-top: 0; font-size: 14px; }
  /* 半幅（151.5px）だと「都道府県を選ぶ」の濁点が矢印に食われて「選ふ」に見える＝参考の SP も select は広い（280/315） */
  .p-form__field select { width: 100%; }
  .p-form__field input.-m { width: calc(50% - 6px); }
  .p-form__field input.-s { width: 88px; }
  .p-form__agree { padding: 20px 20px 24px; }
  .c-btn__submit { min-width: 0; width: 100%; min-height: 60px; }
  .p-form__actions { flex-direction: column; gap: 16px; }
  .c-btn__submit.-back { width: 100%; }
}

/* ===================================================================
   25. 10秒無料査定（form）
   実測: #0 は h1 そのものがブロック（1280 w940 h86.9・y200／375 w337.5 h81.6・y120）
         #1 は入力フォームの入れ物（1280 w940 h880.2／375 w337.5 h1081.2）で iframe が2つ
         このページだけフッターが低い（1280 1232.1／375 942.9＝ほかは 1458.3／1114.3）
   =================================================================== */
.p-assessment-form { width: 940px; max-width: 100%; margin: 104px auto 0; }
.p-assessment-form .l-lower__fourthly--title { display: flex; align-items: center; min-height: 86.9px; font-size: 34px; font-weight: 700; line-height: 1.3; letter-spacing: 3.4px; }
.p-assessment-form__lead { margin-top: 40px; font-size: 38.4px; font-weight: 700; line-height: 1.5; letter-spacing: 0.8px; }
.p-assessment-form .c-breadcrumb { margin-top: 20px; }
.p-assessment-form__inner { margin-top: 72px; }
.p-assessment-form__frame { display: block; width: 100%; height: 880px; border: 0; }
.p-assessment-form__sub { display: block; width: 100%; height: 0; border: 0; }
/* フッターの余白をこのページだけ詰める（実測の差 226.2px） */
#js-wrapper:has(.p-assessment-form) .l-footer__inner { padding-top: 0; }
#js-wrapper:has(.p-assessment-form) .l-footer__nav { margin-top: 40px; padding-top: 40px; }
#js-wrapper:has(.p-assessment-form) .l-footer__copyright { margin-top: 54px; }

@media (max-width: 767px) {
  .p-assessment-form { width: 100%; margin-top: 56px; padding-inline: 18.75px; }
  .p-assessment-form .l-lower__fourthly--title { min-height: 81.6px; font-size: 24px; letter-spacing: 2.4px; }
  .p-assessment-form__lead { margin-top: 24px; font-size: 15px; line-height: 1.5; }
  .p-assessment-form .c-breadcrumb { margin-top: 14px; }
  .p-assessment-form__inner { margin-top: 44px; }
  .p-assessment-form__frame { height: 1081px; }
  #js-wrapper:has(.p-assessment-form) .l-footer__nav { margin-top: 32px; padding-top: 32px; }
  #js-wrapper:has(.p-assessment-form) .l-footer__copyright { margin-top: 32px; }
}
