/* ==========================================================================
   hal-authority-hub.css — Authority Hub / CASE-01 下層ページ専用スタイル
   v1.0.19（本部確認用・非公開）

   既存 hal-akasaka-ui-upgrade.css のCSS変数のみを使用する。
   新色・新書体・グラデーション・カード影・装飾画像は追加しない。
   既存セレクタは一切上書きしない（本ファイルのセレクタはすべて新規接頭辞）。
   ========================================================================== */

/* ---------- 下層ページ共通 ---------- */
.hal-sub__main {
  background: var(--hal-bg);
  padding-top: 0;
}

.hal-sub__hero {
  background: var(--hal-ink);
  color: var(--hal-on-ink);
  padding: 96px 0 72px;
}

.hal-sub__eyebrow {
  font-family: var(--hal-mono);
  font-size: 11px;
  letter-spacing: .18em;
  color: var(--hal-gold-line);
  margin: 0 0 20px;
}

.hal-sub__h1 {
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.6;
  letter-spacing: .06em;
  color: var(--hal-on-ink);
  margin: 0 0 22px;
}

.hal-sub__lead {
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 2.1;
  color: var(--hal-on-ink-sub);
  max-width: var(--hal-prose);
  margin: 0;
}

.hal-sub__body { padding: 72px 0 40px; }

.hal-sub .hal-container { width: 100%; max-width: 1120px; margin-inline: auto; padding-inline: 28px; box-sizing: border-box; }
.hal-sub .hal-sub__prose { max-width: 760px; }

.hal-sub__h2 {
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.8;
  letter-spacing: .05em;
  color: var(--hal-sumi);
  margin: 0 0 28px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--hal-line-deep);
}

.hal-sub__h3 {
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 17px;
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--hal-sumi);
  margin: 48px 0 18px;
}

.hal-sub__p {
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 2.15;
  color: var(--hal-body);
  margin: 0 0 18px;
}

.hal-sub__bridge {
  margin-top: 44px;
  padding-top: 28px;
  border-top: 1px solid var(--hal-line);
  color: var(--hal-body-deep);
}

/* ---------- 文脈ナビゲーション ---------- */
.hal-hub__navlist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 32px;
}

.hal-hub__navitem {
  padding: 22px 24px;
  border: 1px solid var(--hal-line-card);
  background: var(--hal-bg-box);
}

.hal-hub__navlink {
  display: block;
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 1.8;
  font-weight: 500;
  color: var(--hal-gold-deep);
  text-decoration: none;
  border-bottom: 1px solid var(--hal-gold-line);
  padding-bottom: 10px;
}

.hal-hub__navlink:hover { color: var(--hal-gold-hover); }

.hal-hub__navlink--pending {
  color: var(--hal-muted);
  border-bottom-color: var(--hal-line-deep);
}

.hal-hub__navdesc {
  font-family: var(--hal-sans);
  font-size: 12.5px;
  line-height: 2;
  color: var(--hal-body);
  margin: 12px 0 0;
}

/* ---------- CASE-01 モデルケース ---------- */
.hal-case__notice-wrap {
  background: var(--hal-bg-alt);
  padding: 28px 0;
  border-bottom: 1px solid var(--hal-line-deep);
}

.hal-sub .hal-case__notice {
  font-family: var(--hal-sans);
  font-size: 13px;
  line-height: 2.05;
  color: var(--hal-body-deep);
  background: var(--hal-bg-box);
  /* TOPMinatoFix5 §7.3：左3pxの装飾縦棒を四辺均一1px hairline へ置換する。
     現行HTMLで本要素は0件だが、将来の再出力で縦棒が復活しないよう
     責任宣言そのものを変更しておく。 */
  border: 1px solid var(--hal-line-card);
  padding: 18px 22px;
  margin: 0 0 34px;
  max-width: 760px;
}

.hal-case__notice--top {
  margin: 0;
  max-width: 860px;
  background: transparent;
}

.hal-case__index { padding: 64px 0 8px; }

.hal-case__indexlist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px 32px;
}

.hal-case__indexitem {
  padding: 16px 0;
  border-bottom: 1px solid var(--hal-line);
}

.hal-case__indexlink {
  display: block;
  text-decoration: none;
}

.hal-case__indexid {
  display: inline-block;
  font-family: var(--hal-mono);
  font-size: 10.5px;
  letter-spacing: .12em;
  color: var(--hal-gold);
  margin-right: 12px;
}

.hal-case__indextitle {
  font-family: var(--hal-sans);
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--hal-sumi);
}

.hal-case__indexlink:hover .hal-case__indextitle { color: var(--hal-gold-deep); }

.hal-case__indexmeta {
  display: block;
  font-family: var(--hal-sans);
  font-size: 11.5px;
  color: var(--hal-muted);
  margin-top: 4px;
}

.hal-case__list { padding: 56px 0 24px; }

.hal-sub .hal-case {
  max-width: 760px;
  padding: 48px 0 44px;
  border-top: 1px solid var(--hal-line-deep);
}

.hal-case:first-child { border-top: none; padding-top: 8px; }

.hal-case__id {
  font-family: var(--hal-mono);
  font-size: 11px;
  letter-spacing: .16em;
  color: var(--hal-gold);
  margin: 0 0 12px;
}

.hal-case__title {
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.75;
  letter-spacing: .04em;
  color: var(--hal-sumi);
  margin: 0 0 10px;
}

.hal-case__meta {
  font-family: var(--hal-sans);
  font-size: 12px;
  color: var(--hal-muted);
  margin: 0 0 22px;
}

.hal-case__label {
  font-family: var(--hal-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--hal-gold-deep);
  margin: 28px 0 8px;
}

.hal-case__text {
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 2.15;
  color: var(--hal-body);
  margin: 0;
}

.hal-case__back {
  margin: 34px 0 0;
  font-family: var(--hal-sans);
  font-size: 12px;
}

.hal-case__back a {
  color: var(--hal-gold-deep);
  text-decoration: none;
  border-bottom: 1px solid var(--hal-gold-line);
  padding-bottom: 2px;
}

/* ---------- 下層CTA ---------- */
.hal-sub__cta {
  background: var(--hal-ink);
  color: var(--hal-on-ink);
  padding: 72px 0;
  margin-top: 40px;
}

.hal-sub__ctalead {
  font-family: var(--hal-serif);
  font-size: 17px;
  line-height: 1.9;
  letter-spacing: .04em;
  color: var(--hal-on-ink);
  margin: 0 0 28px;
}

.hal-sub__ctarow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 28px;
}

.hal-sub__ctabtn {
  display: inline-block;
  font-family: var(--hal-sans);
  font-size: 13.5px;
  letter-spacing: .08em;
  color: var(--hal-ink);
  background: var(--hal-gold);
  padding: 16px 34px;
  text-decoration: none;
}

.hal-sub__ctabtn:hover { background: var(--hal-gold-hover); color: var(--hal-ink); }

.hal-sub__ctatel {
  font-family: var(--hal-mono);
  font-size: 18px;
  letter-spacing: .06em;
  color: var(--hal-on-ink);
  text-decoration: none;
}

.hal-sub__ctanote {
  font-family: var(--hal-sans);
  font-size: 11.5px;
  line-height: 1.9;
  color: var(--hal-on-ink-mut);
  margin: 18px 0 0;
}

/* ==========================================================================
   Tablet 768px
   ========================================================================== */
@media (max-width: 1023px) {
  .hal-sub__hero { padding: 80px 0 56px; }
  .hal-sub__h1 { font-size: 26px; }
  .hal-hub__navlist { grid-template-columns: 1fr; gap: 20px; }
  .hal-case__indexlist { grid-template-columns: 1fr; }
  .hal-sub__body { padding: 56px 0 32px; }
}

/* ==========================================================================
   Mobile 375px
   ========================================================================== */
@media (max-width: 767px) {
  .hal-sub__hero { padding: 64px 0 44px; }
  .hal-sub__h1 { font-size: 22px; }
  .hal-sub__lead { font-size: 13.5px; line-height: 2.05; }
  .hal-sub__h2 { font-size: 19px; }
  .hal-sub__h3 { font-size: 16px; margin-top: 38px; }
  .hal-sub__p { font-size: 13.5px; line-height: 2.1; }

  .hal-case__notice {
    font-size: 12.5px;
    line-height: 2;
    padding: 16px 16px;
    margin-bottom: 28px;
  }

  .hal-case__title { font-size: 18px; }
  .hal-case__text { font-size: 13.5px; line-height: 2.1; }
  .hal-case { padding: 38px 0 34px; }
  .hal-case__index { padding: 48px 0 4px; }

  .hal-sub__cta { padding: 56px 0; }
  .hal-sub__ctarow { flex-direction: column; align-items: flex-start; }
  .hal-sub__ctabtn { width: 100%; text-align: center; box-sizing: border-box; }
  .hal-sub__ctatel { font-size: 17px; }
}

/* 横スクロール防止（下層ページのみ） */
.hal-sub, .hal-sub * { max-width: 100%; }
.hal-sub img { height: auto; }

/* ==========================================================================
   v1.0.20 追加 — front-page.php 内 Authority Hub / Secondary CTA
   既存LPのCSS変数のみ使用。新色・新書体・装飾なし。
   ========================================================================== */
.hal-lp .hal-hub {
  background: var(--hal-bg-alt);
  padding: 96px 0;
  border-top: 1px solid var(--hal-line-deep);
}
.hal-lp .hal-hub__inner { max-width: 1120px; }
.hal-lp .hal-hub__label {
  font-family: var(--hal-mono); font-size: 11px; letter-spacing: .18em;
  color: var(--hal-gold); margin: 0 0 22px;
}
.hal-lp .hal-hub__h2 {
  font-family: var(--hal-serif); font-weight: 500; font-size: 24px; line-height: 1.75;
  letter-spacing: .05em; color: var(--hal-sumi); margin: 0 0 26px;
  padding-bottom: 18px; border-bottom: 1px solid var(--hal-line-deep); max-width: 760px;
}
.hal-lp .hal-hub__block { margin-top: 52px; max-width: 760px; }
.hal-lp .hal-hub__h3 {
  font-family: var(--hal-serif); font-weight: 500; font-size: 17px; line-height: 1.9;
  letter-spacing: .04em; color: var(--hal-sumi); margin: 0 0 14px;
}
.hal-lp .hal-hub__lead {
  font-family: var(--hal-sans); font-size: 13.5px; line-height: 2; color: var(--hal-gold-deep);
  margin: 0 0 16px;
}
.hal-lp .hal-hub__p {
  font-family: var(--hal-sans); font-size: 14px; line-height: 2.15; color: var(--hal-body);
  margin: 0 0 18px; max-width: 760px;
}
.hal-lp .hal-hub__areas { margin: 22px 0 0; padding: 20px 24px; background: var(--hal-bg-box); border: 1px solid var(--hal-line-card); }
.hal-lp .hal-hub__areaname {
  font-family: var(--hal-sans); font-size: 12.5px; font-weight: 700; letter-spacing: .05em;
  color: var(--hal-gold-deep); margin: 0 0 6px;
}
.hal-lp .hal-hub__areatext {
  font-family: var(--hal-sans); font-size: 13px; line-height: 2; color: var(--hal-body);
  margin: 0 0 18px;
}
.hal-lp .hal-hub__areatext:last-child { margin-bottom: 0; }
.hal-lp .hal-hub__navttl {
  display: block; font-family: var(--hal-mono); font-size: 10.5px; letter-spacing: .14em;
  color: var(--hal-muted); margin: 0 0 16px;
}
.hal-lp .hal-hub__bridge {
  margin: 52px 0 0; padding-top: 26px; border-top: 1px solid var(--hal-line);
  font-family: var(--hal-sans); font-size: 14px; line-height: 2.1; color: var(--hal-body-deep);
  max-width: 760px;
}
.hal-lp .hal-secondary { background: var(--hal-ink); color: var(--hal-on-ink); padding: 76px 0; }
.hal-lp .hal-secondary__label {
  font-family: var(--hal-mono); font-size: 11px; letter-spacing: .18em;
  color: var(--hal-gold-line); margin: 0 0 20px;
}
.hal-lp .hal-secondary__lead {
  font-family: var(--hal-serif); font-size: 18px; line-height: 1.9; letter-spacing: .04em;
  color: var(--hal-on-ink); margin: 0 0 30px;
}
.hal-lp .hal-secondary__row { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; }
.hal-lp .hal-secondary__btn {
  display: inline-block; font-family: var(--hal-sans); font-size: 13.5px; letter-spacing: .08em;
  color: var(--hal-ink); background: var(--hal-gold); padding: 17px 36px; text-decoration: none;
}
.hal-lp .hal-secondary__btn:hover { background: var(--hal-gold-hover); }
.hal-lp .hal-secondary__tel {
  font-family: var(--hal-mono); font-size: 18px; letter-spacing: .06em;
  color: var(--hal-on-ink); text-decoration: none;
}
.hal-lp .hal-secondary__note {
  font-family: var(--hal-sans); font-size: 11.5px; line-height: 1.9;
  color: var(--hal-on-ink-mut); margin: 18px 0 0;
}
/* GUIDE リスト */
.hal-sub .hal-guide__list { margin: 0 0 22px; padding: 20px 24px; background: var(--hal-bg-box); border: 1px solid var(--hal-line-card); list-style: none; }
.hal-sub .hal-guide__listitem {
  font-family: var(--hal-sans); font-size: 13.5px; line-height: 2.05; color: var(--hal-body-deep);
  padding: 8px 0; border-bottom: 1px solid var(--hal-line);
}
.hal-sub .hal-guide__listitem:last-child { border-bottom: none; }
/* CASE 費用・判断材料 */
.hal-sub .hal-case__summary { margin: 30px 0 0; padding: 20px 24px; background: var(--hal-bg-box); border: 1px solid var(--hal-line-card); }
.hal-sub .hal-case__summaryitem { display: block; margin-bottom: 16px; }
.hal-sub .hal-case__summaryitem:last-child { margin-bottom: 0; }
.hal-sub .hal-case__summaryttl {
  display: block; font-family: var(--hal-sans); font-size: 11.5px; font-weight: 700;
  letter-spacing: .06em; color: var(--hal-gold-deep); margin-bottom: 6px;
}
.hal-sub .hal-case__summarytext { display: block; font-family: var(--hal-sans); font-size: 13px; line-height: 2; color: var(--hal-body); }
.hal-sub .hal-case__backsep { color: var(--hal-muted); margin: 0 10px; }
.hal-sub .hal-sub__ctaback { margin: 22px 0 0; font-family: var(--hal-sans); font-size: 12px; }
.hal-sub .hal-sub__ctaback a { color: var(--hal-on-ink-sub); text-decoration: none; border-bottom: 1px solid var(--hal-gold-line); padding-bottom: 2px; }

@media (max-width: 1023px) {
  .hal-lp .hal-hub { padding: 72px 0; }
  .hal-lp .hal-hub__h2 { font-size: 21px; }
}
@media (max-width: 767px) {
  .hal-lp .hal-hub { padding: 56px 0; }
  .hal-lp .hal-hub__h2 { font-size: 19px; }
  .hal-lp .hal-hub__h3 { font-size: 16px; }
  .hal-lp .hal-hub__p { font-size: 13.5px; line-height: 2.1; }
  .hal-lp .hal-hub__block { margin-top: 40px; }
  .hal-lp .hal-hub__areas { padding: 16px 16px; }
  .hal-lp .hal-secondary { padding: 56px 0; }
  .hal-lp .hal-secondary__lead { font-size: 16px; }
  .hal-lp .hal-secondary__row { flex-direction: column; align-items: flex-start; }
  .hal-lp .hal-secondary__btn { width: 100%; text-align: center; box-sizing: border-box; }
  .hal-sub .hal-guide__list { padding: 16px 16px; }
  .hal-sub .hal-case__summary { padding: 16px 16px; }
}

/* ==========================================================================
   v1.0.21 追加 — front-page.php 内 CASE / GUIDE / AREA / OFFICE / フォーム接続文
   既存LPのCSS変数のみ使用。新色・新書体・グラデーション・影・装飾画像は追加しない。
   既存セレクタは上書きしない。すべて .hal-lp 配下の新規接頭辞。
   ========================================================================== */

.hal-lp .hal-editorial { padding: 96px 0; border-top: 1px solid var(--hal-line-deep); }
.hal-lp .hal-editorial--case   { background: var(--hal-bg); }
.hal-lp .hal-editorial--guide  { background: var(--hal-bg-alt); }
.hal-lp .hal-editorial--area   { background: var(--hal-bg); }
.hal-lp .hal-editorial--office { background: var(--hal-bg-alt); }

.hal-lp .hal-editorial__intro  { max-width: 760px; margin: 0 0 34px; }
.hal-lp .hal-editorial__bridge { max-width: 760px; margin: 40px 0 0; padding-top: 26px; border-top: 1px solid var(--hal-line); }
.hal-lp .hal-editorial__prose  { max-width: 760px; }
.hal-lp .hal-editorial__prose .hal-p { margin: 0 0 18px; }
.hal-lp .hal-editorial__prose .hal-p:last-child { margin-bottom: 0; }

/* ---------- 非固定型 Editorial Rail ---------- */
.hal-lp .hal-rail { position: relative; }

.hal-lp .hal-rail__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 24px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  padding-bottom: 6px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.hal-lp .hal-rail__track:focus-visible { outline: 1px solid var(--hal-gold); outline-offset: 4px; }

.hal-lp .hal-rail__card {
  scroll-snap-align: start;
  box-sizing: border-box;
  min-width: 0;
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
  padding: 30px 28px 26px;
  display: flex;
  flex-direction: column;
}

.hal-lp .hal-rail__tag {
  font-family: var(--hal-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .10em;
  color: var(--hal-gold-deep);
  margin: 0 0 14px;
}

.hal-lp .hal-rail__h3 {
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 17px;
  line-height: 1.85;
  letter-spacing: .04em;
  color: var(--hal-sumi);
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--hal-line);
}

.hal-lp .hal-rail__body {
  font-family: var(--hal-sans);
  font-size: 13.5px;
  line-height: 2.15;
  color: var(--hal-body);
  margin: 0 0 22px;
  flex: 1 1 auto;
  overflow-wrap: anywhere;
}

.hal-lp .hal-rail__pos {
  font-family: var(--hal-mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  color: var(--hal-muted);
  margin: 0;
}
.hal-lp .hal-rail__pos-now { color: var(--hal-gold-deep); }

.hal-lp .hal-rail__ctrl { display: flex; gap: 12px; margin-top: 22px; }
.hal-lp .hal-rail__ctrl[hidden] { display: none; }

.hal-lp .hal-rail__btn {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--hal-line-card);
  color: var(--hal-body-deep);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.hal-lp .hal-rail__btn:hover:not(:disabled) { border-color: var(--hal-gold-line); color: var(--hal-gold-deep); }
.hal-lp .hal-rail__btn:disabled { opacity: .35; cursor: default; }

/* ---------- 拠点・アクセス・届出 ---------- */
.hal-lp .hal-officelist {
  margin: 34px 0 0;
  padding: 8px 28px;
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
  max-width: 860px;
}
.hal-lp .hal-officelist__row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 0 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--hal-line);
}
.hal-lp .hal-officelist__row:last-child { border-bottom: none; }
.hal-lp .hal-officelist__key {
  font-family: var(--hal-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--hal-gold-deep);
  margin: 0;
  line-height: 2;
}
.hal-lp .hal-officelist__val { margin: 0; min-width: 0; }
.hal-lp .hal-officelist__line {
  display: block;
  font-family: var(--hal-sans);
  font-size: 13.5px;
  line-height: 2;
  color: var(--hal-body-deep);
  overflow-wrap: anywhere;
}
.hal-lp .hal-officelist__note {
  display: block;
  margin-top: 10px;
  font-family: var(--hal-sans);
  font-size: 12px;
  line-height: 1.95;
  color: var(--hal-muted);
  overflow-wrap: anywhere;
}

/* ---------- フォーム接続文 ---------- */
.hal-lp .hal-formbridge { background: var(--hal-bg); padding: 56px 0 0; }
.hal-lp .hal-formbridge__text {
  max-width: 760px;
  margin: 0;
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 2.15;
  color: var(--hal-body-deep);
}

@media (max-width: 1023px) {
  .hal-lp .hal-editorial { padding: 72px 0; }
  .hal-lp .hal-rail__track { grid-auto-columns: 58%; gap: 16px; }
  .hal-lp .hal-officelist__row { grid-template-columns: 130px minmax(0, 1fr); gap: 0 18px; }
}

@media (max-width: 767px) {
  .hal-lp .hal-editorial { padding: 56px 0; }
  .hal-lp .hal-editorial__intro { margin-bottom: 26px; }
  .hal-lp .hal-rail__track { grid-auto-columns: 82%; gap: 16px; }
  .hal-lp .hal-rail__card { padding: 24px 20px 22px; }
  .hal-lp .hal-rail__h3 { font-size: 16px; }
  .hal-lp .hal-rail__body { font-size: 13px; line-height: 2.1; }
  .hal-lp .hal-officelist { padding: 4px 18px; }
  .hal-lp .hal-officelist__row { grid-template-columns: 1fr; gap: 6px 0; padding: 16px 0; }
  .hal-lp .hal-officelist__line { font-size: 13px; }
  .hal-lp .hal-formbridge { padding-top: 44px; }
  .hal-lp .hal-formbridge__text { font-size: 13.5px; }
}

/* ==========================================================================
   v1.0.23 — トップページ再構成に伴う追加スタイル
   既存CSS変数のみ使用。新色・グラデーション・影・装飾画像は追加しない。
   既存セレクタは上書きせず、すべて .hal-lp 配下の新規指定とする。
   ========================================================================== */

/* ---------- 17. 文字サイズの下限（PC本文15px / Mobile本文16px / 補足13px） ---------- */
.hal-lp .hal-p,
.hal-lp .hal-lead,
.hal-lp .hal-faq__a,
.hal-lp .hal-card__desc,
.hal-lp .hal-editorial__intro,
.hal-lp .hal-formbridge__text { font-size: 15px; line-height: 2.05; }

.hal-lp .hal-card__list > div,
.hal-lp .hal-price__cond,
.hal-lp .hal-assure__list > div,
.hal-lp .hal-price__fine > div,
.hal-lp .hal-final__text,
.hal-lp .hal-editorial__note,
.hal-lp .hal-officelist__line,
.hal-lp .hal-officelist__note,
.hal-lp .hal-rail__body,
.hal-lp .hal-rail__rowval { font-size: 13px; }

.hal-lp .hal-final__note,
.hal-lp .hal-final__tel-note,
.hal-lp .hal-footer__policy-line { font-size: 13px; }

/* ---------- OwnerDesignFix1 §B-1・§B-2 フッターの左揃え統合 ----------
   v1.0.47 §7.3 で与えていたTOP用の中央揃え（.hal-lp）と、
   v1.0.56_Content_0to8_Preview2 P2-1 で与えていた下層用の左揃え（.hal-lp.hal-sub）は、
   TOPと下層で二重定義になっていた。共通フッター一本化に伴い、
   `.hal-lp` 一系統の左揃えへ統合し、重複するoverrideを削除する。
   ブロック配置・列・幅・順序・リンク・余白は変更していない。 */
.hal-lp .hal-footer__inner { text-align: left; }
.hal-lp .hal-footer__logo { margin-inline: 0; }
.hal-lp .hal-footer__id,
.hal-lp .hal-footer__id .hal-footer__addr,
.hal-lp .hal-footer__id .hal-footer__addr .hal-footer__addr-line,
.hal-lp .hal-footer__id .hal-footer__policy,
.hal-lp .hal-footer__id .hal-footer__policy .hal-footer__policy-line,
.hal-lp .hal-footer__id .hal-footer__license { text-align: left; }
/* .hal-footer__policy は hal-akasaka-ui-upgrade.css で Flexコンテナのため、
   text-align だけでなく Flex 上の揃えも先頭側へ戻す。 */
.hal-lp .hal-footer__id .hal-footer__policy {
  display: flex;
  flex-direction: column;      /* 2行を連結せず1行ずつ独立させる */
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 6px;
}
.hal-lp .hal-footer__navttl,
.hal-lp .hal-footer__navlist,
.hal-lp .hal-footer__navlist li { text-align: left; }
/* .hal-footer__navlist は flex-direction: column のため align-items で先頭へ揃える。 */
.hal-lp .hal-footer__navlist { align-items: flex-start; }
/* legal と copyright も左基準線へ揃えるため、行方向ではなく縦積みにする。 */
.hal-lp .hal-footer__legal {
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
}
.hal-lp .hal-footer__legallist { justify-content: flex-start; }
@media (min-width: 1024px) {
  /* v1.0.48 §6.2：v1.0.47 のPC用縦積み（flex-direction: column）を撤回し、
     ［会社情報］［GUIDE］［COMPANY］［CONTACT］を同一行へ戻す。
     既存DOMを維持したFlexで構成し、DOMの複製・transform・絶対配置は使用しない。
     両ブロックは同じ親 .hal-footer__inner 内に置き、上端を揃える。 */
  .hal-lp .hal-footer__inner {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;           /* .hal-footer__legal を次行へ送る。1024pxでも横溢れさせない */
    align-items: flex-start;   /* .hal-footer__id と .hal-footer__nav の上端を一致させる */
    justify-content: flex-start; /* OwnerDesignFix1 §B-2：左基準線へ揃える */
    gap: clamp(32px, 4vw, 64px);
  }
  .hal-lp .hal-footer__id {
    flex: 0 1 380px;           /* 収縮可。1024pxでも行内に収める */
    min-width: 0;
    max-width: 380px;
    margin-top: 0;
    margin-inline: 0;
  }
  .hal-lp .hal-footer__nav {
    flex: 1 1 420px;
    min-width: 0;
    width: auto;
    margin-top: 0;             /* 上端を .hal-footer__id と揃える */
    margin-inline: 0;
    padding-top: 0;
    border-top: none;
    /* OwnerDesignFix1 §B-1：CONTACT列を廃止しSERVICES／AREA列を加えたため4列になった。
       SERVICES列は項目数が多いので、4列を等分せずSERVICES側へ余裕を持たせる。 */
    grid-template-columns: 1.25fr 1fr 1fr 1fr;
    max-width: 700px;
  }
  .hal-lp .hal-footer__legal { flex: 1 1 100%; }
}

@media (max-width: 767.98px) {
  .hal-lp .hal-p,
  .hal-lp .hal-lead,
  .hal-lp .hal-faq__a,
  .hal-lp .hal-card__desc,
  .hal-lp .hal-editorial__intro,
  .hal-lp .hal-formbridge__text { font-size: 16px; line-height: 2.0; }
  .hal-lp .hal-rail__body,
  .hal-lp .hal-rail__rowval,
  .hal-lp .hal-officelist__line { font-size: 15px; }
  .hal-lp .hal-editorial__note,
  .hal-lp .hal-officelist__note { font-size: 13px; }
}

/* コントラスト：補足文字が既定より薄い箇所を、黒背景・生成り背景それぞれで引き上げる */
.hal-lp .hal-editorial__note,
.hal-lp .hal-officelist__note { color: var(--hal-body-warm); }
.hal-lp .hal-final__tel-note { color: var(--hal-on-ink-sub); }
.hal-lp .hal-rail__pos { color: var(--hal-body-deep); }

/* v1.0.30 §4-6：MENUの寸法・配置は末尾の「v1.0.30 ヘッダー確定仕様」へ集約した（旧10）。 */
.hal-lp .hal-header__menu-btn:hover,
.hal-lp .hal-header__menu-btn:focus-visible,
.hal-lp .hal-header__menu-btn[aria-expanded="true"] { color: #ffffff; }
.hal-lp .hal-header__menu-btn:focus-visible { outline: 1px solid rgba(255,255,255,.7); outline-offset: 3px; }
.hal-lp .hal-header__menu-label { font-size: 10px; letter-spacing: .28em; line-height: 1; }

.hal-lp .hal-header__panel { background: #14110d; }
.hal-lp .hal-header__panel nav a,
.hal-lp .hal-header__panel-tel {
  color: var(--hal-on-ink-sub);
  min-height: 44px;
  display: flex;
  align-items: center;
  transition: color .2s ease, border-color .2s ease;
}
.hal-lp .hal-header__panel nav a:hover,
.hal-lp .hal-header__panel nav a:focus-visible {
  color: #ffffff;
  border-bottom-color: rgba(255,255,255,.55);
}
.hal-lp .hal-header__panel nav a:focus-visible,
.hal-lp .hal-header__panel-tel:focus-visible { outline: 1px solid rgba(255,255,255,.7); outline-offset: 2px; }
.hal-lp .hal-header__panel-tel { justify-content: center; }
.hal-lp .hal-header__panel-tel:hover { color: #ffffff; }
/* メニュー展開中の背面スクロール停止（JSが body へ付与） */
body.hal-menu-open { overflow: hidden; }

/* ---------- 11/12/13. Editorial Rail ---------- */
.hal-lp .hal-editorial__note {
  max-width: 760px;
  margin: 26px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--hal-line);
  font-family: var(--hal-sans);
  line-height: 1.95;
}

.hal-lp .hal-rail__viewport { overflow: hidden; }
.hal-lp .hal-rail__track {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  padding-bottom: 8px;
  -webkit-overflow-scrolling: touch;
}
.hal-lp .hal-rail__track:focus-visible { outline: 1px solid var(--hal-gold); outline-offset: 4px; }
.hal-lp .hal-rail__card {
  flex: 0 0 calc((100% - 48px) / 3);
  scroll-snap-align: start;
  box-sizing: border-box;
  min-width: 0;
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
  padding: 28px 26px 24px;
  display: flex;
  flex-direction: column;
}
.hal-lp .hal-rail__tag {
  font-family: var(--hal-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .10em;
  color: var(--hal-gold-deep); margin: 0 0 12px;
}
.hal-lp .hal-rail__step {
  font-family: var(--hal-mono); font-size: 12px; letter-spacing: .18em;
  color: var(--hal-gold-deep); margin: 0 0 12px;
}
.hal-lp .hal-rail__h3 {
  font-family: var(--hal-serif); font-weight: 500; font-size: 17px; line-height: 1.85;
  letter-spacing: .04em; color: var(--hal-sumi); margin: 0 0 10px;
}
.hal-lp .hal-rail__cat {
  font-family: var(--hal-sans); font-size: 12px; letter-spacing: .06em;
  color: var(--hal-muted); margin: 0 0 16px; padding-bottom: 14px;
  border-bottom: 1px solid var(--hal-line);
}
.hal-lp .hal-rail__rows { margin: 0 0 18px; flex: 1 1 auto; }
.hal-lp .hal-rail__rowkey {
  font-family: var(--hal-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .05em;
  color: var(--hal-gold-deep); margin: 14px 0 5px;
}
.hal-lp .hal-rail__rowkey:first-child { margin-top: 0; }
.hal-lp .hal-rail__rowval {
  font-family: var(--hal-sans); line-height: 2.0; color: var(--hal-body); margin: 0;
  overflow-wrap: anywhere;
}
.hal-lp .hal-rail__body {
  font-family: var(--hal-sans); line-height: 2.05; color: var(--hal-body);
  margin: 0 0 20px; flex: 1 1 auto; overflow-wrap: anywhere;
}
.hal-lp .hal-rail__more {
  font-family: var(--hal-sans); font-size: 13px; letter-spacing: .04em;
  color: var(--hal-gold-deep); text-decoration: none;
  border-bottom: 1px solid var(--hal-gold-line); padding-bottom: 3px;
  align-self: flex-start; margin-bottom: 18px;
}
.hal-lp .hal-rail__more:hover { color: var(--hal-sumi); border-bottom-color: var(--hal-sumi); }
.hal-lp .hal-rail__num {
  font-family: var(--hal-mono); font-size: 11px; letter-spacing: .14em;
  color: var(--hal-muted); margin: 0;
}
.hal-lp .hal-rail__num-now { color: var(--hal-gold-deep); }

.hal-lp .hal-rail__ctrl { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.hal-lp .hal-rail__ctrl[hidden] { display: none; }
.hal-lp .hal-rail__pos { font-family: var(--hal-mono); font-size: 12px; letter-spacing: .12em; margin: 0; }
.hal-lp .hal-rail__btn {
  width: 44px; height: 44px; min-width: 44px; min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--hal-line-card);
  color: var(--hal-body-deep); font-size: 15px; line-height: 1; cursor: pointer; padding: 0;
  transition: border-color .2s ease, color .2s ease;
}
.hal-lp .hal-rail__btn:hover:not(:disabled),
.hal-lp .hal-rail__btn:focus-visible { border-color: var(--hal-sumi); color: var(--hal-sumi); }
.hal-lp .hal-rail__btn:disabled { opacity: .35; cursor: default; }

/* PC Pinning（JSが .is-pinnable を付与したときのみ有効） */
.hal-lp .hal-editorial.is-pinnable .hal-rail__viewport { overflow: hidden; }
.hal-lp .hal-editorial.is-pinned > .hal-container { position: sticky; top: 96px; }
.hal-lp .hal-editorial.is-pinnable .hal-rail__track {
  overflow-x: hidden;
  scroll-snap-type: none;
  scroll-behavior: auto;
  transition: transform .18s linear;
  will-change: transform;
}

@media (max-width: 1023.98px) {
  .hal-lp .hal-rail__card { flex-basis: 58%; }
  .hal-lp .hal-rail__track { gap: 16px; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-rail__card { flex-basis: 82%; padding: 24px 20px 22px; }
  .hal-lp .hal-rail__h3 { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-rail__track { scroll-behavior: auto; transition: none; }
  .hal-lp .hal-editorial.is-pinned > .hal-container { position: static; }
}

/* ---------- 14. 拠点統合セクション ---------- */
.hal-lp .hal-officegrid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);   /* v1.0.30 §7：右列の地図カードを廃止し1列化 */
  gap: 34px;
  align-items: start;
  margin-top: 34px;
}
/* v1.0.30 §7：.hal-officemap はDOMごと削除し、.hal-officephotos へ置換したためCSSも削除した。 */

@media (max-width: 1023.98px) {
  .hal-lp .hal-officegrid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
}

/* ---------- 18. フォーム：サーバー側の通知とエラー ---------- */
.hal-lp .hal-form-notice {
  margin: 0 0 26px; padding: 16px 18px;
  border: 1px solid var(--hal-line-card); background: var(--hal-bg-box);
  font-family: var(--hal-sans); font-size: 14px; line-height: 1.95; color: var(--hal-body-deep);
}
.hal-lp .hal-error[data-hal-server-error] { display: block; }

/* ---------- 23. FAQ ---------- */
.hal-lp .hal-faq__item > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.hal-lp .hal-faq__item > summary:focus-visible { outline: 1px solid var(--hal-gold); outline-offset: 2px; }
.hal-lp .hal-faq__answer { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .hal-lp .hal-faq__item[open] .hal-faq__answer { animation: hal-faq-open .18s ease-out; }
  @keyframes hal-faq-open { from { opacity: 0; } to { opacity: 1; } }
}

/* ---------- 17補正：カード内本文も本文サイズ下限へ揃える ---------- */
.hal-lp .hal-rail__body,
.hal-lp .hal-rail__rowval,
.hal-lp .hal-officelist__line,
.hal-lp .hal-card__list > div,
.hal-lp .hal-assure__list > div,
.hal-lp .hal-final__text,
.hal-lp .hal-price__cond { font-size: 15px; }
@media (max-width: 767.98px) {
  .hal-lp .hal-rail__body,
  .hal-lp .hal-rail__rowval,
  .hal-lp .hal-officelist__line,
  .hal-lp .hal-card__list > div,
  .hal-lp .hal-assure__list > div,
  .hal-lp .hal-final__text,
  .hal-lp .hal-price__cond { font-size: 16px; }
}

/* ---------- 25補正：375pxの横スクロールを解消 ----------
   `.hal-capacity__principal` は 375〜767.98px で white-space:nowrap ＋ 負のマージンにより
   375pxちょうどで版面を8px超過していた。1行表示の要件は維持したまま、
   負のマージンを解除し文字サイズをビューポート幅に追従させることで溢れを解消する。 */
@media (min-width: 375px) and (max-width: 767.98px) {
  .hal-lp .hal-capacity__principal {
    margin-inline: 0;
    padding-inline: 0;
    font-size: clamp(14px, 3.9vw, 18px);
    letter-spacing: 0;
    max-width: 100%;
  }
}

/* ---------- 11補正：PCの横3列表示を廃止し、Rail上を順に閲覧する幅にする ---------- */
@media (min-width: 1024px) {
  .hal-lp .hal-rail__card { flex-basis: 62%; }
}

/* ==========================================================================
   v1.0.24 — Owner確定の一括修正
   ========================================================================== */

/* ---------- 5. 拠点情報とMAP枠の上端を揃える ---------- */
.hal-lp .hal-officeinfo { margin: 0; }
.hal-lp .hal-officegrid > * { margin-top: 0; }
.hal-lp .hal-officelist { margin-top: 0; }

/* ---------- 6. アクセス3路線の明示 ---------- */
.hal-lp .hal-access {
  margin-top: 26px;
  padding: 22px 24px;
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
}
.hal-lp .hal-access__ttl {
  margin: 0 0 14px;
  font-family: var(--hal-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--hal-gold-deep);
}
.hal-lp .hal-access__list { margin: 0; padding: 0; list-style: none; }
.hal-lp .hal-access__item {
  padding: 14px 0;
  border-bottom: 1px solid var(--hal-line);
  font-family: var(--hal-sans);
  font-size: 15px;
  line-height: 1.9;
  color: var(--hal-body-deep);
  overflow-wrap: anywhere;
}
.hal-lp .hal-access__item:first-child { padding-top: 0; }
.hal-lp .hal-access__item:last-child { border-bottom: none; padding-bottom: 0; }
.hal-lp .hal-access__line { display: block; font-size: 13px; color: var(--hal-muted); letter-spacing: .04em; }
.hal-lp .hal-access__station { font-weight: 700; color: var(--hal-sumi); }
.hal-lp .hal-access__exit { display: block; }
.hal-lp .hal-access__walk {
  display: inline-block;
  margin-top: 4px;
  font-family: var(--hal-mono);
  font-size: 13px;
  letter-spacing: .08em;
  color: var(--hal-gold-deep);
}
.hal-lp .hal-access__note {
  margin: 16px 0 0;
  font-family: var(--hal-sans);
  font-size: 13px;
  line-height: 1.95;
  color: var(--hal-body-warm);
}
@media (max-width: 767.98px) {
  .hal-lp .hal-access { padding: 18px 18px; }
  .hal-lp .hal-access__item { font-size: 16px; }
}

/* ---------- 13/14. 下層ページ導線 ---------- */
.hal-lp .hal-pagelinks { margin: 30px 0 0; padding: 0; list-style: none; max-width: 860px; }
.hal-lp .hal-pagelinks__item { border-top: 1px solid var(--hal-line-deep); }
.hal-lp .hal-pagelinks__item:last-child { border-bottom: 1px solid var(--hal-line-deep); }
.hal-lp .hal-pagelinks__link {
  display: block;
  padding: 24px 0;
  text-decoration: none;
  color: inherit;
  transition: background-color .2s ease;
}
.hal-lp .hal-pagelinks__link:hover { background: var(--hal-bg-box); }
.hal-lp .hal-pagelinks__link:focus-visible { outline: 1px solid var(--hal-sumi); outline-offset: 2px; }
.hal-lp .hal-pagelinks__key {
  display: block; font-family: var(--hal-mono); font-size: 11px; letter-spacing: .18em;
  color: var(--hal-gold-deep); margin-bottom: 8px;
}
.hal-lp .hal-pagelinks__title {
  display: block; font-family: var(--hal-serif); font-size: 17px; line-height: 1.8;
  letter-spacing: .04em; color: var(--hal-sumi); margin-bottom: 8px;
}
.hal-lp .hal-pagelinks__desc {
  display: block; font-family: var(--hal-sans); font-size: 15px; line-height: 2;
  color: var(--hal-body);
}
.hal-lp .hal-design__pair-item--static { cursor: default; }
@media (max-width: 767.98px) { .hal-lp .hal-pagelinks__desc { font-size: 16px; } }

/* ---------- 8〜12. MENU：白系固定・タップハイライト無効・フォーカス可視 ---------- */
.hal-lp .hal-header__menu-btn,
.hal-lp .hal-header__panel a,
.hal-lp .hal-header__panel-tel,
.hal-lp .hal-header__tel {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  tap-highlight-color: rgba(0, 0, 0, 0);
}
.hal-lp .hal-header__menu-btn { flex-direction: column; }   /* 8：MENU文字はハンバーガー直下 */
.hal-lp .hal-header__menu-btn:hover,
.hal-lp .hal-header__menu-btn:focus,
.hal-lp .hal-header__menu-btn:focus-visible,
.hal-lp .hal-header__menu-btn:active,
.hal-lp .hal-header__menu-btn[aria-expanded="true"] { color: #ffffff; background: transparent; }
.hal-lp .hal-header__menu-btn:focus { outline: none; }
.hal-lp .hal-header__menu-btn:focus-visible { outline: 2px solid #ffffff; outline-offset: 3px; }

.hal-lp .hal-header__panel nav a,
.hal-lp .hal-header__panel-tel { font-size: 15px; }
@media (max-width: 767.98px) {
  .hal-lp .hal-header__panel nav a,
  .hal-lp .hal-header__panel-tel { font-size: 16px; }
}
.hal-lp .hal-header__panel nav a:hover,
.hal-lp .hal-header__panel nav a:focus,
.hal-lp .hal-header__panel nav a:focus-visible,
.hal-lp .hal-header__panel nav a:active,
.hal-lp .hal-header__panel-tel:hover,
.hal-lp .hal-header__panel-tel:focus,
.hal-lp .hal-header__panel-tel:focus-visible,
.hal-lp .hal-header__panel-tel:active { color: #ffffff; border-bottom-color: rgba(255,255,255,.55); }
.hal-lp .hal-header__panel nav a:focus { outline: none; }
.hal-lp .hal-header__panel nav a:focus-visible,
.hal-lp .hal-header__panel-tel:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }

/* ---------- 18. 主要セクションH2の中央揃え ---------- */
.hal-lp .hal-editorial .hal-h2 { text-align: center; }
.hal-lp .hal-editorial .hal-label { text-align: center; }
.hal-lp .hal-editorial__intro { margin-left: auto; margin-right: auto; text-align: center; }
.hal-lp .hal-editorial__prose { margin-left: auto; margin-right: auto; }
.hal-lp .hal-editorial__note { margin-left: auto; margin-right: auto; }
.hal-lp .hal-officegrid,
.hal-lp .hal-pagelinks { margin-left: auto; margin-right: auto; }
/* 19：FVのH1とカード内H3は既存配置のまま（中央揃えを適用しない） */
.hal-lp .hal-hero__title,
.hal-lp .hal-card__title,
.hal-lp .hal-rail__h3 { text-align: left; }

/* ---------- 17. Pinning（scrollLeft方式） ---------- */
.hal-lp .hal-editorial.is-pinnable .hal-rail__track {
  overflow-x: auto;
  scroll-snap-type: none;
  scroll-behavior: auto;
  transition: none;
  transform: none;
  will-change: auto;
  scrollbar-width: none;
}
.hal-lp .hal-editorial.is-pinnable .hal-rail__track::-webkit-scrollbar { width: 0; height: 0; }
.hal-lp .hal-editorial.is-pinned > .hal-container { position: sticky; top: 96px; }
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-editorial.is-pinned > .hal-container { position: static; }
}

/* ==========================================================================
   v1.0.25 — Owner最終修正
   ========================================================================== */

/* v1.0.30 §4-6：calcによる右端寄せは廃止し、.hal-header__inner の padding へ一本化した（旧5-1）。 */
/* ホバー・フォーカス・アクティブは白／薄いグレー／透明度のみ */
.hal-lp .hal-header__menu-btn:hover,
.hal-lp .hal-header__menu-btn:active { color: #ffffff; }
.hal-lp .hal-header__menu-btn[aria-expanded="true"] { color: #ffffff; opacity: .92; }

/* v1.0.30 §4-2：ヘッダータイトルは幅別2要素へ変更したため旧指定を削除した（旧5-3）。 */

/* ---------- 5-5. GUIDE：3フェーズ × 7工程 ---------- */
.hal-lp .hal-phases { margin-top: 34px; display: grid; gap: 22px; }
.hal-lp .hal-phase {
  border: 1px solid var(--hal-line-card);
  background: var(--hal-bg-box);
  padding: 20px 22px;
}
.hal-lp .hal-phase__head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.hal-lp .hal-phase__no {
  font-family: var(--hal-mono); font-size: 11px; letter-spacing: .18em; color: var(--hal-gold-deep);
}
.hal-lp .hal-phase__name {
  margin: 0; font-family: var(--hal-serif); font-weight: 500; font-size: 16px;
  line-height: 1.7; letter-spacing: .04em; color: var(--hal-sumi);
}
.hal-lp .hal-phase__desc {
  margin: 8px 0 0; font-family: var(--hal-sans); font-size: 13px; line-height: 1.9; color: var(--hal-body);
}
.hal-lp .hal-phase__steps {
  margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--hal-line);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px;
}
.hal-lp .hal-phase:nth-child(2) .hal-phase__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hal-lp .hal-phase .hal-step { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.hal-lp .hal-phase .hal-step__num {
  font-family: var(--hal-mono); font-size: 11px; letter-spacing: .1em; color: var(--hal-gold-deep);
  padding-top: 3px; flex: 0 0 auto;
}
.hal-lp .hal-phase .hal-step__body { min-width: 0; }
.hal-lp .hal-phase .hal-step__title {
  font-family: var(--hal-sans); font-size: 14px; font-weight: 700; letter-spacing: .03em;
  color: var(--hal-sumi); line-height: 1.7;
}
.hal-lp .hal-phase .hal-step__note {
  margin: 3px 0 0; font-family: var(--hal-sans); font-size: 13px; line-height: 1.75;
  color: var(--hal-body); overflow-wrap: anywhere;
}
@media (max-width: 1023.98px) {
  .hal-lp .hal-phase__steps,
  .hal-lp .hal-phase:nth-child(2) .hal-phase__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-phases { gap: 16px; }
  .hal-lp .hal-phase { padding: 18px 16px; }
  .hal-lp .hal-phase__steps,
  .hal-lp .hal-phase:nth-child(2) .hal-phase__steps { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .hal-lp .hal-phase .hal-step__note { font-size: 14px; }
}

/* ---------- 5-6. CASE 短縮カード ---------- */
.hal-lp .hal-rail__card--brief .hal-rail__body { margin-bottom: 18px; }
.hal-lp .hal-editorial--case .hal-rail__card { padding-bottom: 20px; }

/* ---------- 5-7. MORE ---------- */
.hal-lp .hal-h2--rule { position: relative; padding-bottom: 20px; }
.hal-lp .hal-h2--rule::after {
  content: ""; display: block; width: 64px; height: 1px;
  background: var(--hal-line-deep); margin: 18px auto 0;
}
.hal-lp .hal-editorial--more .hal-pagelinks { text-align: left; }
/* v1.0.30 §6：矢印1文字の指定は「Read More ➔」へ置換したため削除した。 */
.hal-lp .hal-pagelinks__link:hover { background: var(--hal-bg-box); }

/* ---------- 5-8. 固定「← 戻る」 ---------- */
.hal-back {
  position: fixed;
  left: 28px;
  bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 12px 20px;
  background: rgba(20, 17, 13, .92);
  color: #ffffff;
  border: 1px solid rgba(247, 244, 236, .28);
  font-family: var(--hal-sans); font-size: 14px; letter-spacing: .06em;
  text-decoration: none;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  transition: background-color .2s ease, border-color .2s ease;
}
.hal-back:hover,
.hal-back:active { background: rgba(20, 17, 13, 1); border-color: rgba(255, 255, 255, .55); color: #ffffff; }
.hal-back:focus { outline: none; }
.hal-back:focus-visible { outline: 2px solid #ffffff; outline-offset: 3px; }
@media (max-width: 767.98px) {
  .hal-back {
    left: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    padding: 11px 16px; font-size: 14px;
  }
}
/* 他のCTAを隠さないよう、下層ページのCTA帯には下余白を確保する */
.hal-sub .hal-sub__cta { padding-bottom: 104px; }

/* ---------- 5-10. 料金：箇条書き ---------- */
.hal-lp ul.hal-assure__list { margin: 0; padding: 0; list-style: none; }
.hal-lp ul.hal-assure__list > li {
  position: relative;
  padding-left: 1.1em;
  font-family: var(--hal-sans);
  font-size: 15px;
  line-height: 2;
  color: var(--hal-body-deep);
  white-space: nowrap;
}
.hal-lp ul.hal-assure__list > li::before {
  content: "・"; position: absolute; left: 0; top: 0; color: var(--hal-gold-deep);
}
@media (max-width: 1023.98px) {
  .hal-lp ul.hal-assure__list > li { white-space: normal; font-size: 16px; }
}

/* ---------- 5-11. FAQ：A表示 ---------- */
.hal-lp .hal-faq__amark {
  display: inline-block;
  width: 1.6em;
  font-family: var(--hal-mono);
  font-size: .95em;
  color: var(--hal-gold-deep);
}
.hal-lp .hal-faq__answer .hal-faq__a { padding-left: 0; }
.hal-lp .hal-faq__answer .hal-faq__a + .hal-faq__a { padding-left: 1.6em; }

/* ---------- 5-12. フォーム上部 ---------- */
.hal-lp .hal-formbridge__text { text-align: center; margin-left: auto; margin-right: auto; }
@media (min-width: 768px) { .hal-lp .hal-formbridge__text { white-space: nowrap; max-width: none; } }

/* ---------- 5-13. OFFICE：2行見出し・アクセス導線 ---------- */
.hal-lp .hal-h2--twoline .hal-h2__line { display: block; }
.hal-lp .hal-access__ttl { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
/* v1.0.30 §7-4：.hal-access__map はDOMごと削除したためCSSも削除した。 */

/* ---------- 5-6. CASE下層ページ：中央配置 ---------- */
.hal-sub .hal-sub__hero .hal-sub__eyebrow,
.hal-sub .hal-sub__hero .hal-sub__h1,
.hal-sub .hal-sub__hero .hal-sub__lead { text-align: center; }
.hal-sub .hal-sub__hero .hal-sub__lead { margin-left: auto; margin-right: auto; }
.hal-sub .hal-case__index .hal-sub__h2,
.hal-sub .hal-case__indexlist { text-align: center; }
.hal-sub .hal-case__indexlist { margin-left: auto; margin-right: auto; }
.hal-sub .hal-sub__cta,
.hal-sub .hal-sub__ctarow { text-align: center; }
.hal-sub .hal-sub__ctarow { justify-content: center; }
.hal-sub .hal-hub__nav { text-align: center; }
/* 長文本文は可読性のため左揃えを維持 */
.hal-sub .hal-sub__prose,
.hal-sub .hal-case__text,
.hal-sub .hal-sub__p,
.hal-sub .hal-costlist { text-align: left; }

/* ---------- 料金詳細ページ ---------- */
.hal-sub .hal-costbase {
  margin: 8px 0 34px; padding: 22px 24px;
  border: 1px solid var(--hal-line-card); background: var(--hal-bg-box);
}
.hal-sub .hal-costbase__amount {
  margin: 0; font-family: var(--hal-serif); font-size: 22px; letter-spacing: .04em; color: var(--hal-sumi);
}
.hal-sub .hal-costbase__amount small { font-size: 14px; }
.hal-sub .hal-costbase__cond {
  margin: 10px 0 0; font-family: var(--hal-sans); font-size: 15px; line-height: 1.9; color: var(--hal-body-deep);
}
.hal-sub .hal-costlist { margin: 0 0 30px; }
.hal-sub .hal-costlist__row { padding: 20px 0; border-bottom: 1px solid var(--hal-line); }
.hal-sub .hal-costlist__row:last-child { border-bottom: none; }
.hal-sub .hal-costlist__key { display: flex; align-items: baseline; gap: 12px; margin: 0 0 8px; }
.hal-sub .hal-costlist__no { font-family: var(--hal-mono); font-size: 12px; letter-spacing: .12em; color: var(--hal-gold-deep); }
.hal-sub .hal-costlist__name { font-family: var(--hal-sans); font-size: 15px; font-weight: 700; letter-spacing: .04em; color: var(--hal-sumi); }
.hal-sub .hal-costlist__val { margin: 0; font-family: var(--hal-sans); font-size: 15px; line-height: 2; color: var(--hal-body); }
@media (max-width: 767.98px) {
  .hal-sub .hal-costlist__val,
  .hal-sub .hal-costbase__cond { font-size: 16px; }
}

/* v1.0.30 §4-6：MENUの絶対配置・transformによる画面端寄せは禁止のため削除した（旧5-1補正）。 */

/* ---------- 5-13補正：Tabletでも左右カードの上端を揃える ---------- */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-officegrid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* v1.0.30：ヘッダーの position 補正は不要になったため削除した。 */

/* 旧「調査までの流れ」の縦コネクタ罫は、3フェーズ内では不要のため抑止する。 */
.hal-lp .hal-phase .hal-step::before,
.hal-lp .hal-phase .hal-step::after,
.hal-lp .hal-phase .hal-step__num::before,
.hal-lp .hal-phase .hal-step__num::after { content: none; display: none; }

/* ==========================================================================
   v1.0.26 — Editorial Compression / Art Direction
   Owner確定「WordPressトップページ修正・実装指示 Editorial Compression /
   Art Direction v1.0.26」§4〜§9 に対応する追加レイヤー。
   本ファイルは最後に読み込まれるため、既存指定を上書きできる。
   ========================================================================== */

/* ---------- §4-1 FV：H1内キッカー（H1は1件のまま） ---------- */
.hal-lp .hal-hero__kicker {
  display: block;
  font-family: var(--hal-sans, inherit);
  font-size: clamp(11px, 2.9vw, 13px);
  font-weight: 400;
  letter-spacing: .2em;
  line-height: 1.6;
  opacity: .8;
  margin-bottom: clamp(10px, 2.4vw, 16px);
}
.hal-lp .hal-hero__main { display: block; }

/* ---------- §8 モバイル改行最適化：確定見出し用の共通クラス ----------
   コピー本文は一字一句変更せず、CSSの折り返し制御だけで2行以内へ収める。
   <br> は使用しない（PC版の改行にも影響させない）。 */
.hal-lp .hal-h2--flow {
  text-wrap: balance;
  overflow-wrap: normal;
  /* 日本語の長い見出しでは word-break: keep-all が禁則の切れ目（読点・中黒）でしか
     改行できず、逆に3行化・コンテナはみ出しを招くため normal とする。
     行頭禁則はブラウザ標準の kinsoku（line-break: strict）に委ねる。 */
  word-break: normal;
  line-break: strict;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-h2--flow {
    font-size: clamp(19px, 5.4vw, 24px);
    line-height: 1.45;
    letter-spacing: .005em;
  }
}
@media (max-width: 374.98px) {
  .hal-lp .hal-h2--flow { font-size: 18px; letter-spacing: 0; }
}

/* 見出しから降格した既存コピー（Hタグを装飾目的で使わないため p 化） */
.hal-lp .hal-h2--copy {
  font-weight: 400;
  opacity: .96;
  text-wrap: balance;
  word-break: normal;
  line-break: strict;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-h2--copy { font-size: clamp(18px, 5vw, 22px); line-height: 1.5; }
}

/* ---------- §4-2 H3の共通体裁 ---------- */
.hal-lp .hal-h3 {
  font-family: var(--hal-serif, inherit);
  font-size: clamp(17px, 1.5vw, 21px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .03em;
  margin: 0 0 14px;
  text-wrap: balance;
  word-break: normal;
  line-break: strict;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-h3 { font-size: clamp(16px, 4.4vw, 19px); line-height: 1.5; }
}

/* ---------- §5 統合セクション「…約束。」 ---------- */
.hal-lp .hal-promise { padding-block: clamp(88px, 9vw, 140px) 0; }
.hal-lp .hal-promise > .hal-container { max-width: 880px; }
.hal-lp .hal-promise__sub {
  margin-top: clamp(16px, 2vw, 22px);
  font-size: clamp(13px, 1.15vw, 15px);
  line-height: 1.9;
  letter-spacing: .06em;
  opacity: .74;
  text-wrap: balance;
  word-break: normal;
  line-break: strict;
}
.hal-lp .hal-promise__lead { margin-top: clamp(48px, 5vw, 84px); }
.hal-lp .hal-promise__items > .hal-promise__item + .hal-promise__item { margin-top: 0; }
.hal-lp .hal-promise__item.hal-capacity,
.hal-lp .hal-promise__item.hal-counsel { padding-block: clamp(72px, 7vw, 112px); }
.hal-lp .hal-promise__h3 { margin-top: 8px; }
.hal-lp .hal-promise__item .hal-label { margin-bottom: 14px; }
/* 統合により、旧セクション同士の余白が二重に積み上がるのを防ぐ */
.hal-lp .hal-promise .hal-band { padding-block: clamp(64px, 6vw, 104px); }

/* ---------- §6 slot05 / slot09 / slot10：3点エディトリアル ---------- */
.hal-lp .hal-geo {
  display: grid;
  gap: clamp(14px, 1.6vw, 22px);
  margin-top: clamp(36px, 4vw, 64px);
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 768px) {
  .hal-lp .hal-geo {
    grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
    grid-template-areas: "a b" "a c";
    align-items: stretch;
  }
  .hal-lp .hal-geo__fig--a { grid-area: a; }
  .hal-lp .hal-geo__fig--b { grid-area: b; }
  .hal-lp .hal-geo__fig--c { grid-area: c; }
}
.hal-lp .hal-geo__fig { margin: 0; position: relative; }
.hal-lp .hal-geo__img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 200px;
  object-fit: cover;
  object-position: 50% 50%;
  /* §6：3点の彩度・黒レベル・コントラスト・粒状感を揃えるための共通グレード。
     元画像ファイルは変更していない。解除する場合は本宣言のみ削除する。 */
  filter: saturate(.86) contrast(1.05) brightness(.97);
}
@media (max-width: 767.98px) {
  .hal-lp .hal-geo__fig--a .hal-geo__img { aspect-ratio: 4 / 5; }
  .hal-lp .hal-geo__fig--b .hal-geo__img,
  .hal-lp .hal-geo__fig--c .hal-geo__img { aspect-ratio: 16 / 10; }
  .hal-lp .hal-geo__img { min-height: 220px; }
}
@media (min-width: 768px) {
  .hal-lp .hal-geo__fig--a .hal-geo__img { aspect-ratio: 3 / 4; min-height: 100%; }
  .hal-lp .hal-geo__fig--b .hal-geo__img,
  .hal-lp .hal-geo__fig--c .hal-geo__img { aspect-ratio: 16 / 9; }
}
.hal-lp .hal-geo__cap {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 10px;
  font-size: clamp(11px, 1vw, 12.5px);
  letter-spacing: .12em;
  line-height: 1.7;
  opacity: .72;
}
.hal-lp .hal-geo__cap-no {
  font-family: var(--hal-mono, monospace);
  font-size: 10px;
  letter-spacing: .18em;
  opacity: .8;
}
.hal-lp .hal-design__prose { margin-top: clamp(40px, 4.4vw, 72px); max-width: 780px; }
@media (min-width: 1024px) { .hal-lp .hal-design__prose { margin-inline: auto; } }

/* ---------- §4 調査領域カードの確定H3 ---------- */
.hal-lp .hal-card__title-main { display: block; }
.hal-lp .hal-card__title-sub {
  display: block;
  margin-top: 6px;
  font-size: clamp(12px, 1.05vw, 13.5px);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.6;
  opacity: .72;
  word-break: keep-all;
  text-wrap: balance;
}

/* ---------- §4 CASE カード：確定H3＋出典タイトル ---------- */
.hal-lp .hal-rail__srcttl {
  margin: 8px 0 0;
  font-size: clamp(12px, 1vw, 13px);
  letter-spacing: .04em;
  line-height: 1.7;
  opacity: .66;
}

/* ---------- §4 GUIDE：PHASE見出しをh3化 ---------- */
.hal-lp .hal-phase__h3 {
  display: block;
  margin: 0 0 10px;
  font-family: var(--hal-serif, inherit);
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .03em;
}
.hal-lp .hal-phase__h3 .hal-phase__no {
  display: inline-block;
  margin-right: 12px;
  font-family: var(--hal-mono, monospace);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .18em;
  opacity: .7;
  vertical-align: .18em;
}
.hal-lp .hal-phase__h3 .hal-phase__name { display: inline; }
.hal-lp .hal-phase__h3 .hal-phase__steplist {
  display: block;
  margin-top: 6px;
  font-family: var(--hal-sans, inherit);
  font-size: clamp(11.5px, 1vw, 13px);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.6;
  opacity: .66;
  word-break: keep-all;
}

/* ---------- §5 MORE：下層導線をh3化 ---------- */
.hal-lp .hal-pagelinks__h3 { margin: 0; font-size: inherit; font-weight: inherit; line-height: inherit; }

/* ---------- §9 後日追加画像 ---------- */
.hal-lp .hal-future { margin: clamp(28px, 3vw, 44px) 0 0; }
.hal-lp .hal-future__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: var(--hal-future-fit, cover);
  object-position: var(--hal-future-pos, 50% 50%);
}
.hal-lp .hal-future--step { margin-top: 14px; max-width: 320px; }
.hal-lp .hal-future__cap {
  margin-top: 8px;
  font-size: 11.5px;
  letter-spacing: .08em;
  opacity: .7;
}

/* ---------- §10 FAQ：確定H2の直下へ旧見出し文をリードとして残す ---------- */
.hal-lp .hal-faq__lead {
  margin: clamp(14px, 1.6vw, 20px) 0 0;
  font-size: clamp(13.5px, 1.15vw, 15px);
  line-height: 1.95;
  letter-spacing: .04em;
  opacity: .76;
  text-wrap: balance;
  word-break: normal;
  line-break: strict;
}

/* ---------- §12 フォーム内へ統合した最終CTAとステップ見出し ---------- */
.hal-lp .hal-form-title--step { /* h2から降格。体裁は hal-form-title を継承 */ }
.hal-lp .hal-form-section > .hal-final { margin-top: clamp(72px, 7vw, 120px); }
.hal-lp .hal-form-section > .hal-formbridge { margin-bottom: clamp(28px, 3vw, 48px); }
/* v1.0.46 §5.4：.hal-form-section の下padding（hal-consultation-form.css の
   padding-block: 72px / 110px 由来）が、濃色の .hal-final と濃色の .hal-footer の間に
   明るい空白を作っていた。下paddingのみを解消し、両者を0pxで連続させる。
   負のmarginや絶対配置は使用しない。padding-top・フォーム本体・送信機能は変更しない。 */
.hal-lp .hal-form-section { padding-bottom: 0; }

/* ---------- §7 ハンバーガーアイコンと MENU の間隔を 10px に固定 ----------
   三本線は「実寸18pxのボックス」として描画する。
   （従来は高さ1〜2pxの要素に ::before/::after を絶対配置していたため、
     gap の指定値と実際の視覚的間隔が一致していなかった。）
   個別 margin の積み上げは行わず、同一 flex コンテナの gap だけで制御する。 */
.hal-lp .hal-header__menu-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;                 /* §7：アイコンと MENU の間隔 */
  min-width: 44px;           /* §7：クリック領域 44px 以上 */
  min-height: 44px;
  padding: 0;
  margin: 0;
}
.hal-lp .hal-header__menu-bar {
  position: relative;
  display: block;
  width: 22px;
  height: 18px;              /* 上線の上端〜下線の下端 */
  background-color: transparent;
  background-image: linear-gradient(currentColor, currentColor); /* 中央線 */
  background-repeat: no-repeat;
  background-size: 22px 2px;
  background-position: 0 8px;
}
.hal-lp .hal-header__menu-bar::before,
.hal-lp .hal-header__menu-bar::after {
  content: "";
  position: absolute;
  left: 0;
  top: auto;
  width: 22px;
  height: 2px;
  background: currentColor;
  transition: transform .25s ease, opacity .25s ease;
}
.hal-lp .hal-header__menu-bar::before { top: 0; }
.hal-lp .hal-header__menu-bar::after  { top: 16px; }
.hal-lp .hal-header__menu-btn[aria-expanded="true"] .hal-header__menu-bar { background-image: none; }
.hal-lp .hal-header__menu-btn[aria-expanded="true"] .hal-header__menu-bar::before { transform: translateY(8px) rotate(45deg); }
.hal-lp .hal-header__menu-btn[aria-expanded="true"] .hal-header__menu-bar::after  { transform: translateY(-8px) rotate(-45deg); }
.hal-lp .hal-header__menu-label {
  display: block;
  margin: 0;
  font-family: var(--hal-mono, monospace);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .26em;
  line-height: 1;
  text-indent: .26em;        /* letter-spacing の右余白を打ち消し、光学的中央へ */
}

/* ---------- §8 実測に基づく改行調整（v1.0.26 検証結果の反映） ----------
   実測手順：Chromium 140 / 320・375・390・430・768px で各見出しの行ボックス数を計測し、
   3行以上になったものだけを個別に調整した。数値の一括適用は行っていない。 */

/* (1) 確定H2：`.hal-h2` が持つ左右padding 14px が実効幅を狭め、3行化していた。
       ページ左右の余白は `.hal-container` 側で確保済みのため、確定H2では0にする。 */
@media (max-width: 767.98px) {
  .hal-lp .hal-h2--flow { padding-inline: 0; }
}

/* (2) 320px：CASE・GUIDEのH3が3行になるため、この幅だけ字送りを詰める。 */
@media (max-width: 374.98px) {
  .hal-lp .hal-rail__h3 { font-size: 14px; line-height: 1.5; letter-spacing: 0; }
  /* 既存CSSの .hal-phase__name は独自の font-size を持つため、h3側の指定では効かない。
     要素を直接指定して 320px でも「PHASE 0x ＋ 工程名」を1行に収める。 */
  .hal-lp .hal-phase__h3 { font-size: 13px; letter-spacing: 0; }
  .hal-lp .hal-phase__h3 .hal-phase__name { font-size: 13px; letter-spacing: 0; }
  .hal-lp .hal-phase__h3 .hal-phase__no { margin-right: 8px; font-size: 10px; }
  .hal-lp .hal-phase__h3 .hal-phase__steplist { font-size: 10.5px; letter-spacing: 0; }
  .hal-lp .hal-hero__sub { font-size: 13px; letter-spacing: 0.01em; }
}

/* (3) 768px（3カラム）：調査領域カードの補足（括弧内）が2行以上に割れるため、
       この幅だけ補足の文字サイズと字送りを詰め、見出し全体を2行以内に収める。 */
@media (min-width: 768px) and (max-width: 1023.98px) {
  /* 3カラムのままでは1カラムが約171pxとなり、確定H3「セキュリティ調査（盗聴器発見・
     ストーカー対策）」が主部だけで折り返してしまう。この幅のみ2カラムへ変更し、
     文字サイズを縮めずに2行以内へ収める。 */
  .hal-lp .hal-consult__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hal-lp .hal-card__title { letter-spacing: 0.02em; }
  .hal-lp .hal-card__title-sub { font-size: 12px; letter-spacing: 0; line-height: 1.55; }
}

/* (4) PC：見出しから降格したコピーは、確定H2より一段小さくして階層を明確にする。
       これにより1440pxで3行化していた「最初に必要なのは、安心して話せる場所です。」が
       意図どおり2行（.hal-heading-line の2ブロック）で表示される。 */
@media (min-width: 1024px) {
  .hal-lp .hal-h2--copy { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.55; }
}

/* ---------- §8 確定見出しの改行位置（モバイルのみ） ----------
   意味の切れ目で分割したspanを、モバイルでのみブロック化して改行位置を確定させる。
   PCではinlineのまま扱われるため、PC版の改行には影響しない。
   文字サイズは「最長セグメント（18文字）が1行に収まる」ことを基準に決めた。
     320px：15.0px × 18字 ≒ 270px ≦ 実効幅276px
     375px：17.6px × 18字 ≒ 317px ≦ 実効幅331px
     390px：18.3px × 18字 ≒ 330px ≦ 実効幅346px
     430px：20.2px × 18字 ≒ 364px ≦ 実効幅386px */
@media (max-width: 767.98px) {
  .hal-lp .hal-h2--flow .hal-h2__seg { display: block; }
  .hal-lp .hal-h2--flow {
    font-size: clamp(15px, 4.7vw, 21px);
    letter-spacing: 0;
    line-height: 1.5;
    text-wrap: pretty;
  }
  .hal-lp .hal-h2--flow .hal-h2__seg + .hal-h2__seg { margin-top: 2px; }
}

/* PC・Tablet：セグメントを inline-block（shrink-to-fit）にすることで、
   折り返しが必要な場合は「セグメント境界＝意味の切れ目」で改行される。
   1行に収まる見出しはこれまでどおり1行のまま表示され、見え方は変わらない。 */
@media (min-width: 768px) {
  .hal-lp .hal-h2--flow .hal-h2__seg { display: inline-block; max-width: 100%; vertical-align: top; }
}

/* ---------- §6 3点構成のレイアウト修正 ----------
   figure を flex 列にし、画像とキャプションを積む。
   （画像に height:100% を与えると figure の全高を占有し、キャプションが
     次の画像へ重なるため、左の縦位置画像だけを伸縮させる。） */
.hal-lp .hal-geo__fig { display: flex; flex-direction: column; min-width: 0; }
.hal-lp .hal-geo__img { width: 100%; height: auto; min-height: 0; }
.hal-lp .hal-geo__cap { margin-top: 10px; }
@media (min-width: 768px) {
  .hal-lp .hal-geo { grid-template-rows: auto auto; align-items: stretch; }
  .hal-lp .hal-geo__fig--a .hal-geo__img { flex: 1 1 auto; height: 100%; aspect-ratio: auto; min-height: 520px; }
  .hal-lp .hal-geo__fig--b .hal-geo__img,
  .hal-lp .hal-geo__fig--c .hal-geo__img { aspect-ratio: 16 / 9; height: auto; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-geo__fig--a .hal-geo__img { aspect-ratio: 4 / 5; height: auto; }
  .hal-lp .hal-geo__fig--b .hal-geo__img,
  .hal-lp .hal-geo__fig--c .hal-geo__img { aspect-ratio: 16 / 10; height: auto; }
}

/* ---------- 見出しから降格したコピーの体裁補正 ----------
   h2 を p へ変更したことで、既存の段落用強調スタイル（背景色・左右padding・
   中央揃え）が適用され、見た目が変わってしまっていた。
   降格前（h2）と同じ見え方に戻す。 */
.hal-lp .hal-h2--copy {
  background: none;
  padding: 0;
  text-align: inherit;
  border: 0;
}
/* .hal-band--flip の本文1段落目の中央揃えは、降格コピーの挿入で
   :nth-of-type(1) の対象がずれたため、クラス指定で明示し直す。 */
.hal-lp .hal-band--flip .hal-band__body > .hal-h2--copy + p.hal-p { text-align: center; }

/* ============================================================
   v1.0.29 実装分（監査仕様 v1.0.26 準拠）
   ============================================================ */

/* §E-01：「約束」主見出しの2行設計（seg1拡大／seg2縮小、display:block固定）
   HTML・文言は変更しない。white-space:nowrap は使用しない。 */
.hal-lp section.hal-promise > .hal-container > .hal-h2--flow .hal-h2__seg { display: block; }
.hal-lp section.hal-promise > .hal-container > .hal-h2--flow .hal-h2__seg:nth-child(1) {
  font-size: 1.22em;
  line-height: 1.32;
  letter-spacing: 0.02em;
}
.hal-lp section.hal-promise > .hal-container > .hal-h2--flow .hal-h2__seg:nth-child(2) {
  font-size: 0.68em;
  line-height: 1.50;
  letter-spacing: 0.02em;
  margin-top: 6px;
}
@media (max-width: 767.98px) {
  .hal-lp section.hal-promise > .hal-container > .hal-h2--flow .hal-h2__seg:nth-child(1) { font-size: clamp(22.5px, 7vw, 30px); }
  .hal-lp section.hal-promise > .hal-container > .hal-h2--flow .hal-h2__seg:nth-child(2) { font-size: clamp(13px, 4vw, 17px); }
}

/* §E-02：「約束」下部見出しの中央配置 */
.hal-lp .hal-promise__sub { text-align: center; }

/* §F-01：「限定」見出しの中央配置 */
.hal-lp .hal-capacity .hal-promise__h3 { text-align: center; }

/* §G-01：「相談員」見出しの中央配置 */
.hal-lp .hal-counsel .hal-promise__h3 { text-align: center; }

/* §H-01：CASE導入文をPC 1024px以上で1行にする（版面拡張のみ。縮小・nowrapは使用しない） */
@media (min-width: 1024px) {
  .hal-lp .hal-editorial--case .hal-editorial__intro { max-width: 820px; }
}

/* §I-02：料金セクションのSubコピー */
.hal-lp .hal-price__sub {
  margin: 20px 0 0;
  font-family: var(--hal-sans);
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--hal-body-deep);
  text-align: center;
  text-wrap: pretty;
  word-break: normal;
  line-break: strict;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-price__sub { font-size: 14px; line-height: 2.0; }
}

/* v1.0.30 §8：約束本文の差し替えにより対象文が変わったため、旧E-05の列比拡張を撤去した。 */

/* §E-09（ア案・Owner承認済み）：「約束」セクション主見出しブロックを上端寄りへ上げる。
   対象は section.hal-promise > .hal-container（.hal-label ＋ H2 ＋ .hal-promise__sub）。
   手段は .hal-promise の padding-top の縮小のみ。コピー・DOM・後続ブロックは変更しない。 */
.hal-lp .hal-promise { padding-block: clamp(44px, 4.5vw, 70px) 0; }

/* v1.0.33 §4.2.2：ブレークポイント別の固定margin-top（150/167/171/175px）は撤去し、
   grid構造で右画像の上端を左ブロック上端へ整列させる（末尾の「v1.0.33」ブロック）。 */

/* §I-03：保証ブロックの中央配置。
   .hal-lp ul.hal-assure__list { margin: 0 } が margin-inline: auto を打ち消していたため、
   後着ファイルで margin-inline のみを復元する（margin-block: 0 は維持）。
   内部の行頭一致（text-align: left）は変更しない。 */
.hal-lp ul.hal-assure__list {
  width: fit-content;
  max-width: min(100%, 34em);
  margin-inline: auto;
}
@media (max-width: 767.98px) {
  .hal-lp ul.hal-assure__list { max-width: 100%; }
}

/* ==========================================================================
   v1.0.30 ヘッダー確定仕様（§4）
   --------------------------------------------------------------------------
   本ブロックがヘッダーの最終値を定める唯一の場所である。
   旧版に散在していた次の指定は、いずれも削除済みで本ブロックへ集約した。
     - hal-akasaka-ui-upgrade.css：〜1023pxの2段グリッド、〜767pxブランド、
       〜374pxブランド、tel-block／tel-note、MENUのrow-reverseと負margin
     - hal-authority-hub.css：旧10 MENU、旧5-1 calc右寄せ、旧5-1補正の絶対配置、
       旧5-3 ヘッダータイトル
   負のmargin・transform・absoluteによる画面端寄せは使用しない。
   ========================================================================== */

/* ---- §4-3 画面端余白：1024px以上32px／768〜1023px 24px／767px以下16px ---- */
.hal-lp .hal-header__inner {
  max-width: none;             /* 画面右端からの実余白を確定させるため中央寄せコンテナを解除 */
  margin-inline: 0;
  padding-inline: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 76px;
  position: static;
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-header__inner { padding-inline: 24px; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-header__inner { padding-inline: 16px; min-height: 60px; padding-block: 6px; }
}

/* ---- §4-2 可視ブランド文字列（TOPMinatoFix4 §5・§12.1 単独責任ブロック） ----
   正式表示値は PHP の hal_akasaka_child_brand_label() 1件から出力する。
   端末別に文言を差し替えていた --wide／--narrow／--min の3系統は、DOMとCSSの
   両方から撤去した。本ブロックが可視ブランド文字列の表示責任を単独で持つ。
   幅帯のメディアクエリは互いに重ならない。文字は省略・切断・line-clampしない。 */
.hal-lp .hal-header-brand { display: block; min-width: 0; flex: 1 1 auto; padding: 4px 0; }
.hal-lp .hal-header-brand__title {
  display: block;
  min-width: 0;
  font-family: var(--hal-serif);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.55;
  color: var(--hal-on-ink);
  overflow: visible;
  text-overflow: clip;
}
.hal-lp .hal-header-brand__area { color: var(--hal-on-ink-sub); }
.hal-lp .hal-header-brand__sep  { color: var(--hal-on-ink-sub); margin: 0 4px; }
.hal-lp .hal-header-brand__name { color: var(--hal-on-ink); }
.hal-lp .hal-header-brand:hover .hal-header-brand__name,
.hal-lp .hal-header-brand:focus-visible .hal-header-brand__name { color: var(--hal-on-ink-sub); }
/* 折返しは「｜」の直後だけで起こす。語中では改行しない。 */
.hal-lp .hal-header-brand__area,
.hal-lp .hal-header-brand__name { white-space: nowrap; }
@media (min-width: 1280px) {
  .hal-lp .hal-header-brand__title { font-size: 20px; white-space: nowrap; }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
  .hal-lp .hal-header-brand__title { font-size: 18px; white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-header-brand__title { font-size: 16px; white-space: nowrap; }
}
/* Mobileは省略せず、必要なら「｜」直後で自然に2行化する。 */
@media (max-width: 767.98px) {
  .hal-lp .hal-header-brand__title { font-size: 13px; font-weight: 400; white-space: normal; }
}
@media (max-width: 359.98px) {
  .hal-lp .hal-header-brand__title { font-size: 12px; }
}

/* ---- §4-4 PC・Tabletの電話エリア（768px以上）---- */
.hal-lp .hal-header__actions { display: flex; align-items: center; gap: 20px; flex: none; }
.hal-lp .hal-header__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--hal-on-ink-sub);
  transition: color .2s ease;
  padding: 0;
  margin: 0;
}
.hal-lp .hal-header__tel:hover,
.hal-lp .hal-header__tel:focus-visible { color: #ffffff; }
.hal-lp .hal-header__tel-label {
  font-family: var(--hal-sans);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
.hal-lp .hal-header__tel-icon { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.hal-lp .hal-header__tel-icon svg { display: block; width: 16px; height: 16px; }
.hal-lp .hal-header__tel-num {
  font-family: var(--hal-serif);
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0.06em;
  line-height: 1;
  white-space: nowrap;
}

/* ---- §4-5 Mobileの電話（767px以下）：アイコンのみ・44×44px ---- */
@media (max-width: 767.98px) {
  .hal-lp .hal-header__actions { gap: 4px; }
  .hal-lp .hal-header__tel {
    width: 44px;
    height: 44px;
    justify-content: center;
    gap: 0;
  }
  .hal-lp .hal-header__tel-label,
  .hal-lp .hal-header__tel-num { display: none; }
  .hal-lp .hal-header__tel-icon svg { width: 20px; height: 20px; }
}

/* ---- §4-6 MENU：三本線の真下に文字・上下中央・画面端余白は inner の padding が決める ---- */
.hal-lp .hal-header__menu-btn {
  position: static;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  margin: 0;
  transform: none;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--hal-on-ink-sub);
  transition: color .2s ease;
}

/* ==========================================================================
   v1.0.30 §5 「高度な調査設計」slot09・slot10の主張抑制
   対象は .hal-geo__fig--b / --c のみ。slot05（--a）は変更しない。
   専用ラッパー .hal-geo__shot をセル幅の75%（表示面積75%）で中央配置し、
   疑似要素で rgba(0,0,0,.4) のオーバーレイを画像全面へ重ねる。
   元画像ファイルは加工しない。キャプションはオーバーレイの外・画像下に維持する。
   ========================================================================== */
.hal-lp .hal-geo__fig--b .hal-geo__shot,
.hal-lp .hal-geo__fig--c .hal-geo__shot {
  position: relative;
  display: block;
  width: 75%;
  margin-inline: auto;
  line-height: 0;
}
.hal-lp .hal-geo__fig--b .hal-geo__shot::after,
.hal-lp .hal-geo__fig--c .hal-geo__shot::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .4);
  pointer-events: none;
}
.hal-lp .hal-geo__fig--b .hal-geo__shot .hal-geo__img,
.hal-lp .hal-geo__fig--c .hal-geo__shot .hal-geo__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;   /* 現行アスペクト比は既存 .hal-geo__img の指定を継承する */
}

/* ==========================================================================
   v1.0.30 §6 MOREカードの導線強化
   矢印1文字を可視テキスト「Read More ➔」へ置換し、カード右下へ配置する。
   使用色は既存の黒・消炭・墨色・生成り・グレー系のみ。黄色・オレンジは使用しない。
   ========================================================================== */
.hal-lp .hal-pagelinks__link { position: relative; }
.hal-lp .hal-pagelinks__more {
  display: block;
  margin-top: 16px;
  text-align: right;
  font-family: var(--hal-mono, monospace);
  font-size: 12px;
  letter-spacing: .12em;
  line-height: 1;
  color: var(--hal-muted);
  transition: color .2s ease;
}
.hal-lp .hal-pagelinks__more-arrow { margin-left: .5em; }
.hal-lp .hal-pagelinks__link:hover .hal-pagelinks__more,
.hal-lp .hal-pagelinks__link:focus-visible .hal-pagelinks__more { color: var(--hal-sumi); }

/* マウス・トラックパッド環境でのみカード全体を持ち上げる */
@media (hover: hover) and (pointer: fine) {
  .hal-lp .hal-pagelinks__link { transition: transform .2s ease, background-color .2s ease; }
  .hal-lp .hal-pagelinks__link:hover { transform: translateY(-2px); background: var(--hal-bg-box); }
}
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-pagelinks__link { transition: background-color .2s ease; }
  .hal-lp .hal-pagelinks__link:hover { transform: none; }
}
.hal-lp .hal-pagelinks__link:focus-visible { outline: 1px solid var(--hal-sumi); outline-offset: 2px; }

/* ==========================================================================
   v1.0.30 §7 OFFICE：相談室＋建物外観の2カラム
   左＝photos/office_01.webp（完全個室相談室）／右＝photos/slot_map.PNG.s8-896.webp（Daiwa赤坂ビル外観）
   角丸・黄色・オレンジ・強い影・グラデーションは追加しない。
   建物外観のみ Googleマップへのリンクとし、相談室写真はリンクにしない。
   ========================================================================== */
.hal-lp .hal-officephotos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  margin-top: 34px;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-officephotos { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
.hal-lp .hal-officephoto { margin: 0; min-width: 0; }
.hal-lp .hal-officephoto__link { display: block; text-decoration: none; color: inherit; }
.hal-lp .hal-officephoto__frame {
  display: block;
  border: 1px solid var(--hal-line-card);
  background: var(--hal-bg-box);
  transition: border-color .2s ease;
  line-height: 0;
}
.hal-lp .hal-officephoto__frame img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
/* 建物外観がリンクであることは、控えめな枠線変化で示す */
.hal-lp a.hal-officephoto__link:hover .hal-officephoto__frame,
.hal-lp a.hal-officephoto__link:focus-visible .hal-officephoto__frame { border-color: var(--hal-sumi); }
.hal-lp a.hal-officephoto__link:focus-visible { outline: 1px solid var(--hal-sumi); outline-offset: 3px; }

/* ==========================================================================
   v1.0.30 §9 違和感セクション：縦1カラム
   表示順は全幅共通で ラベル → H2 → 指定2行コピー → slot02.PNG.s8-1672.webp。
   旧2カラム用の grid-template-areas / order / display:contents / margin補正は削除済み。
   後続の .hal-choice.hal-choice--merged（整理セクション）は変更しない。
   ========================================================================== */
.hal-lp .hal-band__single {
  display: block;
  max-width: var(--hal-max);
  margin-inline: auto;
  padding-inline: var(--hal-pad);
}
.hal-lp .hal-band__single .hal-band__head { padding-inline: 0; }

/* 指定2行コピー：各行を個別ブロックとし、意味単位を維持する */
.hal-lp .hal-band__lines {
  margin: 34px 0 0;
  font-family: var(--hal-serif);
  font-size: 17px;
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 2.0;
  color: var(--hal-body-deep);
}
.hal-lp .hal-band__lines .hal-band__line {
  display: block;
  white-space: nowrap;   /* 途中改行・3行化を防ぐ。1行に収まる文字サイズはブレークポイントで調整する */
}
@media (max-width: 1023.98px) {
  .hal-lp .hal-band__lines { font-size: 15px; }
}
/* Mobileは版面幅に連動させ、320pxでも2行・途中改行なし・横スクロール0を成立させる。
   transform: scale() は使用しない。字間0.12emは全幅で維持する。 */
@media (max-width: 767.98px) {
  .hal-lp .hal-band__lines { font-size: clamp(9px, 3.0vw, 15px); }
}

/* 画像：1カラム幅内で中央・比率維持・オーバーレイなし */
.hal-lp .hal-band__single .hal-band__media {
  display: block;
  margin: 34px auto 0;
  padding-inline: 0;
  max-width: 100%;
}
.hal-lp .hal-band__single .hal-band__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  margin-inline: auto;
}/* 原則文言・許容短縮文言はいずれも12px基準・weight300。
   サブ要素の寸法もここで確定する（旧ベース指定は削除済み）。 *//* 許容短縮文言：折返しは「｜」の直後だけで起こるようにする *//* 原則文言（645–767.98px）は1行固定 */

/* 1-b 電話領域とMENUの離隔（誤タップ防止）
   確定値：768px以上 44px／767px以下 16px。いずれもタップ領域の重なりは0px。 */
.hal-lp .hal-header__actions { gap: 44px; }
@media (max-width: 767.98px) {
  .hal-lp .hal-header__actions { gap: 16px; }
}

/* ---------- 2. 違和感セクション本文の中央揃え ---------- */
.hal-lp .hal-band__lines { text-align: center; }

/* ---------- 3. 調査設計 slot09・slot10 ----------
   確定値：表示幅62%（v1.0.30の75%からさらに抑制）／オーバーレイ opacity 0.42 */
.hal-lp .hal-geo__fig--b .hal-geo__shot,
.hal-lp .hal-geo__fig--c .hal-geo__shot { width: 62%; }
.hal-lp .hal-geo__fig--b .hal-geo__shot::after,
.hal-lp .hal-geo__fig--c .hal-geo__shot::after { background: rgba(0, 0, 0, .42); }

/* ---------- 4. MORE：CASE/COSTの視認性向上 ---------- */
.hal-lp .hal-pagelinks__title {
  display: inline-block;
  font-family: var(--hal-serif);
  font-weight: 600;
  background: var(--hal-bg-alt);
  padding: 8px 16px;
}
.hal-lp .hal-pagelinks__more {
  display: inline-block;
  float: right;
  background: var(--hal-bg-alt);
  border: 1px solid var(--hal-line-card);
  padding: 9px 18px;
  color: var(--hal-body-deep);
}
.hal-lp .hal-pagelinks__link::after { content: ""; display: block; clear: both; }
/* v1.0.33 §3.2：hover時に文字色と背景がともに暗色となり判読不能（実測1.10:1）だったため削除した。
   確定値は末尾の「v1.0.33」ブロックで定義する。 */

/* ---------- 5. OFFICE ---------- */
/* 5-a 建物外観をコンパクトに（確定値：フレーム幅72%）／明度・彩度を抑える */
.hal-lp .hal-officephoto--building .hal-officephoto__frame {
  width: 72%;
  margin-inline: auto;
  position: relative;
}
.hal-lp .hal-officephoto--building .hal-officephoto__frame img {
  filter: brightness(0.92) saturate(0.78) contrast(0.98);
}
/* 5-b 画像下の「MAP」表記／hover・focusで「Googleマップ」を表示 */
.hal-lp .hal-officephoto__maplabel {
  display: block;
  width: 72%;
  margin: 10px auto 0;
  text-align: center;
  font-family: var(--hal-mono, monospace);
  font-size: 11px;
  letter-spacing: .22em;
  line-height: 1;
  color: var(--hal-muted);
  transition: color .2s ease;
}
.hal-lp .hal-officephoto__maphover {
  display: block;
  margin-top: 6px;
  font-family: var(--hal-sans);
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--hal-sumi);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease;
}
.hal-lp a.hal-officephoto__link:hover .hal-officephoto__maphover,
.hal-lp a.hal-officephoto__link:focus-visible .hal-officephoto__maphover { opacity: 1; visibility: visible; }
.hal-lp a.hal-officephoto__link:hover .hal-officephoto__maplabel,
.hal-lp a.hal-officephoto__link:focus-visible .hal-officephoto__maplabel { color: var(--hal-sumi); }
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-officephoto__maphover,
  .hal-lp .hal-officephoto__maplabel { transition: none; }
}
/* 5-c 各駅からアクセス詳細ページへの導線枠（※準備中）：非リンク要素 */
.hal-lp .hal-access__soon {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px dashed var(--hal-line-card);
  background: var(--hal-bg-box);
  cursor: default;
}
.hal-lp .hal-access__soon-label {
  font-family: var(--hal-sans);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--hal-body-deep);
}
.hal-lp .hal-access__soon-state {
  font-family: var(--hal-sans);
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--hal-muted);
  white-space: nowrap;
}

/* ---------- 6. 約束セクション ---------- */
/* 6-a 見出し：PC1行・Mobile2行・中央揃え・見出しサイズに合わせた背景ブロック */
.hal-lp .hal-promise__lead-h {
  display: block;
  text-align: center;
  font-family: var(--hal-serif);
  font-weight: 400;
  background: var(--hal-bg-alt);
  padding: 14px 20px;
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .hal-lp .hal-promise__lead-h .hal-heading-line { display: inline; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-promise__lead-h .hal-heading-line { display: block; }
  .hal-lp .hal-promise__lead-h { padding: 12px 14px; }
}
/* 6-b 本文：旧背景ブロックは適用しない（クラスを .hal-promise__para へ変更済み）。
       段落・改行はOwner指定どおり固定する。 */
.hal-lp .hal-promise__para { background: none; padding: 0; margin-top: 26px; }
.hal-lp .hal-promise__line { display: block; }
.hal-lp .hal-promise__line--center { text-align: center; }
/* 6-c サブ見出し：見出しサイズよりわずかに大きい背景ブロック＋上下余白 */
.hal-lp .hal-promise__item .hal-promise__h3--block,
.hal-lp .hal-promise__h3--block {
  display: inline-block;
  font-family: var(--hal-serif);
  font-weight: 500;
  background: var(--hal-bg-alt);
  padding: 12px 22px;
  margin-top: 34px;
  margin-bottom: 26px;
}
/* 6-d 「約束」見出しをPCで1行に収める確定値
   実測：見出しの1行必要幅は22pxで427px（padding除く）。
   左テキスト列の実効幅は 768px時728px／1024px時413px／1280px時454px／1440px時449px。
   1024px帯だけ427pxを満たさないため、768–1023pxは22px、1024px以上は20pxへ確定する。 */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-promise__lead-h { font-size: 22px; line-height: 1.6; }
}
@media (min-width: 1024px) {
  .hal-lp .hal-promise__lead-h { font-size: 20px; line-height: 1.6; }
}

/* ---------- 7. GUIDE：PHASE番号の表示を廃止 ---------- */
.hal-lp .hal-phase__no { display: none; }

/* ==========================================================================
   v1.0.32 Owner追加修正の実装（最終値はここ1か所で追跡できる）
   新色は追加せず、既存CSS変数のみを使用する。
   ========================================================================== */

/* ---------- 版面（左右余白）確定仕様 ----------
   旧版は同一メディアクエリ内で --hal-pad を2回定義しており（12–20px と 20–24px）、
   後着側が常に勝つため意図と実測が食い違っていた。定義を本ブロックへ一本化する。
   確定値：〜767.98px＝clamp(16px, 4.6vw, 22px)／768〜1023.98px＝24px／1024px以上＝28px */
.hal-lp { --hal-pad: 28px; }
@media (max-width: 1023.98px) { .hal-lp { --hal-pad: 24px; } }
@media (max-width: 767.98px)  { .hal-lp { --hal-pad: clamp(16px, 4.6vw, 22px); } }

/* 全幅セクション（暗色帯・背景画像帯）が画面端まで届くことを保証する */
.hal-lp,
.hal-lp > section,
.hal-lp .hal-hero,
.hal-lp .hal-final { max-width: none; margin-inline: 0; }

/* ---------- v1.0.48 §5.4 最終章：PCはコピーを slot06.jpeg.s8-1920.webp の水平・垂直中央へ ----------
   v1.0.47 までは .hal-final__copy が写真直下の墨ブロックであり、負のmargin-top
   （hal-akasaka-ui-upgrade.css 2349/2353行）で写真下部へ重ねていたため、
   コピーが画像下部に寄っていた。PC（min-width:1024px）だけを対象に、
   コピーを写真領域と同じ矩形へ重ね、その中央へ置く。
   Mobile・Tablet（max-width:1023.98px）へは一切波及させない。
   文言・行順・文字色・書体・強調は変更しない。 */
@media (min-width: 1024px) {
  .hal-lp .hal-final__grid { position: relative; }
  .hal-lp .hal-final__copy {
    position: absolute;
    inset: 0;                  /* 写真領域と同一矩形。中心Xと中心Yが一致する */
    z-index: 2;
    display: flex;
    align-items: center;       /* 垂直中央 */
    justify-content: center;   /* 水平中央 */
    margin-top: 0;             /* 負のmarginによる押し上げを解除 */
    padding: 0 var(--hal-pad);
    background: none;          /* 墨ブロックを解除し、写真上のオーバーレイにする */
    box-sizing: border-box;
    pointer-events: none;      /* 写真領域のクリック挙動を変えない（リンクは含まれない） */
  }
  /* v1.0.49 §4.2：PCの最終章画像を1画面構成へ戻す。
     PCヘッダー実測高は 77.00px（.hal-lp .hal-header の getBoundingClientRect().height 実測値。
     内訳はコンテンツ76px＋border-bottom 1px）。
     画像高 ＋ ヘッダー高 ＝ window.innerHeight となるよう height を viewport 高へ連動させる。
     v1.0.48 の height:auto（4:3全幅）では画像高が1画面を大きく超えていた。
     70svh まで縮めると街並みが判別できないため、1画面高を採用する。 */
  .hal-lp .hal-final__media > img {
    width: 100%;
    height: calc(100vh - 77px);
    height: calc(100svh - 77px);
    object-fit: cover;
    object-position: center 42%;
    display: block;
  }
  /* v1.0.49 §4.3：コピー領域幅を広げ、2行を各1行のまま保持する。 */
  .hal-lp .hal-final__copy > * { max-width: min(1040px, 100%); margin-inline: auto; }
  .hal-lp .hal-final__title { margin: 0; }
  .hal-lp .hal-final__title-row { white-space: nowrap; }
  /* コピーと東京タワーの視認性を両立するため、scrimを中央へ薄く寄せる。
     画像全面を黒で覆わず、上下端は素の写真を残す。 */
  .hal-lp .hal-final__scrim {
    background: linear-gradient(
      180deg,
      rgba(16, 14, 12, 0.16) 0%,
      rgba(16, 14, 12, 0.44) 34%,
      rgba(16, 14, 12, 0.52) 50%,
      rgba(16, 14, 12, 0.44) 66%,
      rgba(16, 14, 12, 0.18) 100%
    );
  }
}
/* 共通コンテナは同一トークンで左右余白を揃える */
.hal-lp .hal-container { width: 100%; max-width: var(--hal-max); margin-inline: auto; padding-inline: var(--hal-pad); }
/* 版面外へ出す指定（負のmargin）は本文ブロックでは使用しない */
.hal-lp .hal-container > .hal-p,
.hal-lp .hal-container > .hal-lead { margin-inline: 0; }

/* ---------- 1. ヘッダー：電話とMENUの離隔をさらに確保 ----------
   確定値：1024px以上 72px／768〜1023.98px 56px／767px以下 24px。
   いずれもタップ領域の重なりは0px。負のmargin・transformは使用しない。 */
.hal-lp .hal-header__actions { gap: 72px; }
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-header__actions { gap: 56px; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-header__actions { gap: 24px; }
}

/* ---------- 2. 違和感：2行コピーの中央揃えを固定 ---------- */
.hal-lp .hal-band__lines { text-align: center; }
.hal-lp .hal-band__lines .hal-band__line { display: block; text-align: center; white-space: nowrap; }

/* ---------- 3. MORE：記事カードであることを明示 ---------- */
.hal-lp .hal-pagelinks__link {
  display: block;
  padding: 24px 22px;
  border: 1px solid var(--hal-line-card);
  background: var(--hal-bg-box);
  margin-block: 10px;
}
.hal-lp .hal-pagelinks__title {
  background: var(--hal-bg-alt);
  padding: 10px 18px;
  font-weight: 600;
}
.hal-lp .hal-pagelinks__more {
  background: var(--hal-sumi);
  border: 1px solid var(--hal-sumi);
  color: var(--hal-on-ink);
  padding: 11px 22px;
  font-weight: 500;
}
@media (hover: hover) and (pointer: fine) {
  .hal-lp .hal-pagelinks__link { transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
  .hal-lp .hal-pagelinks__link:hover {
    transform: translateY(-3px);
    background: var(--hal-bg);
    border-color: var(--hal-sumi);
    box-shadow: 0 2px 10px rgba(27, 24, 19, .10);   /* 既存インク色の低不透明度。強い影は使用しない */
  }
  .hal-lp .hal-pagelinks__link:hover .hal-pagelinks__more { background: var(--hal-ink); border-color: var(--hal-ink); }
  .hal-lp .hal-pagelinks__link:hover .hal-pagelinks__title { background: var(--hal-bg-alt); }
}
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-pagelinks__link { transition: background-color .2s ease; }
  .hal-lp .hal-pagelinks__link:hover { transform: none; box-shadow: none; }
}
.hal-lp .hal-pagelinks__link:focus-visible { outline: 2px solid var(--hal-sumi); outline-offset: 3px; }

/* ---------- 4. 調査設計：文章 → 画像 の順／slot09・10のリンク化 ---------- */
.hal-lp .hal-geo--after-prose { margin-top: 40px; }
.hal-lp .hal-geo__link { display: block; text-decoration: none; color: inherit; }
.hal-lp .hal-geo__fig--link .hal-geo__shot { transition: opacity .2s ease; }
.hal-lp .hal-geo__cta {
  display: block;
  margin-top: 8px;
  font-family: var(--hal-sans);
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--hal-muted);
  transition: color .2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .hal-lp .hal-geo__link:hover .hal-geo__shot { opacity: .88; }
  .hal-lp .hal-geo__link:hover .hal-geo__cta,
  .hal-lp .hal-geo__link:focus-visible .hal-geo__cta { color: var(--hal-sumi); }
}
.hal-lp .hal-geo__link:focus-visible { outline: 2px solid var(--hal-sumi); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-geo__fig--link .hal-geo__shot,
  .hal-lp .hal-geo__cta { transition: none; }
}

/* ---------- 5. OFFICE：アクセスの駅別カード ---------- */
.hal-lp .hal-access__list--cards { display: grid; gap: 12px; list-style: none; margin: 14px 0 0; padding: 0; }
.hal-lp .hal-access__card { margin: 0; }
.hal-lp .hal-access__cardlink {
  display: block;
  padding: 14px 16px;
  border: 1px solid var(--hal-line-card);
  background: var(--hal-bg-box);
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, border-color .2s ease, background-color .2s ease;
}
.hal-lp .hal-access__card.is-pending .hal-access__cardlink { cursor: default; border-style: dashed; }
.hal-lp .hal-access__cardcta {
  display: block;
  margin-top: 8px;
  font-family: var(--hal-sans);
  letter-spacing: .06em;
}
/* Stage5AccessFix3: CTA emphasis belongs only to live TOP station links. */
.hal-lp .hal-access__list--cards a.hal-access__cardlink .hal-access__cardcta {
  color: var(--hal-gold);
  font-weight: 700;
  font-size: 12px;
  /* Preserve the Parent's 11px × 1.9 line box; card dimensions do not grow. */
  line-height: calc(1.9 * 11 / 12);
}
.hal-lp .hal-access__list--cards span.hal-access__cardlink .hal-access__cardcta {
  font-size: 11px;
  color: var(--hal-muted);
}
@media (hover: hover) and (pointer: fine) {
  .hal-lp a.hal-access__cardlink:hover {
    transform: translateY(-2px);
    border-color: var(--hal-sumi);
    background: var(--hal-bg);
  }
}
.hal-lp a.hal-access__cardlink:focus-visible { outline: 2px solid var(--hal-sumi); outline-offset: 2px; }
/* Stage5AccessFix3: one Mobile state rule; :active remains a no-JS fallback. */
@media (max-width: 767.98px) and (hover: none) and (pointer: coarse) {
  .hal-lp .hal-access__list--cards a.hal-access__cardlink:active,
  .hal-lp .hal-access__list--cards a.hal-access__cardlink.is-pressed {
    transform: translateY(-2px);
    border-color: var(--hal-sumi);
    background: var(--hal-bg);
  }
}
@media (max-width: 767.98px) and (hover: none) and (pointer: coarse) and (prefers-reduced-motion: reduce) {
  .hal-lp .hal-access__list--cards a.hal-access__cardlink:active,
  .hal-lp .hal-access__list--cards a.hal-access__cardlink.is-pressed { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-access__cardlink { transition: border-color .2s ease; }
  .hal-lp a.hal-access__cardlink:hover { transform: none; }
}

/* ---------- 6. OFFICE：サブ見出しの強調をさらに明確化 ---------- */
.hal-lp .hal-promise__item .hal-promise__h3--block,
.hal-lp .hal-promise__h3--block {
  background: var(--hal-block-c);   /* v1.0.34 §3.3：親背景と同色で視認できなかったため変更 */
  border-left: 0;                 /* v1.0.33 §4.2.3：左端の黒い縦棒を削除 */
  padding: 16px 26px;
  margin-top: 48px;
  margin-bottom: 34px;
}

/* ---------- 7. フォーム接続文（2行） ---------- */
.hal-lp .hal-formbridge__text + .hal-formbridge__text { margin-top: 6px; }

/* ==========================================================================
   v1.0.33 Owner追加指示＋公開サイト監査指摘の実装
   最終値はここ1か所で追跡できる。新色は追加せず、既存CSS変数のみを使用する。
   ========================================================================== */

/* ---------- §3.1 LP外周の不要な左右余白（Astra外側ラッパー由来） ----------
   Astra親テーマの .ast-container が max-width:1240px ＋ padding:20px を持つため、
   1363px時に viewport端からLP背景まで 61.5px の白帯が生じていた。
   フロントページに限定して外側ラッパーの制約だけを解除する。
   width:100vw と負のmarginは使用しない。 */
body.home #content,
body.home .site-content,
body.home #primary,
body.home .ast-container,
body.home .ast-row,
body.home .entry-content,
body.home .ast-article-single,
body.home .ast-article-post {
  max-width: none;
  width: auto;
  margin-inline: 0;
  padding-inline: 0;
}
body.home .ast-container { display: block; }
/* 本文の可読性を担保する .hal-container 内部の設計余白は維持する（下記で再宣言しない）。 */

/* ---------- §3.2／§4.7 MORE：全状態でコントラストを確保 ----------
   通常・hover・focus のいずれでも Read More ➔ を判読できる値へ確定する。
   旧競合ルール（hover時に文字と背景をともに暗色にしていた指定）は削除済み。 */
.hal-lp .hal-pagelinks__more {
  background: var(--hal-sumi);
  border: 1px solid var(--hal-sumi);
  color: #ffffff;                 /* 対 --hal-sumi のコントラスト比は約12:1 */
}
.hal-lp .hal-pagelinks__link:hover .hal-pagelinks__more,
.hal-lp .hal-pagelinks__link:focus-visible .hal-pagelinks__more,
.hal-lp .hal-pagelinks__link:focus-within .hal-pagelinks__more {
  background: var(--hal-ink);
  border-color: var(--hal-ink);
  color: #ffffff;                 /* 対 --hal-ink のコントラスト比は約15:1 */
}
.hal-lp .hal-pagelinks__title,
.hal-lp .hal-pagelinks__link:hover .hal-pagelinks__title,
.hal-lp .hal-pagelinks__link:focus-visible .hal-pagelinks__title {
  background: var(--hal-bg-alt);
  color: var(--hal-ink);          /* 対 #ece7db のコントラスト比は約13:1 */
  border-left: 0;                 /* §4.7：黒い縦棒を削除 */
}
.hal-lp .hal-pagelinks__title::before,
.hal-lp .hal-pagelinks__title::after { content: none; }
.hal-lp .hal-pagelinks__link:focus-visible { outline: 3px solid var(--hal-ink); outline-offset: 3px; }

/* ---------- §3.3 建物外観：暗色・低彩度フィルターの解除 ----------
   Owner確定の暖色版へ差し替えたため、画像側の補正は行わない。 */
.hal-lp .hal-officephoto--building .hal-officephoto__frame img { filter: none; }

/* ---------- §4.2.1 約束セクション本文の中央揃え ---------- */
.hal-lp .hal-promise__paras,
.hal-lp .hal-promise__para,
.hal-lp .hal-promise__para .hal-promise__line { text-align: center; }

/* v1.0.34 §3.1：旧「本文上端へ合わせる」grid指定は撤回し、最終仕様へ統合した。 */

/* ---------- §4.3 相談員セクション：各段落を2行で表示 ---------- */
.hal-lp .hal-counsel__para .hal-counsel__line { display: block; }
/* v1.0.47 §6.2：本文ブロックは中央配置のまま、4文の文字描画を左揃えにし
   各文の先頭Xを一致させる。ブロック自体を width: fit-content ＋ margin-inline: auto で
   中央へ置くため、片側marginや &nbsp;・空白文字による位置合わせは行わない。
   max-width: 100% によりMobileでは自然改行し、折り返した行も同じブロック内で左揃えになる。 */
/* セレクタは詳細度0,3,0とする。同ファイル2274行の
   .hal-lp .hal-container > .hal-p { margin-inline: 0; }（0,3,0）が
   .hal-counsel__para（class に hal-p を含み .hal-container の直下）へ適用されるため、
   0,2,0 では中央寄せが成立しない。後読み・同一詳細度で最終適用させる。 */
.hal-lp .hal-counsel .hal-counsel__para {
  text-align: left;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
}

/* ---------- §4.4 CASE導入文の中央揃え ---------- */
.hal-lp .hal-editorial--case .hal-editorial__intro { text-align: center; margin-inline: auto; }

/* ---------- §4.5 料金：本文2行・注記2行を中央揃え ---------- */
.hal-lp .hal-price__body { text-align: center; }
.hal-lp .hal-price__body .hal-price__line { display: block; }
.hal-lp .hal-price__fine { text-align: center; }
.hal-lp .hal-price__fine > div { text-align: center; }

/* ---------- v1.0.47 §5 支払方法：料金本体から分離した明色の独立ブロック ----------
   v1.0.46 は .hal-price__block の子かつ濃色（var(--hal-ink)）であったため、
   補足情報である支払い方法が料金本体より強く見えていた（Human Owner FAIL判定）。
   v1.0.47 では DOM上 .hal-price__block の閉じタグ後・.hal-price__body の前に置く
   独立した兄弟要素とし、明色の従属ブロックへ是正する。
   背景 #E8E2D7 は指示書 §5.4 の基準色。既存変数（--hal-bg-box #efeae0 /
   --hal-bg-alt #ece7db / --hal-line #e6e0d2）はいずれも同一値ではないため基準色を用いる。
   文字色は料金セクションで既に使用している var(--hal-ink) / var(--hal-body-deep)。
   hal-akasaka-ui-upgrade.css の .hal-lp .hal-payment 系（詳細度0,2,0・濃色前提の
   margin-top / padding-top / border-top）は、本ファイルが後読みかつ詳細度0,3,0のため
   すべて本ブロックへ収束する。 */
.hal-lp .hal-price .hal-payment {
  width: 100%;
  max-width: 560px;
  margin: clamp(22px, 2.6vw, 34px) auto clamp(28px, 3vw, 40px);
  padding: clamp(20px, 2.4vw, 28px) clamp(18px, 2.2vw, 30px);
  background-color: #E8E2D7;
  border: 1px solid rgba(94, 82, 64, 0.16);
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  text-align: center;
}
.hal-lp .hal-price .hal-payment__title { color: var(--hal-ink); text-align: center; }
.hal-lp .hal-price .hal-payment__text  { color: var(--hal-body-deep); text-align: center; margin: 8px 0 16px; }
.hal-lp .hal-price .hal-payment__logos {
  width: auto;
  max-width: 100%;
  margin-inline: auto;
  overflow: visible;
}
/* cards2.png（923×62・比率不変）。height:auto で変形させず、コンテナ幅以内へ縮小する。
   v1.0.47：濃色背景前提だった filter（saturate/brightness）を解除し、素の色で描画する。
   画像バイナリ・比率・ブランド順は一切変更していない。 */
.hal-lp .hal-price .hal-payment__logos img { width: 462px; max-width: 100%; height: auto; display: block; margin-inline: auto; filter: none; }

/* ---------- §4.6 調査設計：紙面背景の上へHTMLテキストを重ねる ----------
   文字は画像へ焼き込まず、通常のHTMLテキストとして配置する。
   固定高さを与えず、文章量に応じて領域が伸びる構造とする。 */
.hal-lp .hal-design__paper {
  position: relative;
  margin-top: 34px;
  /* 上下paddingは同一の実効値。左右は別値。 */
  padding: clamp(28px, 5vw, 64px) clamp(20px, 4vw, 56px);
  background-color: var(--hal-bg-alt);
  isolation: isolate;
  /* v1.0.46 §6：紙面を通常フローのflexで構成し、本文群全体を上下中央に置く。
     固定heightは新設せず、文章量に応じて紙面高が自然に伸びる。 */
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hal-lp .hal-design__paper.is-imaged {
  /* background-image はテンプレート側でインライン指定する（URLは文書基準で解決） */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* 可読性のため、背景の上に生成り系のベールを重ねる（新色は追加しない） */
.hal-lp .hal-design__paper.is-imaged::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(245, 242, 234, .78);
  z-index: -1;
}
/* v1.0.46 §6.2：本ファイル上方の .hal-lp .hal-design__prose（詳細度0,2,0）が
   紙面内の上側にだけ margin-top: clamp(40px, 4.4vw, 72px) を付けていたため、
   上余白と下余白が非対称になっていた。対象紙面内では実効値0にする。
   負のmargin・position:absolute・固定heightは使用しない。 */
.hal-lp .hal-design__paper .hal-design__prose { position: relative; margin-top: 0; margin-bottom: 0; }
.hal-lp .hal-design__paper .hal-p {
  color: var(--hal-ink);          /* 対 実効背景のコントラスト比 4.5:1 以上 */
  max-width: 100%;
  overflow-wrap: anywhere;
}
.hal-lp .hal-design__paper .hal-design__conclusion strong { font-weight: 700; color: var(--hal-ink); }

/* §4.6.6 slot09・slot10 の横並びと常時表示ラベル */
.hal-lp .hal-geo--pair {
  display: grid;
  /* 旧3点構成の grid-template-areas（"a b" / "a c"）と grid-area 指定が残っていると
     2点が同一セルへ重なるため、本ブロックで明示的に解除する。 */
  grid-template-areas: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto;
  gap: clamp(12px, 2.4vw, 28px);
  margin-top: 34px;
  align-items: start;
}
.hal-lp .hal-geo--pair .hal-geo__fig--b,
.hal-lp .hal-geo--pair .hal-geo__fig--c { grid-area: auto; }
/* 元画像の実比率を明示し、変形・過度なクロップを避ける（slot09=2000×1334／slot10=2000×1333）。 */
.hal-lp .hal-geo--pair .hal-geo__fig--b .hal-geo__img { aspect-ratio: 2000 / 1334; min-height: 0; height: auto; }
.hal-lp .hal-geo--pair .hal-geo__fig--c .hal-geo__img { aspect-ratio: 2000 / 1333; min-height: 0; height: auto; }
.hal-lp .hal-geo--pair .hal-geo__fig { margin: 0; min-width: 0; }
.hal-lp .hal-geo--pair .hal-geo__link {
  display: block;
  text-decoration: none;
  color: inherit;
  min-height: 44px;
}
.hal-lp .hal-geo--pair .hal-geo__shot {
  position: relative;
  display: block;
  width: 100%;
  margin-inline: 0;
  line-height: 0;
}
.hal-lp .hal-geo--pair .hal-geo__shot::after { background: rgba(0, 0, 0, .42); }
.hal-lp .hal-geo--pair .hal-geo__img { width: 100%; height: auto; display: block; }
.hal-lp .hal-geo--pair .hal-geo__badge {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
  display: block;
  min-height: 44px;
  box-sizing: border-box;
  padding: 13px clamp(10px, 1.6vw, 18px);
  background: rgba(27, 24, 19, .78);
  color: #ffffff;                 /* 対 実効背景のコントラスト比 4.5:1 以上 */
  font-family: var(--hal-sans);
  font-size: clamp(11px, 1.05vw, 13px);
  letter-spacing: .04em;
  line-height: 1.5;
  white-space: nowrap;
}
.hal-lp .hal-geo--pair .hal-geo__cap { margin-top: 10px; }
.hal-lp .hal-geo--pair .hal-geo__sub {
  font-family: var(--hal-sans);
  font-size: clamp(10.5px, 1vw, 12px);
  letter-spacing: .04em;
  color: var(--hal-body-deep);
}
@media (hover: hover) and (pointer: fine) {
  .hal-lp .hal-geo--pair .hal-geo__link:hover .hal-geo__badge { background: var(--hal-ink); }
}
.hal-lp .hal-geo--pair .hal-geo__link:focus-visible { outline: 3px solid var(--hal-ink); outline-offset: 3px; }
@media (max-width: 389.98px) {
  .hal-lp .hal-geo--pair .hal-geo__badge { padding-inline: 8px; font-size: 10.5px; letter-spacing: .02em; }
}

/* ==========================================================================
   v1.0.33 追補：PCコンテンツ幅の補正／オフィスセクションのGoogleマップ
   ========================================================================== */

/* ---------- 追補§2 背景領域とコンテンツ領域の分離 ----------
   section と背景（色・画像）は width:100% のまま画面全体へ広げ、
   内部コンテンツ枠 .hal-container だけに最大幅を与える。
   トップページ（body.home）に限定し、Astra本体やプラグインの汎用コンテナ、
   ヘッダー・フッター・下層ページへは適用しない。
   ヘッダー内側（.hal-header__inner）は全幅仕様のため除外する。 */
/* 【是正】旧実装は body.home .hal-lp .hal-container:not(.hal-header__inner)（詳細度 0,4,0）で
   max-width を直接指定していたため、料金760px・約束880px・FAQ760px などの
   固有幅（詳細度 0,2,0）を上書きして1200pxへ広げてしまっていた。
   共通コンテナの上限はトークン --hal-max 経由で与え、固有幅の指定が
   常に後勝ちできる詳細度関係（固有 0,2,0 ＞ 基本 .hal-lp .hal-container 0,2,0 の後着）を保つ。 */
@media screen and (min-width: 768px) {
  body.home .hal-lp { --hal-max: 1200px; }
}
@media screen and (max-width: 767px) {
  body.home .hal-lp { --hal-pad: 16px; }
  body.home .hal-lp .hal-container { box-sizing: border-box; }
}
/* 基本コンテナ（固有幅を持たないもの）は .hal-lp .hal-container の
   max-width: var(--hal-max) により 768px以上で1200px、767px以下は幅100%となる。
   固有幅を持つセクション（統計820px／整理780px／料金760px／限定・相談員780px／
   FAQ 760px・1024px以上800px／橋渡し680px／約束880px）は実値をそのまま維持する。 */

/* ---------- 追補§3 オフィスセクション ---------- */
.hal-lp .hal-office-layout { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 34px; }
@media screen and (min-width: 768px) {
  .home .hal-lp .hal-office-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 40px;
  }
}
.hal-lp .hal-office-summary { min-width: 0; }
.hal-lp .hal-office-summary .hal-officephoto { margin: 0; }

.home .hal-office-map {
  position: relative;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.10);
}
.home .hal-office-map iframe {
  display: block;
  width: 100%;
  min-height: 360px;
  border: 0;
}
/* 埋め込みURL未確定時のフォールバック（既存の外観画像リンク）は
   角丸・影を付けず、従来の見えのまま維持する。 */
.home .hal-office-map--fallback { border-radius: 0; box-shadow: none; overflow: visible; }
.home .hal-office-map--fallback .hal-officephoto { margin: 0; }

/* ヘッダー内側は全幅仕様（v1.0.30 §4-3）を維持する。
   v1.0.32 の「.hal-lp .hal-container { max-width: var(--hal-max) }」が
   同一詳細度で後着し、ヘッダーの max-width:none を打ち消していたため再宣言する。 */
.hal-lp .hal-header__inner,
body.home .hal-lp .hal-header__inner {
  max-width: none;
  margin-inline: 0;
}

/* ==========================================================================
   v1.0.33 是正：既存の固有コンテナ幅を確実に維持する
   --------------------------------------------------------------------------
   hal-akasaka-ui-upgrade.css の固有幅（詳細度 0,2,0）は、後着の
   .hal-lp .hal-container { max-width: var(--hal-max) }（同 0,2,0）に
   負けて 1200px へ広がっていた。値は変更せず、詳細度を 0,3,0 へ上げて再宣言する。
   ========================================================================== */
.hal-lp .hal-statement .hal-container { max-width: 820px; }
.hal-lp .hal-choice .hal-container { max-width: 780px; }
.hal-lp .hal-price .hal-container { max-width: 760px; }
.hal-lp .hal-counsel .hal-container,
.hal-lp .hal-capacity .hal-container { max-width: 780px; }
.hal-lp .hal-faq .hal-container { max-width: 760px; }
@media (min-width: 1024px) {
  /* 既存実値：1024px以上のFAQは800px（v1.0.26以来の指定をそのまま維持） */
  .hal-lp .hal-faq .hal-container { max-width: 800px; }
}
.hal-lp .hal-bridge .hal-container { max-width: 680px; }

/* v1.0.34 §6：旧「左＝所在地情報／右＝Googleマップ」「相談室写真を上部へ単独配置」
   および相談室写真の 3/4 切り抜き指定は撤回し、最終仕様へ統合した。 */
.hal-lp .hal-office-summary .hal-officegrid { margin-top: 0; grid-template-columns: minmax(0, 1fr); }

/* ==========================================================================
   v1.0.33 Owner追加修正（最終）
   最終値はここ1か所で追跡できる。新色は追加せず、既存CSS変数のみを使用する。
   ========================================================================== */

/* v1.0.34 §3.1：約束セクションのPC構図（1024px以上・最終仕様）
   左列＝見出し背景ブロック → 本文 → CTA → 注記／右列＝slot03.jpeg.s8-1920.webp
   固定pxによる画像の位置合わせは行わない。 */
@media (min-width: 1024px) {
  .hal-lp .hal-promise__lead .hal-band__grid {
    grid-template-areas:
      "leadh media"
      "paras media"
      "cta   media";
    align-items: start;
    row-gap: 0;
  }
  .hal-lp .hal-promise__lead .hal-band__body { display: contents; }
  .hal-lp .hal-promise__lead .hal-promise__lead-h { grid-area: leadh; margin-top: 0; }
  .hal-lp .hal-promise__lead .hal-promise__paras  { grid-area: paras; margin-top: 30px; }
  .hal-lp .hal-promise__lead .hal-cta-center      { grid-area: cta;   margin-top: 34px; }
  .hal-lp .hal-promise__lead .hal-band__media     { grid-area: media; align-self: start; margin: 0; }
  .hal-lp .hal-promise__lead .hal-band__media img { width: 100%; height: auto; }
}
/* v1.0.34 §3.2 Mobile・Tablet（1023.98px以下）：見出し → 画像 → 本文 → CTA → 注記
   PC構図は1024px以上で適用されるため、それ未満の全帯域で
   「見出しより先に画像を表示しない」順序を保証する。 */
@media (max-width: 1023.98px) {
  .hal-lp .hal-promise__lead .hal-band__grid { display: flex; flex-direction: column; }
  .hal-lp .hal-promise__lead .hal-band__body { display: contents; }
  .hal-lp .hal-promise__lead .hal-promise__lead-h { order: 1; }
  .hal-lp .hal-promise__lead .hal-band__media     { order: 2; margin-block: 26px 0; }
  .hal-lp .hal-promise__lead .hal-promise__paras  { order: 3; }
  .hal-lp .hal-promise__lead .hal-cta-center      { order: 4; }
}

/* ---------- §4 相談員：Owner指定の4ブロック ---------- */
.hal-lp .hal-counsel__para .hal-counsel__line {
  display: block;
  margin-top: 6px;
}
.hal-lp .hal-counsel__para .hal-counsel__line:first-child { margin-top: 0; }
@media (min-width: 1024px) {
  /* PCは指定どおり1ブロック＝1行。文字縮小・nowrapは使用しない。 */
  .hal-lp .hal-counsel__para { font-size: 14px; letter-spacing: 0.02em; }
}

/* ---------- §5.2 調査設計：結論を2ブロックへ分け、いずれも太字 ---------- */
.hal-lp .hal-design__conclusion strong { font-weight: 700; }
.hal-lp .hal-design__cline { display: block; }

/* ---------- §6 FAQ導入文の中央揃え（質問・回答本文は対象外） ---------- */
.hal-lp .hal-faq__lead--center { text-align: center; margin-inline: auto; }

/* ---------- §7.1 OFFICE導入文の中央揃え ---------- */
.hal-lp .hal-editorial--office .hal-editorial__prose,
.hal-lp .hal-editorial--office .hal-editorial__prose .hal-p { text-align: center; }

/* ---------- §7.2 OFFICE：PCは 左＝相談室写真 / 右＝Googleマップ ---------- */
/* v1.0.34 §6：OFFICE構図（最終仕様）
   PC：ブロック最大幅960px・中央配置／左列 minmax(280px,360px)（office_01.webp・比率2:3）
       右列 残余幅（Googleマップ・比率4:3）／gap 40px／上端のみ揃える（高さは揃えない）
   Mobile：相談室画像（最大280px・中央・2:3）→ Googleマップ（幅100%・4:3・margin-top 24px）→ 所在地等 */
.hal-lp .hal-office-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  margin-top: 34px;
  max-width: 960px;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .hal-lp .hal-office-layout,
  .home .hal-lp .hal-office-layout {
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
  }
}
.hal-lp .hal-office-summary { min-width: 0; }

/* 相談室写真：元画像比率2:3を維持し、切り抜かない */
.hal-lp .hal-officephoto--lead { margin: 0 auto; width: 100%; max-width: 360px; }
.hal-lp .hal-officephoto--lead .hal-officephoto__frame { display: block; width: 100%; }
.hal-lp .hal-officephoto--lead .hal-officephoto__frame img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: contain;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-officephoto--lead { max-width: 280px; }
}

/* Googleマップ：比率4:3（iframe元指定 600×450 と一致） */
.hal-lp .hal-office-map { margin: 0; }
.hal-lp .hal-office-layout .hal-office-map { aspect-ratio: 4 / 3; }
.hal-lp .hal-office-layout .hal-office-map iframe {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: block;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-office-layout .hal-office-map { margin-top: 24px; }
}

/* 所在地・施設情報・アクセスは2カラムの下へ全幅で保持する */
.hal-lp .hal-officegrid--below {
  grid-template-columns: minmax(0, 1fr);
  margin-top: 34px;
}

/* ---------- §8 フッター：ロゴ下2行を左揃え ---------- */
.hal-lp .hal-footer__policy,
.hal-sub .hal-footer__policy,
.hal-footer__policy {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  text-align: left;
}

/* ==========================================================================
   v1.0.36 「約束」セクション：代表者プロフィールブロック
   独立した黒いカードを廃し、既存ブランド色 var(--hal-ink) の全幅ダーク帯へ統合する。
   画像は無加工・原比率で全体表示し、左端・右端・下端のフェードは疑似要素のみで実装する。
   （filter / mask-image / object-fit: cover / 固定height / object-position は使用しない）
   ========================================================================== */
.hal-lp .hal-promise-profile-wrap {
  position: relative;
  isolation: isolate;
  width: 100%;
  box-sizing: border-box;
  padding: clamp(52px, 5vw, 72px) var(--hal-pad);
}

/* 黒いカードではなく、既存ブランド色の全幅ダーク帯へ統合 */
.hal-lp .hal-promise-profile-wrap::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset-block: 0;
  /* v1.0.56_..._OwnerFix6_ResponsiveRootCauseFix1 §RC-2：100vw＋translateX(-50%) は
     スクロールバー幅ぶん document を広げる。inset-inline を負値で伸ばす方式へ置換し、
     幅計算を viewport 単位から切る。ResponsiveRootCauseFix1 からの移植（宣言単位・同値）。 */
  inset-inline: calc(-1 * var(--hal-pad));
  background: var(--hal-ink);
  pointer-events: none;
}

.hal-lp .promise-profile-block {
  display: grid;
  grid-template-columns: minmax(280px, 320px) minmax(0, 560px);
  gap: clamp(40px, 4vw, 56px);
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 1000px;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0;
  background: transparent;
}

.hal-lp .profile-image-wrapper {
  position: relative;
  width: 100%;
  max-width: 320px;
  overflow: hidden;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.hal-lp .profile-image-wrapper img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  filter: none;
  border: 0;
  border-radius: 0;
}

/* 原画像は変更せず、人物が接する左端と、右端・下端だけを背景へ溶かす */
.hal-lp .profile-image-wrapper::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      var(--hal-ink) 0%,
      transparent 10%,
      transparent 74%,
      var(--hal-ink) 100%),
    linear-gradient(180deg,
      transparent 80%,
      var(--hal-ink) 100%);
}

.hal-lp .promise-profile-text { min-width: 0; }

/* v1.0.49 §6.2：新設した代表プロフィールH3。既存の .history-title と同等の体裁とし、
   周辺のレイアウト・余白を変えない。 */
.hal-lp .profile-h3 {
  margin: 0 0 10px;
  font-family: var(--hal-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--hal-ink);
}
@media (max-width: 767.98px) {
  .hal-lp .profile-h3 { font-size: 16px; }
}

.hal-lp .profile-label {
  display: inline-block;
  margin-bottom: 8px;
  color: #c5a059;
  font-family: var(--hal-sans);
  font-size: 11px;
  letter-spacing: .2em;
}

.hal-lp .profile-catch {
  margin: 0 0 16px;
  padding: 0;
  background: none;      /* 既存 .hal-h3 の背景ブロック指定と干渉させない */
  color: #ffffff;
  font-family: var(--hal-serif);
  font-size: clamp(18px, 1.6vw, 20px);
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
}

.hal-lp .profile-lead {
  margin: 0 0 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .85);
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
}

.hal-lp .profile-history { margin: 0; }

.hal-lp .history-title {
  margin: 0 0 8px;
  padding: 0;
  background: none;
  color: #c5a059;
  font-family: var(--hal-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .1em;
  text-align: left;
}

.hal-lp .history-desc {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, .75);
  font-family: var(--hal-sans);
  font-size: 13px;
  line-height: 1.85;
  text-align: left;
}
.hal-lp .history-desc:last-child { margin-bottom: 0; }

@media (max-width: 767.98px) {
  .hal-lp .hal-promise-profile-wrap {
    padding: 36px var(--hal-pad) 44px;
  }

  .hal-lp .promise-profile-block {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    margin: 0 auto;
    padding: 0;
  }

  .hal-lp .profile-image-wrapper {
    max-width: 260px;
    margin-inline: auto;
  }

  .hal-lp .profile-image-wrapper::after {
    background:
      linear-gradient(90deg,
        var(--hal-ink) 0%,
        transparent 8%,
        transparent 76%,
        var(--hal-ink) 100%),
      linear-gradient(180deg,
        transparent 78%,
        var(--hal-ink) 100%);
  }
}

/* ==========================================================================
   v1.0.37 Owner承認済み実装
   1. WordPress標準表示の除去（CSS側の停止は functions.php のインラインで実施）
   2. コンバージョンボタンのバーミリオン化
   3. PCヘッダー右側の2ボタン
   4. モバイル3分割追従バー
   5. フォームUI（プログレスバー／選択式2カラム／アコーディオン）
   ========================================================================== */

/* ---------- §2 ボタンカラー（バーミリオン）----------
   対象は中間CTAブロックおよび各コンバージョンボタンに限定する。
   通常のテキストリンク・ナビゲーション・カード・フォーム以外のUIへは波及させない。
   対象セレクタ（実コードから列挙）：
     .hal-lp .cta.cta-solid            … 中間CTA（対応調査／整理）＋OFFICE内CTA
     .hal-lp .hal-form-actions .hal-btn … フォーム「送信内容を確認する」「送信する」
   ※ .cta-hero（FVの電話CTA・最終CTA）は白基調の既存指定を維持する（背景色・配置の変更禁止のため）。 */
.hal-lp .cta.cta-solid {
  background: #C84B31;
  border-color: #C84B31;
  color: #FFFFFF;
}
.hal-lp .cta.cta-solid:hover,
.hal-lp .cta.cta-solid:focus-visible {
  background: #B33C23;
  border-color: #B33C23;
  color: #FFFFFF;
}
.hal-lp .hal-form-actions .hal-btn {
  background: #C84B31;
  border-color: #C84B31;
  color: #FFFFFF;
}
.hal-lp .hal-form-actions .hal-btn:hover,
.hal-lp .hal-form-actions .hal-btn:focus-visible {
  background: #B33C23;
  border-color: #B33C23;
  color: #FFFFFF;
}

/* ---------- §3 PCヘッダー：右側2ボタン ----------
   配置順：[電話窓口] │ [公式LINEコンシェルジュ] [プライベート相談予約] │ [MENU] */
.hal-lp .hal-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: #1A1A1A; }
.hal-lp .hal-header__cta { display: flex; align-items: center; gap: 10px; }

.hal-lp .hal-header__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 10px 18px;
  font-family: 'Shippori Mincho', '游明朝', var(--hal-serif), serif;
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.hal-lp .hal-header__cta-btn--line {
  background: transparent;
  color: #D4AF37;
  border: 1px solid #D4AF37;
}
.hal-lp .hal-header__cta-btn--line:hover,
.hal-lp .hal-header__cta-btn--line:focus-visible { background: rgba(212, 175, 55, .12); color: #D4AF37; }
.hal-lp .hal-header__cta-btn--book {
  background: #5C2C1E;
  color: #FFFFFF;
  border: 1px solid #D4AF37;
}
.hal-lp .hal-header__cta-btn--book:hover,
.hal-lp .hal-header__cta-btn--book:focus-visible { background: #6d3524; color: #FFFFFF; }

/* うっすらとしたゴールドの縦仕切り線 */
.hal-lp .hal-header__actions .hal-header__tel { padding-right: 18px; border-right: 1px solid rgba(212, 175, 55, 0.3); }
.hal-lp .hal-header__actions .hal-header__cta { padding-right: 18px; border-right: 1px solid rgba(212, 175, 55, 0.3); }
.hal-lp .hal-header__tel-num { font-size: 13px; color: rgba(255, 255, 255, 0.85); }
.hal-lp .hal-header__tel-label { color: rgba(255, 255, 255, 0.85); }

/* 2ボタンはPC・Tabletのみ。Mobileは追従バーが担うため非表示。 */
@media (max-width: 1023.98px) {
  .hal-lp .hal-header__cta { display: none; }
  .hal-lp .hal-header__actions .hal-header__tel { padding-right: 0; border-right: 0; }
}
@media (min-width: 1024px) {
  .hal-lp .hal-header__actions { gap: 18px; }
}

/* 固定ヘッダー分の余白（FV本文への重なり防止） */
.hal-lp .hal-hero { padding-top: 76px; }
@media (max-width: 767.98px) { .hal-lp .hal-hero { padding-top: 60px; } }

/* ---------- §4 モバイル3分割追従バー ---------- */
.hal-lp .hal-fixedbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid #D4AF37;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.hal-lp .hal-fixedbar__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 8px 6px;
  color: #FFFFFF;
  font-family: 'Shippori Mincho', '游明朝', var(--hal-serif), serif;
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
}
.hal-lp .hal-fixedbar__btn--line { background: #C68B27; }
.hal-lp .hal-fixedbar__btn--tel  { background: #5C2C1E; }
.hal-lp .hal-fixedbar__btn--form { background: #223A31; }
.hal-lp .hal-fixedbar__btn-main { display: block; }
.hal-lp .hal-fixedbar__btn-sub  { display: block; margin-top: 2px; font-size: 10px; letter-spacing: 0.06em; color: rgba(255, 255, 255, .9); }
.hal-lp .hal-fixedbar__btn:focus-visible { outline: 2px solid #D4AF37; outline-offset: -4px; }

/* PCでは非表示。Mobileはバーの高さ分だけフッター下に余白を確保して隠さない。 */
@media (min-width: 1024px) {
  .hal-lp .hal-fixedbar { display: none; }
}
@media (max-width: 1023.98px) {
  .hal-lp .hal-footer { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
  .hal-lp .hal-form-actions { margin-bottom: 12px; }
}

/* ---------- §5 フォーム：プログレスバー ---------- */
.hal-lp .form-progress-container {
  max-width: 600px;
  margin: 0 auto 32px;
  text-align: center;
}
.hal-lp .form-progress-labels {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  font-family: 'Shippori Mincho', '游明朝', var(--hal-serif), serif;
  font-size: 12px;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.5);
}
.hal-lp .progress-step.active {
  color: #D4AF37;
  font-weight: 500;
}
.hal-lp .progress-step span {
  display: inline-block;
  margin-left: 6px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.8);
}
.hal-lp .form-progress-bar {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
  position: relative;
  margin-bottom: 10px;
}
.hal-lp .form-progress-fill {
  height: 1px;
  background: #D4AF37;
  transition: width 0.3s ease;
}
.hal-lp .progress-note {
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.4);
}

/* ---------- §5 フォーム：選択式項目のPC2カラム ---------- */
@media (min-width: 1024px) {
  .hal-lp .hal-fieldset .hal-radio-group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
  }
  .hal-lp .hal-fieldset .hal-radio { margin: 0; }
}

/* ---------- §5 フォーム：アコーディオン ---------- */
.hal-lp .hal-form-accordion { margin: 0 0 22px; }
.hal-lp .hal-form-accordion__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 12px 16px;
  background: transparent;
  border: 1px solid rgba(212, 175, 55, 0.35);
  color: rgba(255, 255, 255, 0.85);
  font-family: 'Shippori Mincho', '游明朝', var(--hal-serif), serif;
  font-size: 13px;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
}
.hal-lp .hal-form-accordion__toggle:hover,
.hal-lp .hal-form-accordion__toggle:focus-visible { border-color: #D4AF37; color: #ffffff; }
.hal-lp .hal-form-accordion__mark { display: inline-block; transition: transform .2s ease; }
.hal-lp .hal-form-accordion__toggle[aria-expanded="true"] .hal-form-accordion__mark { transform: rotate(180deg); }
.hal-lp .hal-form-accordion__panel { padding-top: 18px; }
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-form-accordion__mark,
  .hal-lp .form-progress-fill { transition: none; }
}

/* ==========================================================================
   v1.0.38 緊急修正
   §4 ヘッダー電話窓口のシャンパンゴールド枠
   §5 モバイル追従バーの配色上書き
   §7 中間CTA・Read Moreの色変更（「お急ぎの方はこちら」は除外）
   §8 OFFICEセクションの縦1カラム化とマップのウォーム・セピア
   ========================================================================== */

/* ---------- §4 ヘッダー電話窓口：全周ゴールド枠 ----------
   v1.0.37の「右辺のみ仕切り線」指定は撤回し、電話窓口全体を1つの枠に収める。 */
.hal-lp .hal-header__actions .hal-header__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #D4AF37;   /* 全周ゴールド枠（旧 border-right のみを撤回） */
  border-right: 1px solid #D4AF37;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease;
}
.hal-lp .hal-header__actions .hal-header__tel:hover,
.hal-lp .hal-header__actions .hal-header__tel:focus-visible { background: rgba(212, 175, 55, .12); }
.hal-lp .hal-header__tel-label,
.hal-lp .hal-header__tel-icon,
.hal-lp .hal-header__tel-num { color: rgba(255, 255, 255, 0.85); }
.hal-lp .hal-header__tel-num { font-size: 13px; }
/* 相談予約ボタンとMENUの間の既存ゴールド仕切りは維持する */
.hal-lp .hal-header__actions .hal-header__cta {
  padding-right: 18px;
  border-right: 1px solid rgba(212, 175, 55, 0.3);
}
/* Mobile：アイコンのみ表示でも44×44px以上のタップ領域とゴールド枠を維持する */
@media (max-width: 767.98px) {
  .hal-lp .hal-header__actions .hal-header__tel {
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
    padding: 8px 10px;
  }
}

/* ---------- §5 モバイル追従バーの配色（最終値） ----------
   旧配色「左 #C68B27 ／ 右 #223A31」は撤回する。構造・文言・リンクは変更しない。 */
.hal-lp .hal-fixedbar__btn--line { background: #223A31; color: #FFFFFF; }
.hal-lp .hal-fixedbar__btn--tel  { background: #5C2C1E; color: #FFFFFF; }
.hal-lp .hal-fixedbar__btn--form { background: #C68B27; color: #FFFFFF; }
/* 表示条件：PC（1024px以上）非表示 ／ 1023.98px以下は表示 */
@media (max-width: 1023.98px) { .hal-lp .hal-fixedbar { display: grid; } }
@media (min-width: 1024px)    { .hal-lp .hal-fixedbar { display: none; } }

/* ---------- §7 中間CTA・Read Moreの色（最終値） ----------
   除外：.cta-solid--keep（「お急ぎの方はこちら」）＝v1.0.37の色を維持する。
   非対象：ヘッダー相談予約／モバイル追従バー／FV電話CTA／テキストリンク／カード本体背景／
           フォームの送信・確認ボタン（.hal-form-actions .hal-btn）。 */
.hal-lp .cta.cta-solid:not(.cta-solid--keep) {
  background: #5C2C1E;
  border-color: #5C2C1E;
  color: #FFFFFF;
}
.hal-lp .cta.cta-solid:not(.cta-solid--keep):hover,
.hal-lp .cta.cta-solid:not(.cta-solid--keep):focus-visible {
  background: #6D3524;
  border-color: #6D3524;
  color: #FFFFFF;
}
/* 除外CTAはv1.0.37の実値（#C84B31 / hover #B33C23 / #FFFFFF）を明示的に維持する */
.hal-lp .cta.cta-solid.cta-solid--keep {
  background: #C84B31;
  border-color: #C84B31;
  color: #FFFFFF;
}
.hal-lp .cta.cta-solid.cta-solid--keep:hover,
.hal-lp .cta.cta-solid.cta-solid--keep:focus-visible {
  background: #B33C23;
  border-color: #B33C23;
  color: #FFFFFF;
}
/* MOREカード内の Read More ➔ */
.hal-lp .hal-pagelinks__more {
  background: #5C2C1E;
  border: 1px solid #5C2C1E;
  color: #FFFFFF;
}
.hal-lp .hal-pagelinks__link:hover .hal-pagelinks__more,
.hal-lp .hal-pagelinks__link:focus-visible .hal-pagelinks__more,
.hal-lp .hal-pagelinks__link:focus-within .hal-pagelinks__more {
  background: #6D3524;
  border-color: #6D3524;
  color: #FFFFFF;
}
/* focus-visible の視認性を維持する */
.hal-lp .cta.cta-solid:focus-visible,
.hal-lp .hal-pagelinks__link:focus-visible { outline: 2px solid #D4AF37; outline-offset: 3px; }

/* ---------- §8 OFFICE：縦1カラム ---------- */
.hal-lp .hal-office-stack {
  display: block;
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
}
.hal-lp .hal-office-stack .hal-officegrid--below { margin-top: 0; }
/* テキスト → 画像、画像 → 地図の間隔（指定範囲 40〜60px 内で50pxへ確定） */
.hal-lp .hal-officephoto--stack {
  display: block;
  width: 100%;
  max-width: 600px;
  margin: 50px auto 0;
}
.hal-lp .hal-officephoto--stack .hal-officephoto__frame { display: block; width: 100%; }
.hal-lp .hal-officephoto--stack .hal-officephoto__frame img {
  display: block;
  width: 100%;
  max-width: 600px;
  height: auto;           /* 原比率を維持（object-fit: cover による切り抜きは行わない） */
  aspect-ratio: auto;
  object-fit: fill;
  margin-inline: auto;
}
.hal-lp .hal-office-stack .hal-office-map {
  margin: 50px auto 0;
  max-width: 800px;
  aspect-ratio: auto;      /* v1.0.34の 4/3 固定を解除し、min-height基準にする */
}

/* §8.4 Googleマップ：ウォーム・セピア */
.hal-lp .hal-office-map iframe,
.home .hal-office-map iframe {
  display: block;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  min-height: 400px;
  height: auto;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  filter: sepia(40%) grayscale(20%) contrast(110%) brightness(105%);
}

/* ---------- §9 フォームUIの実表示是正（v1.0.37の色を明色フォーム背景へ合わせる） ----------
   実WordPressでの実測により、フォームセクションの実効背景は rgb(245,242,234) の明色であり、
   v1.0.37 で白系文字を前提に指定した以下の要素が判読できない状態だった
   （アコーディオン見出しのコントラスト比 実測 1.12）。
   文言・構造・項目・処理は変更せず、可読性に必要な配色のみを是正する。 */
.hal-lp .hal-form-accordion__toggle {
  border: 1px solid rgba(92, 44, 30, 0.45);
  color: var(--hal-ink);            /* 対 rgb(245,242,234) のコントラスト比 4.5:1 以上 */
  background: var(--hal-bg-alt);
}
.hal-lp .hal-form-accordion__toggle:hover,
.hal-lp .hal-form-accordion__toggle:focus-visible {
  border-color: #5C2C1E;
  color: var(--hal-ink);
  background: var(--hal-bg-box);
}
.hal-lp .form-progress-labels { color: var(--hal-body); }
.hal-lp .progress-step.active { color: #5C2C1E; font-weight: 500; }
.hal-lp .progress-step span { color: var(--hal-body-deep); }
.hal-lp .form-progress-bar { background: rgba(27, 24, 19, 0.15); }
.hal-lp .form-progress-fill { background: #D4AF37; }
.hal-lp .progress-note { color: var(--hal-muted); }
/* PC・Tabletは全文を表示する（省略記号・途中切断は使用しない） */
@media (min-width: 768px) {
  .hal-lp .hal-header-brand { min-width: 0; flex: 1 1 auto; }
  .hal-lp .hal-header__inner { gap: 16px; }
}
/* 1024–1279pxはヘッダー右側との競合を余白調整で解消する（タイトルは縮小しない） */
@media (min-width: 1024px) and (max-width: 1279.98px) {
  .hal-lp .hal-header__actions { gap: 14px; }
  .hal-lp .hal-header__cta { gap: 8px; }
  .hal-lp .hal-header__cta-btn { padding: 10px 12px; font-size: 12px; }
  .hal-lp .hal-header__actions .hal-header__tel { padding: 8px 10px; }
  .hal-lp .hal-header__actions .hal-header__cta { padding-right: 12px; }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-header__actions { gap: 12px; }
}

/* §6.3 Mobile：電話アイコン／電話リンクを完全に非表示（幅0でタイトル領域へ返す）
   PCの電話窓口と tel: リンク、Mobile最下部追従バーの電話リンク、MENUは維持する。 */
@media (max-width: 767.98px) {
  .hal-lp .hal-header__actions .hal-header__tel { display: none; }
  .hal-lp .hal-header-brand { flex: 1 1 auto; min-width: 0; }
  .hal-lp .hal-header__actions { gap: 0; }/* Mobile共通の下限値 */
  /* Mobile下限値は表示中の3種すべて（--wide を含む）へ適用する */
  .hal-lp .hal-header-brand__title .hal-header-brand__name { font-size: 14px; font-weight: 700; letter-spacing: 0.02em; }
  .hal-lp .hal-header-brand__title .hal-header-brand__sep { font-size: 13px; font-weight: 600; margin: 0 2px; }
  .hal-lp .hal-header-brand__title .hal-header-brand__area { font-size: 12.5px; font-weight: 600; letter-spacing: 0.01em; }
  /* 最大2行・省略記号なし。折返しは「｜」の後で起こる。 */
  .hal-lp .hal-header-brand__title { white-space: normal; overflow: visible; text-overflow: clip; }
  .hal-lp .hal-header-brand__title .hal-header-brand__name,
  .hal-lp .hal-header-brand__title .hal-header-brand__area { display: inline-block; white-space: nowrap; }
}

/* ---------- §7 FV：PCの「HERO写真とロゴだけ」を解消 ----------
   適用範囲は min-width:1024px のみ。Mobile・Tablet（1023.98px以下）は v1.0.38 の構成を維持する。
   既存要素（H1 kicker / H1 main / サブコピー / 匿名TEL CTA / 受付注記・LINE導線）は
   削除・改文せず、HERO写真と同一のFVレイヤー内へ重ねて配置する。
   横スクロール・スクロールジャック・開閉ボタン・強制アニメーションは追加しない。 */
@media (min-width: 1024px) and (orientation: landscape) {   /* v1.0.52 §6.6：Tablet縦向き(1024px portrait)へPC用FVを適用させない */
  .hal-lp .hal-hero {
    position: relative;
    /* v1.0.48 §7.2：初期表示（scrollY=0）でFVだけがviewportを満たすようにする。
       v1.0.47 までは .hal-hero 自体が calc(100svh - 76px) であり、固定ヘッダー分の76pxだけ
       FVが不足して次セクションが初期画面に露出していた。固定値860px等への置換は行わない。

       .hal-hero__grid（＝HERO写真の描画枠）の高さは calc(100svh - 76px) のまま据え置き、
       align-items: flex-end でFV下端をviewport下端へ合わせる。
       これにより
         ・.hal-hero 全体の高さ ＝ 100svh（次セクション露出0px）
         ・HERO写真の描画高 ＝ calc(100svh - 76px)（v1.0.47と同一）
       が同時に成立し、object-fit: cover の切り取りとFVコピーの横位置・H1開始線・
       Kicker/CTA/注記の中央軸は一切変化しない（§7.3 遵守）。
       上端に生じる76pxは、同じ墨色の固定ヘッダー（76px・#1A1A1A・不透明）が完全に覆うため
       視覚上の空白にならず、写真の可視範囲はむしろ76px広がる（画像上部の欠落は発生しない）。 */
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: flex-end;
    padding-top: 0;              /* 固定ヘッダー分は .hal-hero__grid 側で確保する */
  }
  .hal-lp .hal-hero__grid {
    position: relative;
    display: block;
    width: 100%;
    min-height: calc(100svh - 76px);
    padding-top: 76px;
    box-sizing: border-box;
  }
  /* 写真はFVレイヤーの背面いっぱいに敷く（元ファイル slot01.png.s8-1920.webp をそのまま使用） */
  .hal-lp .hal-hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  .hal-lp .hal-hero__media > img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center 62%;   /* 既存の見え方（窓辺と東京タワーの帯）を維持 */
  }
  /* 文字背面だけに黒系グラデーション。コピー背面へ不透明ボックスは置かない。 */
  .hal-lp .hal-hero__scrim {
    top: auto;
    bottom: 0;
    height: 62%;
    background: linear-gradient(0deg, rgba(18,16,13,.82) 0%, rgba(18,16,13,.58) 32%, rgba(18,16,13,.22) 64%, rgba(18,16,13,0) 100%);
  }
  /* ロゴは既存の承認済み位置関係（画像内比率）を維持する */
  .hal-lp .hal-hero__logo { z-index: 2; }
  /* コピーは写真上の左下寄せ。被写体（中央〜右の東京タワー帯）を覆わない。 */
  .hal-lp .hal-hero__copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: calc(100svh - 76px - 76px);
    /* ---------- v1.0.45 §6.2：背景画像の object-fit: cover と同一座標系への連動 ----------
       v1.0.44 の固定値（--hal-fv-h1-x-base: 192.8px ／ --hal-fv-shift）は撤去した。
       固定pxではCustomizerプレビューと実PC表示でviewport幅が変わったとき、
       背景内のHALロゴ・窓枠だけが追従してコピー基準が取り残されるため。

       背景 photos/slot01.png.s8-1920.webp = 2752×1536px（43:24 = 1.7916666…）
       FV高さ H = calc(100svh - 76px) ／ object-fit: cover ／ 水平 object-position: 50%

       ・横幅基準表示（W/2752 ≥ H/1536）：画像は横方向にクロップされないため
         画像内比率 f の点は  x = f × 100vw
       ・縦幅基準表示（H/1536 > W/2752）：描画幅 = 1.7916667 × H、
         左端 = (W − 1.7916667H)/2 のため
         x = 50vw + 1.7916667 × H × (f − 0.5)   … H = 100svh − 76px を代入して展開

       Owner確定基準（2048px幅の修正イメージ）
         H1左端 312px      → f = 312/2048  = 0.15234375    → 0.622884114583 → 62.2884114583svh / 47.3391927083px
         窓枠中心 454px    → f = 454/2048  = 0.2216796875  → 0.498657226562 → 49.8657226562svh / 37.8979492188px
         中央揃え幅 284px  → f = 284/2048  = 0.138671875   → 0.248453776042 → 24.8453776042svh / 18.8824869792px

       左端・中心は2式の小さい方（min）、幅は描画倍率が max(W/2752, H/1536) であるため大きい方（max）。
       極端な縦長表示で負座標にならないよう max() で下限を設ける（40 + 204/2 = 142 で相互に整合）。
       JavaScript・transform:translateX()・絶対配置は使用しない。 */
    /* v1.0.48 §7.3：HERO写真（.hal-hero__media）の描画高は v1.0.47 と同じ
       calc(100svh - 76px) を維持するため、object-fit: cover の追従式も v1.0.45 の値のまま
       変更していない。これによりFVコピーの横位置・H1の開始線・Kicker/CTA/注記の中央軸は不変となる。 */
    --hal-fv-h1-left: max(
      40px,
      min(
        15.234375vw,
        calc(50vw - 62.2884114583svh + 47.3391927083px)
      )
    );
    --hal-fv-window-center: max(
      142px,
      min(
        22.16796875vw,
        calc(50vw - 49.8657226562svh + 37.8979492188px)
      )
    );
    --hal-fv-centered-width: max(
      204px,
      max(
        13.8671875vw,
        calc(24.8453776042svh - 18.8824869792px)
      )
    );
    /* H1カラム幅は368pxを維持する（v1.0.44から不変）。 */
    --hal-fv-h1-col: 368px;
    /* v1.0.45 §6.3：padding-left と max-width を同一の基準値で連動させる。
       312pxには「探」1文字分が既に反映済みのため、--hal-fv-shift を再加算しない。 */
    align-items: flex-start;
    max-width: calc(var(--hal-fv-h1-left) + var(--hal-fv-h1-col));
    margin: 0;
    background: none;              /* 墨ブロックの不透明背景を解除 */
    padding: 0 0 clamp(44px, 8vh, 88px) var(--hal-fv-h1-left);
    box-sizing: border-box;
  }
  /* v1.0.45 §6.4：H1カラム幅を368pxへ固定。H1・説明文は左揃えを維持する。 */
  .hal-lp .hal-hero__copy-main { width: var(--hal-fv-h1-col); max-width: var(--hal-fv-h1-col); }
  /* v1.0.45 §6.6：電話CTAブロックと注記を背景窓枠中心へ揃える。
     左端をH1と同じ --hal-fv-h1-left 起点とし幅を --hal-fv-centered-width とすることで
     中心軸 = h1-left + centered-width/2 = --hal-fv-window-center が恒等的に成立する。
     .hal-hero__note は .hal-hero__cta の子であるため text-align は継承で届く。
     H1・説明文は .hal-lp .hal-hero__title / 既定の左揃えのまま。 */
  .hal-lp .hal-hero__cta { align-self: flex-start; width: var(--hal-fv-centered-width); text-align: center; }
  /* v1.0.45 §6.6：中央揃え領域幅（2048pxで284px）は注記1行目（実測292px）およびCTAボタン
     （実測209.81px）より狭くなる幅帯があるため、そのままでは自動折返しが発生し
     「注記の2行構成を変更しない」「CTAボタンの寸法を変更しない」「縦座標差0px」を満たせない。
     white-space: nowrap で自動折返しのみを抑止する。<br> による明示改行は維持されるため
     注記は2行構成のまま、中心軸 --hal-fv-window-center に対して左右対称に配置される。
     文言・font-size・letter-spacing・リンクは変更していない。 */
  .hal-lp .hal-hero__note { white-space: nowrap; }
  .hal-lp .hal-hero__cta .cta-hero { white-space: nowrap; }
  .hal-lp .hal-hero__title { font-size: clamp(30px, 2.5vw, 40px); line-height: 1.5; }
  .hal-lp .hal-hero__sub { margin-top: 14px; }
  .hal-lp .hal-hero__cta { margin-top: 22px; }
  .hal-lp .hal-hero__cta .cta-hero { min-height: 44px; }   /* タップ領域44px以上 */
  .hal-lp .hal-hero__note { margin-top: 12px; }
  /* 「違和感」以降は通常文書フローのまま（HERO直後に続く） */
}

/* ---------- v1.0.45 §6.7：v1.0.44の1600px以上・固定座標ブロックは撤去した ----------
   撤去した規則（いずれも固定px基準でCustomizerプレビューと実PC表示の座標系が一致しなかった）
     @media (min-width: 1600px) { .hal-lp .hal-hero__copy {
        align-items: stretch;
        padding-left: calc(var(--hal-fv-h1-x-base) + var(--hal-fv-shift));
        max-width:  calc(var(--hal-fv-h1-x-base) + var(--hal-fv-shift) + var(--hal-fv-h1-col)); } }
   v1.0.45 では 1024px以上の1ブロックのみで object-fit 追従式により最終適用させるため、
   1600px以上の分岐そのものが不要になった。末尾への新規上書きは追加していない。 */

/* ---------- v1.0.44 §4 PCヘッダー3ボタン ----------
   min-width:1024px 限定。Mobile（追従バー担当・.hal-header__cta は非表示）および
   Tablet（768-1023.98px）の既存表示へは適用しない。
   既存のhover/focus-visibleは 3019-3020 / 3026-3027 / 3195-3196行にあり、
   本ブロックより前方かつ同一詳細度のため、そのままでは通常状態の宣言に敗ける。
   既存の意匠を保つため、同一の値を本ブロック内で再固定する（新規の意匠は追加しない）。
   !important は使用しない。 */
@media (min-width: 1024px) {
  /* フォーム予約ボタン（プライベート相談予約） */
  .hal-lp .hal-header__cta .hal-header__cta-btn--book {
    background-color: #1C1917;
    color: #F5F3EF;
    border: none;
    font-family: 'Shippori Mincho', serif;
    letter-spacing: 0.15em;
  }
  .hal-lp .hal-header__cta .hal-header__cta-btn--book:hover,
  .hal-lp .hal-header__cta .hal-header__cta-btn--book:focus-visible {
    background-color: #6D3524;
    color: #FFFFFF;
  }
  /* 電話ボタン（ご相談直通窓口） */
  .hal-lp .hal-header__actions .hal-header__tel {
    background-color: #27272A;
    color: #E7E5E4;
    border: none;
    font-family: 'Shippori Mincho', serif;
    letter-spacing: 0.12em;
  }
  .hal-lp .hal-header__actions .hal-header__tel .hal-header__tel-label,
  .hal-lp .hal-header__actions .hal-header__tel .hal-header__tel-icon,
  .hal-lp .hal-header__actions .hal-header__tel .hal-header__tel-num { color: #E7E5E4; }
  .hal-lp .hal-header__actions .hal-header__tel:hover,
  .hal-lp .hal-header__actions .hal-header__tel:focus-visible {
    background-color: rgba(212, 175, 55, .12);
    color: #E7E5E4;
  }
  /* LINEボタン（公式LINEコンシェルジュ） */
  .hal-lp .hal-header__cta .hal-header__cta-btn--line {
    background-color: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.75);
    border: none;
    font-family: 'Shippori Mincho', serif;
  }
  .hal-lp .hal-header__cta .hal-header__cta-btn--line:hover,
  .hal-lp .hal-header__cta .hal-header__cta-btn--line:focus-visible {
    background-color: rgba(212, 175, 55, .12);
    color: #D4AF37;
  }
}

/* ---------- §8 代表プロフィール（文字サイズの最終値） ----------
   文言・色（既存ゴールド系）・Hタグ階層（h4）は変更しない。 */
.hal-lp .profile-label { font-size: 14px; font-weight: 600; line-height: 1.6; }
.hal-lp .history-title { font-size: 18px; font-weight: 600; line-height: 1.5; }
@media (max-width: 767.98px) {
  .hal-lp .profile-label { font-size: 13px; font-weight: 600; line-height: 1.6; }
  .hal-lp .history-title { font-size: 16px; font-weight: 600; line-height: 1.5; }
}

/* ---------- §9 「安心して話せる場所。」の画像位置（PCのみ） ----------
   右側画像 slot03.jpeg.s8-1920.webp の上端を、左側本文 .hal-promise__paras の先頭行上端へ揃える。
   grid行を「見出し／本文＋画像／CTA」の意味構造にし、translateYや負のmarginは使わない。 */
@media (min-width: 1024px) {
  .hal-lp .hal-promise__lead .hal-band__grid {
    grid-template-areas:
      "leadh ."
      "paras media"
      "cta   media";
  }
  /* 本文ブロックの上マージン(30px)分だけ画像側にも同じ余白を与え、
     画像上端と本文先頭行の上端を揃える（translateY・負のmarginは使わない）。 */
  .hal-lp .hal-promise__lead .hal-promise__paras { margin-top: 30px; }
  .hal-lp .hal-promise__lead .hal-band__media { align-self: start; margin-top: 30px; }
}

/* ---------- §11 フォーム主ボタンのCTA色 ----------
   対象は「送信内容を確認する」「送信する」。戻るボタン（.hal-btn--ghost）は現行意匠を維持。 */
.hal-lp .hal-form-actions .hal-btn:not(.hal-btn--ghost) {
  background: #5C2C1E;
  border-color: #5C2C1E;
  color: #FFFFFF;
}
.hal-lp .hal-form-actions .hal-btn:not(.hal-btn--ghost):hover,
.hal-lp .hal-form-actions .hal-btn:not(.hal-btn--ghost):focus-visible {
  background: #6D3524;
  border-color: #6D3524;
  color: #FFFFFF;
}
.hal-lp .hal-form-actions .hal-btn:not(.hal-btn--ghost):focus-visible {
  outline: 2px solid #D4AF37;
  outline-offset: 3px;
}

/* ---------- §16.1 最終CTA見出し（PCのみ2行・左揃え） ----------
   Mobile・Tablet（1023.98px以下）は v1.0.38 の表示・行分割・中央軸・サイズを維持する。 */
@media (min-width: 1024px) {
  .hal-lp .hal-final__title { text-align: left; font-weight: 600; }
  .hal-lp .hal-final__title-row { display: block; }
  .hal-lp .hal-final__title-row + .hal-final__title-row { margin-top: 0.9em; }
  .hal-lp .hal-final__title .hal-heading-line { display: inline; }
  .hal-lp .hal-final__copy,
  .hal-lp .hal-final__text { text-align: left; }
}
@media (max-width: 1023.98px) {
  /* v1.0.38の表示を維持：行分割・中央軸・サイズを変更しない */
  .hal-lp .hal-final__title-row { display: contents; }
  .hal-lp .hal-final__title { text-align: center; }
  .hal-lp .hal-final__copy,
  .hal-lp .hal-final__text { text-align: center; }
}

/* ============================================================================
   v1.0.51　Mobile限定 4項目（Human Owner承認）
   すべて max-width: 767.98px へスコープする。Tablet（768〜1023.98px）および
   PC（1024px以上）には宣言を出さないため、v1.0.50 からの回帰は発生しない。
   !important の新規追加なし。
   ============================================================================ */
@media (max-width: 767.98px) {

  /* ---- §3-1 FV会社ロゴ：可視左端を縦枠②の右端（画像幅14.971%）へ ----
     photos/logo.png.s8-1536.webp の可視領域はボックス幅比で 左15.1042% 〜 右87.1745%、
     高さ比で 上32.9102%。MobileのFV背景は横幅基準で描画されるため、
     窓枠位置は viewport 幅に対する固定%となる（縦枠② = 12.209%〜14.971%）。
     可視右端 45.931% と縦横比を固定したまま、可視左端が 14.971% に接するよう
     width と left を連立で解いた値（Human Owner確定値）。
     平行移動ではなく、右端固定の左方向拡大である。 */
  .hal-lp { --hal-fv-logo-width: 42.958%; --hal-fv-logo-left: 8.482%; }

  /* ロゴ拡大に伴いボックス高も比例して増えるため、top をそのままにすると
     可視上端が下がる。可視上端を v1.0.50 と同一に保つ補正。
       可視上端 = top + 0.329102 × ボックス高
       ボックス高 = 幅% × 100vw × (1024/1536)
       旧: 0.062×H + 0.329102×0.403×0.666667×100vw = 0.062×H + 8.8420vw
       新: top' + 0.329102×0.42958×0.666667×100vw = top' + 9.4251vw
       → top' = 6.2% − 0.5831vw
     top の % は包含ブロック高、vw は幅基準のため、両者を calc() で合成する。 */
  /* TOPMinatoFix3 CR-03：本 `top` 宣言は ResponsiveRootCauseFix1 の座標系正規化
     （transform による透明余白補正）で失効しており、Mobile では後段の最終責任ブロックが
     常に上書きしていた。Mobileのロゴ `top` 責任を1系統にするため宣言ごと撤去した。
     撤去前後で computed 値は変化しない（実測で確認済み）。
     `--hal-fv-logo-width: 42.958%` と `--hal-fv-logo-left: 8.482%` は変更していない。 */

  /* ---- §3-2 代表プロフィール：2行目の可視左端を1行目の「へ揃える ----
     「（U+300C）はグリフが字面の右側に描かれるため、ボックス左端が同じでも
     可視左端は約0.5em右にずれる。2行目だけに同量の左パディングを与えて視覚的に揃える。
     文言・2行構成・フォント・文字サイズ・行間・文字色・ブロック位置は不変。 */
  .hal-lp .profile-catch .profile-catch__l2 { display: inline-block; padding-left: 0.5556em; }   /* 「の可視左端との実測差から確定（18px時=10.0px） */

  /* ---- §3-3 非公開拠点：本文3段落へ .hal-container と同じ左右余白を与える ----
     display: contents により親がボックスを生成しないため、本文が
     セクション幅いっぱいに広がっていた。表示順（見出し→画像→本文）は維持する。 */
  .hal-lp .hal-band--alt .hal-band__body > .hal-p {
    margin-inline: var(--hal-pad);
  }
}

/* ============================================================================
   v1.0.50 §4　Mobile限定 14項目（Human Owner承認）
   すべて max-width: 767.98px へスコープする。Tablet（768〜1023.98px）および
   PC（1024px以上）には一切の宣言を出さないため、v1.0.49 からの回帰は発生しない。
   !important の新規追加なし。既存の責任箇所を補う形で本ブロックへ集約している。
   ============================================================================ */

/* Mobile専用の表示制御ユーティリティ（本Versionで新設）
   Mobileでのみ非表示にする語句を囲む span。Tablet・PCでは display: contents とし、
   インラインボックス境界を生成させないことで v1.0.49 と同一のテキスト流し込みを保つ。
   Mobile限定の改行は、既存の .hal-br-mobile（max-width:767.98px でのみ display:inline）
   を用いる。display:none の要素はボックスツリーに存在しないため、
   Tablet・PCの折返し・字送り・中央軸には一切影響しない。 */
.hal-mb-none { display: contents; }   /* Tablet・PCでは現行文言をそのまま表示 */

@media (max-width: 767.98px) {
  /* Mobileでのみ、指定語句を非表示にする（PC・Tabletは現行表示を維持） */
  .hal-lp .hal-mb-none { display: none; }

  /* ---- §4-1 整理セクション：見出しを中央揃え・font-weight:600 ---- */
  .hal-lp .hal-choice--merged .hal-h2--copy {
    text-align: center;
    font-weight: 600;
  }

  /* ---- §4-2 対応調査セクション：当該H2だけMobileで1行化 ---- */
  .hal-lp #services.hal-consult .hal-h2--flow { font-weight: 600; font-size: 18px; }
  .hal-lp #services.hal-consult .hal-h2--flow .hal-h2__seg { display: inline; }
  .hal-lp #services.hal-consult .hal-h2--flow .hal-h2__seg + .hal-h2__seg { margin-top: 0; }
}
@media (max-width: 359.98px) {
  /* 320〜359.98px：1行維持と横切れ防止のため当該H2だけ縮小する（15px未満にしない） */
  .hal-lp #services.hal-consult .hal-h2--flow { font-size: clamp(15px, 4.7vw, 18px); }
}
@media (max-width: 767.98px) {

  /* ---- §4-4 非公開拠点：Mobileのみ 見出し → 画像 → 本文 の順に並べる ----
     DOMは変更せず、.hal-band__text / .hal-band__body を display: contents にして
     H3と本文を .hal-band__grid の直接の並び替え対象にする。
     H3の複製・件数変更は行わない。読み上げ順はDOM順（画像→H3→本文）のままだが、
     当該画像は alt="" の装飾画像であり、見出しと本文の相対順序は変わらない。 */
  .hal-lp .hal-band--alt .hal-band__grid {
    display: flex;
    flex-direction: column;
  }
  .hal-lp .hal-band--alt .hal-band__text,
  .hal-lp .hal-band--alt .hal-band__body { display: contents; }
  .hal-lp .hal-band--alt .hal-band__grid > .hal-band__media { order: 2; }
  .hal-lp .hal-band--alt .hal-promise__h3--block { order: 1; }
  .hal-lp .hal-band--alt .hal-band__body > .hal-p { order: 3; }

  /* ---- §4-4/§4-5/§4-6 2行見出し（D案）----
     H3本文は単一テキストノードのまま維持し、span / br / wbr を追加しない。
     これによりTablet・PCの内在幅・折返し・中央軸は v1.0.49 と完全に一致する。
     Mobileでは元テキストのボックスを font-size:0 / line-height:0 で潰し、
     ::before で指定2行（\A で明示改行）を表示する。
     ::before を width: fit-content ＋ margin-inline: auto ＋ text-align: left とすることで、
     2行の文字開始位置が一致し、かつ2行ブロック全体がセクション中央へ配置される。
     字形は v1.0.49 のMobile実測値に合わせる
     （font-size: clamp(16px, 4.4vw, 20px) ／ line-height: 1.5 ／ letter-spacing: 0.03em ／
       font-family: 継承 ／ color: var(--hal-sumi)）。font-weight のみ Owner指定で600とする。
     アクセシブルネームは front-page.php の aria-label で元の1文へ固定している。 */
  .hal-lp .hal-band--alt .hal-promise__h3--block,
  .hal-lp .hal-capacity .hal-promise__h3,
  .hal-lp .hal-counsel .hal-promise__h3 {
    font-size: 0;
    line-height: 0;
  }
  .hal-lp .hal-band--alt .hal-promise__h3--block::before,
  .hal-lp .hal-capacity .hal-promise__h3::before,
  .hal-lp .hal-counsel .hal-promise__h3::before {
    display: block;
    white-space: pre;
    text-wrap: wrap;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    text-align: left;
    font-family: inherit;
    font-size: clamp(16px, 4.4vw, 20px);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.03em;
    color: var(--hal-sumi);
  }
  .hal-lp .hal-band--alt .hal-promise__h3--block::before { content: "人目に触れない、\A港区赤坂の相談室"; }
  .hal-lp .hal-capacity .hal-promise__h3::before { content: "担当件数を限定し、一人の\Aご相談者と深く向き合う体制"; }
  .hal-lp .hal-counsel .hal-promise__h3::before { content: "女性相談員による、\A細やかな配慮とヒアリング"; }

  /* ---- §4-5 限定セクション ---- */
  .hal-lp .hal-capacity .hal-capacity__principal { text-align: center; }
  .hal-lp .hal-capacity .hal-p--lines,
  .hal-lp .hal-capacity .hal-p--lines .hal-p__line { text-align: center; }
  .hal-lp .hal-capacity .hal-p--lines .hal-p__line { display: block; }

  /* ---- §4-6 相談員セクション：Mobileのみ3段落構成 ----
     2行目と3行目をインライン化して1段落へ連結し、段落間隔は
     1行目のmargin-bottomと4行目のmargin-topで作る（空<br>の連続は使用しない）。 */
  .hal-lp .hal-counsel__para .hal-counsel__line:nth-child(2),
  .hal-lp .hal-counsel__para .hal-counsel__line:nth-child(3) { display: inline; margin-top: 0; }
  .hal-lp .hal-counsel__para .hal-counsel__line:nth-child(1) { margin-bottom: 1.1em; }
  .hal-lp .hal-counsel__para .hal-counsel__line:nth-child(4) { margin-top: 1.1em; }

  /* ---- §4-7 CASE：主H2のみ20pxへ ----
     OwnerDesignFix2 §6.1：Human Owner最新承認により本20px固定指定は撤回し、
     通常セクションH2の体系（320px 28px 〜 430px 32px）へ統合した。 */

  /* ---- §4-8 料金：説明文4行・ラベル中央 ---- */
  .hal-lp .hal-price__body .hal-price__line { font-size: 14px; letter-spacing: 0.01em; }
  .hal-lp .hal-assure__label { text-align: center; }

  /* ---- §4-9 調査設計：主H2 font-weight:600／結論4行 ---- */
  .hal-lp .hal-design > .hal-container > .hal-h2--flow { font-weight: 600; }
  .hal-lp .hal-design__conclusion .hal-design__cline { display: inline; }
  .hal-lp .hal-design__conclusion { font-size: 14px; letter-spacing: 0.01em; }

  /* ---- §4-10 MORE：主H2 font-weight:600 ---- */
  .hal-lp #hal-more.hal-editorial--more > .hal-container > .hal-h2--flow { font-weight: 600; }

  /* ---- §4-11 FAQ：質問側を太字、回答側を通常ウェイトへ ---- */
  .hal-lp .hal-faq__item > summary { font-weight: 600; }
  .hal-lp .hal-faq__item > summary .hal-faq__q { font-weight: 700; }
  .hal-lp .hal-faq__a { font-weight: 400; }
  .hal-lp .hal-faq__a .hal-faq__amark { font-weight: 400; }

  /* ---- §4-12 OFFICE：導入文を2行・内部左揃え・ブロック中央 ---- */
  .hal-lp #hal-office .hal-editorial__prose { width: fit-content; max-width: 100%; margin-inline: auto; }
  .hal-lp #hal-office .hal-editorial__prose .hal-p { text-align: left; }

  /* ---- §4-13 非公開相談：接続文を各2行＝計4行 ---- */
  .hal-lp .hal-formbridge__text { font-size: 13.5px; letter-spacing: 0.01em; }

  /* ---- §4-14 最終章：1〜3行目の文字開始Xを揃える ----
     1〜3行目だけを共通幅（3行のうち最長＝12文字＋字送り分＝12.72em）の
     左揃えブロックにして中央へ置くことで、3行の文字開始Xが一致する。
     4行目には一切の宣言を出さないため、文字サイズ・太さ・行位置・文言・
     開始X座標は v1.0.49 のまま変化しない。 */
  .hal-lp .hal-final__title .hal-final__title-row:nth-child(1) .hal-heading-line,
  .hal-lp .hal-final__title .hal-final__title-row:nth-child(2) .hal-heading-line:nth-child(1) {
    width: 13em;   /* 3行のうち最長（12文字・字送り0.06em＝12.72em）に丸め誤差分の余裕を加えた値 */
    max-width: 100%;
    margin-inline: auto;
    text-align: left;
  }
}

/* ---- 320〜359.98px：指定行数を維持するための実効幅・文字サイズ調整 ----
   対象4ブロックだけに限定し、他の本文サイズは変更しない。本文は13px未満にしない。 */
@media (max-width: 359.98px) {
  /* §4-5 補足文（2行維持） */
  .hal-lp .hal-capacity .hal-p--lines { font-size: 14px; letter-spacing: 0; }
  /* §4-8 料金説明文（4行維持） */
  .hal-lp .hal-price__body { margin-inline: -6px; }
  .hal-lp .hal-price__body .hal-price__line { font-size: 13px; letter-spacing: 0; }
  /* §4-9 調査設計の結論（4行維持）：紙面の余白は変えず、結論ブロックの実効幅のみ広げる */
  .hal-lp .hal-design__conclusion { padding-inline: 0; }
  /* §4-13 接続文（各2行＝計4行維持） */
  .hal-lp .hal-formbridge__text { font-size: 13px; letter-spacing: 0; }
}
.hal-lp .hal-final__text + .hal-final__text { margin-top: 0.4em; }

/* ---------- §10 OFFICE：指定DOM順・office_01.webp の全体表示 ----------
   切り取り（object-fit: cover）・固定height・aspect-ratio・フィルターは使用しない。 */
.hal-lp .hal-office-stack .hal-officephoto--stack {
  display: block;
  width: 100%;
  max-width: 600px;
  margin: 0 auto 50px;
}
.hal-lp .hal-office-stack .hal-officephoto--stack .hal-officephoto__frame { display: block; width: 100%; }
.hal-lp .hal-office-stack .hal-officephoto--stack .hal-officephoto__frame img {
  display: block;
  width: 100%;
  max-width: 600px;
  height: auto;
  aspect-ratio: auto;
  object-fit: fill;
  filter: none;
  margin-inline: auto;
}
.hal-lp .hal-office-stack .hal-officegrid--below { margin: 0 auto 50px; }
.hal-lp .hal-office-stack .hal-office-map { margin: 0 auto 50px; }
.hal-lp .hal-officeaccess { margin: 0 auto; }

/* ---------- §12 Turnstile widget と §14 フォーム停止時の表示 ---------- */
.hal-lp .hal-turnstile { margin: 22px 0 6px; }
.hal-lp .hal-turnstile .cf-turnstile { display: block; min-height: 65px; }
.hal-lp .hal-turnstile__note {
  margin-top: 8px;
  font-family: var(--hal-sans);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--hal-body-deep);
}
.hal-lp .hal-turnstile--disabled { border: 1px dashed rgba(92, 44, 30, 0.45); padding: 16px; background: var(--hal-bg-alt); }
.hal-lp .hal-turnstile__notice,
.hal-lp .hal-form-disabled {
  margin: 0;
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 1.8;
  color: var(--hal-ink);
}
.hal-lp .hal-turnstile__fallback,
.hal-lp .hal-form-disabled__links { margin: 8px 0 0; font-size: 14px; }
.hal-lp .hal-form-actions .hal-btn[disabled],
.hal-lp .hal-form-actions .hal-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

/* ==========================================================================
   v1.0.40 緊急UI・フォーム是正
   ========================================================================== */

/* ---------- v1.0.43 §5 FV：v1.0.41のPC用レイアウト上書き2ブロックを撤去 ----------
   v1.0.41で追加した次の2ブロックを、Human Owner 承認のうえ撤去した。
   末尾への新規上書きは追加していない（撤去のみ）。
     [1] @media (min-width: 1024px)
         .hal-lp .hal-hero__copy { padding: 44px var(--hal-pad) 54px 196px; max-width: none; }
         .hal-lp .hal-hero__copy-main { max-width: 560px; }
     [2] @media (min-width: 1600px)
         .hal-lp .hal-hero__copy { padding-left: 196px; padding-right: var(--hal-pad); }
         .hal-lp .hal-hero__copy { display: flex; flex-direction: column;
                                   align-items: flex-start; justify-content: flex-end; }
         .hal-lp .hal-hero__copy-main { max-width: 560px; }

   撤去により、本ファイル上方の「1024px以上・FVレイヤー化」ブロック（v1.0.39由来）が
   再び最終適用される。1024px以上の最終適用値は次のとおり。
     max-width: 560px / margin: 0 /
     padding: 0 0 clamp(44px, 8vh, 88px) clamp(40px, 8vw, 140px)

   1600px以上では、hal-akasaka-ui-upgrade.css の align-items: end のみが作用する。
   同ファイルの display:grid / grid-template-columns / max-width:1360px /
   margin-inline:auto / padding-left:196px / padding-right:var(--hal-pad) は
   セレクタ .hal-hero__copy（詳細度 0,1,0）であり、
   .hal-lp .hal-hero__copy（詳細度 0,2,0）の上記規則に敗ける。

   参考：v1.0.40で追加し v1.0.41で撤去済みの次の規則は、本Versionでも復活させていない。
     - .hal-hero__copy の padding-left: clamp(150px, 14vw, 270px)
     - 同規則に付随する max-width: calc(...)
     - コピー帯を暗くする追加グラデーション（横方向）
     - .hal-hero__kicker::before の黒い radial-gradient
   また v1.0.42 の width:100% / max-width:1360px / margin-inline:auto は導入しない。 */
/* §3.3 「港区赤坂の探偵・浮気調査」：コピー領域内で中央揃え。
   視認性向上は文字色（ヘッダーの地域表記と同一の #CFC9BE）で行う。
   背景の暗い帯・疑似要素・背景板・枠線・発光・強い影は追加しない。 */
.hal-lp .hal-hero__kicker {
  display: block;
  width: 100%;
  text-align: center;
}
/* §4.4 視認性：文字そのもののコントラストを上げる。背面の不透明ボックスは置かない。 */
.hal-lp .hal-hero__main { color: #FFFFFF; text-shadow: 0 2px 14px rgba(0,0,0,.80); }
/* v1.0.41 §3.3：kicker は #CFC9BE。影は文字輪郭を補助する最小値に限定する。
   v1.0.44：Mobile・Tabletは本指定（#CFC9BE）を維持する。 */
.hal-lp .hal-hero__kicker { color: #CFC9BE; text-shadow: 0 1px 3px rgba(0,0,0,.55); }
/* v1.0.44 §3.6：Kickerのみホワイトへ。修正1はPC版のみが対象のため 1024px以上へ限定し、
   Mobile・Tabletの色（#CFC9BE）へは波及させない。
   背景板・黒帯・楕円・枠線・発光・強い影・疑似要素は追加せず、影は既存の最小値を維持する。
   他要素（H1・説明文・注記）の色へは波及させない。 */
@media (min-width: 1024px) and (orientation: landscape) {   /* v1.0.52 §6.6：Kicker白＋窓枠中心幅はPC用FV専用 */
  .hal-lp .hal-hero__kicker { color: #FFFFFF; }
  /* v1.0.45 §6.5：KickerはH1カラム全体（368px）の中央ではなく背景窓枠中心へ揃える。
     H1の子であるため左端は --hal-fv-h1-left 起点。幅を --hal-fv-centered-width とすることで
     中心軸が --hal-fv-window-center と一致する。text-align:center は上の既存指定を維持。
     色・文言・font・font-size・letter-spacing・縦位置は変更しない。 */
  .hal-lp .hal-hero__kicker { width: var(--hal-fv-centered-width); }
}
.hal-lp .hal-hero__sub,
.hal-lp .hal-hero__note,
.hal-lp .hal-hero__note .hal-note__sub { color: rgba(255,255,255,.92); text-shadow: 0 2px 14px rgba(0,0,0,.80); }
.hal-lp .hal-hero__note .hal-inline-link { color: #F3E5BD; text-shadow: 0 2px 14px rgba(0,0,0,.80); }

/* ---------- v1.0.41 §4 OFFICE室内画像 ----------
   v1.0.40 の 16/9・4/3 の横長強制は不採用。原画像（縦長 2:3）の左右を切らず、
   切り取りは上端の天井と下端の床の範囲に限定する。画像バイナリは無加工。 */
.hal-lp .hal-office-stack .hal-officephoto--stack {
  width: 100%;
  max-width: 560px;           /* 横幅を無理に800pxへ広げない */
  margin: 0 auto 50px;
}
.hal-lp .hal-office-stack .hal-officephoto--stack .hal-officephoto__frame {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;        /* PC：原画像2:3から切れるのは上下のみ */
  overflow: hidden;
}
.hal-lp .hal-office-stack .hal-officephoto--stack .hal-officephoto__frame img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;          /* CSS上の表示トリミングのみ（ファイルは切り取らない） */
  object-position: center center;
  filter: none;
}
@media (max-width: 767.98px) {
  /* Mobileも左右を切らないことを優先し、縦長比率を維持する。 */
  .hal-lp .hal-office-stack .hal-officephoto--stack { max-width: 100%; }
  .hal-lp .hal-office-stack .hal-officephoto--stack .hal-officephoto__frame { aspect-ratio: 4 / 5; }
}

/* ---------- §5.2 公安委員会届出サムネイル ---------- */
.hal-lp .hal-todoke { display: flex; align-items: flex-start; gap: 14px; }
.hal-lp .hal-todoke__text { flex: 1 1 auto; min-width: 0; }
/* v1.0.41 §5.1：丸い縁・背景・枠・角丸・影を完全に不可視化する。 */
.hal-lp .hal-todoke__thumb {
  flex: 0 0 auto;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  min-width: 0;
  min-height: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
}
.hal-lp .hal-todoke__thumb img { position: relative; z-index: 1; display: block; width: 80px; height: auto; }
/* hoverでも丸い縁・背景・枠を再表示しない */
.hal-lp .hal-todoke__thumb:hover { background: transparent; border: 0; box-shadow: none; }
/* キーボード操作用のoutlineは残す（画像から少し離した矩形） */
.hal-lp .hal-todoke__thumb:focus-visible { outline: 2px solid #D4AF37; outline-offset: 4px; }

/* §5.2：文書画像そのものはぼかさない（文字が読めなくなるため）。
   ラッパー疑似要素に同一画像を低不透明度＋blurで敷き、矩形外周だけを馴染ませる。
   円形haloは使わない。拡大モーダルには適用しない。 */
.hal-lp .hal-todoke__thumb::before {
  content: "";
  position: absolute;
  inset: -6px;
  z-index: 0;
  pointer-events: none;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  opacity: .35;
  filter: blur(3.5px);
}

/* §5.3：PCのみサムネイルを 80px × 1.5 = 120px 左へ移動する。
   transformではなく列幅で占有領域ごと移動し、本文との重なり・カード外へのはみ出しを避ける。 */
@media (min-width: 768px) {
  .hal-lp .hal-todoke { justify-content: flex-start; }
  .hal-lp .hal-todoke__text { flex: 0 1 auto; max-width: calc(100% - 120px - 80px - 14px); }
  .hal-lp .hal-todoke__thumb { margin-right: 120px; margin-left: auto; }
}
@media (max-width: 767.98px) {
  /* Mobileは120pxを強制せず、本文とサムネイルが読みやすい安全な位置に置く */
  .hal-lp .hal-todoke { gap: 12px; }
  .hal-lp .hal-todoke__thumb { margin-right: 0; margin-left: 0; }
  .hal-lp .hal-todoke__thumb img { width: 64px; }
}

/* ---------- §5.3 届出画像モーダル ---------- */
.hal-todoke-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; }
.hal-todoke-modal[hidden] { display: none; }
.hal-todoke-modal__overlay { position: absolute; inset: 0; background: rgba(18,16,13,.82); }
/* v1.0.41 §6：入力画像は 420×534px。存在しない画素を作らないため、
   デスクトップでもネイティブ幅420pxを超えて拡大しない。 */
.hal-todoke-modal__dialog {
  position: relative;
  width: min(90vw, 420px);
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hal-todoke-modal__img {
  display: block;
  width: 420px;
  max-width: 100%;
  height: auto;
  max-height: 90vh;
  object-fit: contain;
  filter: none;              /* サムネイルの外周ぼかしは適用しない */
}
.hal-todoke-modal__close {
  position: absolute;
  top: -14px; right: -14px;
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--hal-ink); color: #FFFFFF;
  border: 1px solid #D4AF37;
  font-size: 20px; line-height: 1; cursor: pointer;
}
.hal-todoke-modal__close:focus-visible { outline: 2px solid #D4AF37; outline-offset: 2px; }
body.hal-modal-open { overflow: hidden; }

/* ---------- §5.4 アクセスカードの縮小 ---------- */
@media (min-width: 1024px) {
  .hal-lp .hal-access__list--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-access__list--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-access__list--cards { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .hal-lp .hal-access__cardlink { padding: 14px 12px; }
}
/* v1.0.41 §7：PC/Tabletの3枚を同じ上端・同じ下端に揃え、CTAを下端へ寄せる。
   コンパクトなpadding・文字サイズは維持し、カードを不必要に大型化しない。 */
.hal-lp .hal-access__list--cards { align-items: stretch; }
/* <li> は list-item のままだと内側の <a> がベースライン整列し、
   カードごとに数pxずれる。li 自体を flex コンテナにして <a> を伸長させる。 */
.hal-lp .hal-access__card {
  min-height: 0;
  height: 100%;
  display: flex;
  align-items: stretch;
  /* 旧 .hal-access__item の縦区切り用 padding（1枚目=下14px／2枚目=上下14px／
     3枚目=上14px）が残っており、カードごとに上端・下端がずれていた。
     カード表示ではgapが間隔を担うため、当該paddingを解除する。 */
  padding: 0;
}
.hal-lp .hal-access__cardlink {
  padding: 16px 14px;
  min-height: 0;              /* 最小高さの強制を解除 */
  height: auto;
  flex: 1 1 auto;             /* li（flexコンテナ）の高さいっぱいに伸長させる */
  align-self: stretch;
  width: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.hal-lp .hal-access__cardcta { margin-top: auto; }
@media (max-width: 767.98px) {
  /* Mobileの1列表示は高さを固定せず、内容に応じた自然な高さを保つ */
  .hal-lp .hal-access__card,
  .hal-lp .hal-access__cardlink { height: auto; }
  .hal-lp .hal-access__cardcta { margin-top: 8px; }
}
.hal-lp .hal-access__line    { font-size: 11px; }
.hal-lp .hal-access__station { font-size: 16px; }
.hal-lp .hal-access__exit,
.hal-lp .hal-access__walk    { font-size: 12px; line-height: 1.55; }

/* ---------- §6 フォーム：設定不足案内 ---------- */
.hal-lp .hal-form-notice {
  margin: 0 0 14px;
  padding: 12px 14px;
  background: var(--hal-bg-alt);
  border: 1px solid rgba(92, 44, 30, 0.45);
  color: var(--hal-ink);
  font-family: var(--hal-sans);
  font-size: 13px;
  line-height: 1.8;
}

/* ---------- §7 「安心して話せる場所。」オーバーレイ ---------- */
.hal-lp .hal-promise-overlay {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  overflow: hidden;
  isolation: isolate;
}
/* v1.0.47 §4.3：v1.0.46 の左端局所ぼかし（backdrop-filter / mask-image / フォールバック
   グラデーション）は、横長 3:2 の text_overlay_bg03.jpg.JPG.s8-1920.webp を前提に導入したものであり、
   縦長 3629×5807px の text_overlay_bg04.JPG.s8-1920.webp では前提が異なるため撤去した。
   新画像の左端は無地のコンクリート面であり、ぼかしなしでも硬い縦線・継ぎ目は発生しない
   （検証報告書 §8.1 で列間輝度差により実測）。
   「写真の主要部分を広範囲にぼかさない」「見出し・本文・注記へ filter / backdrop-filter を
   適用しない」という要件に対しても、擬似要素を持たない構成が最も安全である。 */
.hal-lp .hal-promise-overlay__bg {
  display: block;
  width: 100%;
  height: 100%;
  /* v1.0.47 §4.3：画像は絶対配置で親を満たすため、img 自身の aspect-ratio 指定は
     描画に寄与しない（v1.0.46 の 3:2 前提の指定は誤解を招くため撤去）。
     縦横比は object-fit: cover が保持し、引き伸ばしは発生しない。 */
  object-fit: cover;
  /* text_overlay_bg04.JPG.s8-1920.webp（3629×5807px）の主要建築要素である開口部は、
     画像内 y 41.2%〜75.7%（中心 58.5%）／x 35.1%〜54.7%（中心 44.9%）に位置する（実測）。
     cover の切り取りは object-position を中心に対称となるため、Y を開口部中心へ合わせる。
     固定pxではなく百分率で指定し、viewport幅に追従させる。 */
  object-position: 45% 58%;
  position: absolute;
  inset: 0;
  z-index: 0;
}
/* 右側の明るい余白領域を文字置き場にするための、右寄りスクリム（全面黒塗りはしない） */
/* v1.0.48 §4.2：テキストを中央へ移したため、右寄りスクリムを左右対称の中央帯へ改める。
   画像全面を白・灰・黒で覆わず、左右端は素の画像を残す。既存ブランド色（#F5F2EA）のみを使用する。 */
.hal-lp .hal-promise-overlay__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg,
    rgba(245,242,234,0) 0%,
    rgba(245,242,234,.72) 16%,
    rgba(245,242,234,.90) 34%,
    rgba(245,242,234,.90) 66%,
    rgba(245,242,234,.72) 84%,
    rgba(245,242,234,0) 100%);
}
.hal-lp .hal-promise-overlay__content {
  position: relative;
  z-index: 2;
  box-sizing: border-box;
  padding: clamp(36px, 6vw, 84px);
  /* v1.0.48 §4.2：見出し・本文3段落・テキスト領域全体を中央揃えにする。 */
  text-align: center;
}
.hal-lp .hal-promise-overlay .hal-promise__lead-h,
.hal-lp .hal-promise-overlay .hal-promise__paras,
.hal-lp .hal-promise-overlay .hal-promise__para { text-align: center; }
@media (min-width: 1024px) {
  /* v1.0.48 §4.2：テキスト領域を画像の水平中央へ置く。
     v1.0.47 までの justify-content: flex-end ＋ width: 52% ＋ margin-left: auto による
     右寄せを撤回し、左右外側余白が等しくなる中央配置へ是正する。
     transform や片側marginによる見かけの中央寄せは使用しない。 */
  .hal-lp .hal-promise-overlay { aspect-ratio: 3 / 2; display: flex; align-items: center; justify-content: center; }
  .hal-lp .hal-promise-overlay__content { width: min(760px, 100%); margin-inline: auto; }
  .hal-lp .hal-promise-overlay .hal-promise__lead-h { font-size: clamp(28px, 2.4vw, 34px); }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  /* v1.0.47 §4.3：Tablet帯は本文量で枠高が決まるため、縦長画像に cover を適用すると
     可視縦幅が約24〜31%まで縮み、開口部（画像内 y 41.2%〜75.7%＝高さ34.5%）が上下で切れる。
     枠幅に比例した下限高を与え、可視縦幅を開口部の高さより広く保つ。
     min-height のため本文が増えれば枠は伸び、overflow:hidden による切れは発生しない。
     固定pxではなく vw で指定し、viewport幅に追従させる。 */
  .hal-lp .hal-promise-overlay { aspect-ratio: auto; min-height: 66vw; }
  .hal-lp .hal-promise-overlay__content { width: 100%; }
}
@media (max-width: 767.98px) {
  .hal-lp .hal-promise-overlay { aspect-ratio: auto; min-height: 0; }
  .hal-lp .hal-promise-overlay__content { width: 100%; padding: 32px 20px; }
  .hal-lp .hal-promise-overlay .hal-promise__lead-h { font-size: clamp(23px, 6.2vw, 27px); }

  /* ---- v1.0.50 §4-3（D案）Mobile限定の指定2行 ----
     H3本文は単一テキストノードのまま（span / br / wbr を追加しない）とし、
     text-wrap: balance へ子要素境界を持ち込まない。これによりTablet・PCの
     折返し・行幅・X座標は v1.0.49 と完全に一致する。
     Mobileでは元テキストの描画ボックスを font-size:0 / line-height:0 で潰し、
     ::before で指定2行（\A で明示改行）を表示する。
     字形の見た目は v1.0.49 の実測値に合わせる
     （font-size: clamp(23px, 6.2vw, 27px) ／ line-height: 1.5 ／
       letter-spacing: 0.008em ／ font-weight: 400 ／ color: var(--hal-ink) ／ 中央揃え）。
     アクセシブルネームは front-page.php の aria-label で元の1文へ固定しており、
     疑似要素テキストと二重に認識されない。 */
  .hal-lp .hal-promise-overlay .hal-promise__lead-h {
    font-size: 0;
    line-height: 0;
  }
  .hal-lp .hal-promise-overlay .hal-promise__lead-h::before {
    content: "最初に必要なのは、\A安心して話せる場所。";
    display: block;
    white-space: pre;
    text-wrap: wrap;
    font-family: inherit;
    font-size: clamp(23px, 6.2vw, 27px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.008em;
    color: var(--hal-ink);
    text-align: center;
  }
  .hal-lp .hal-promise-overlay .hal-promise__para { font-size: 14px; line-height: 1.85; }
  /* Mobileは画像を背景として全面表示し、文字の可読性をスクリムで確保する */
  .hal-lp .hal-promise-overlay__scrim {
    background: linear-gradient(180deg, rgba(245,242,234,.72) 0%, rgba(245,242,234,.90) 26%, rgba(245,242,234,.95) 100%);
  }
}
/* 文字色：白い不透明ボックスは置かず、既存インク色でコントラストを確保する */
/* v1.0.49 §3.4：見出しは中央揃えのまま、本文ブロック内部を左揃えへ変更する。
   本文ブロックは width: fit-content ＋ margin-inline: auto で水平中央に置くため、
   3段落の先頭Xが揃い、段落ごとの中央揃えによる左端のばらつきは発生しない。
   同ファイル2587-2588行の .hal-lp .hal-promise__para（0,2,0）および
   .hal-lp .hal-promise__para .hal-promise__line（0,3,0）が text-align: center を与えるため、
   本ブロックを 0,3,0 かつ後読みとして最終適用させる。
   Mobileでは max-width: 100% により自然改行し、折り返した行も左揃えとなる。
   文言・色・font-size・line-height は変更しない。 */
.hal-lp .hal-promise-overlay .hal-promise__lead-h {
  background: none;
  padding: 0;
  margin: 0 0 20px;
  text-align: center;
  color: var(--hal-ink);
}
.hal-lp .hal-promise-overlay .hal-promise__paras {
  margin: 0;
  text-align: left;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
}
.hal-lp .hal-promise-overlay .hal-promise__para,
.hal-lp .hal-promise-overlay .hal-promise__para .hal-promise__line { text-align: left; }
/* v1.0.49 §3.3：同一段落内の明示的な改行。ブラウザ幅による自然改行に依存しない。 */
.hal-lp .hal-promise-overlay .hal-promise__para .hal-promise__line { display: block; }
.hal-lp .hal-promise-overlay .hal-promise__para {
  margin: 0 0 16px;
  color: var(--hal-ink);
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 1.9;
}
/* 最終段落の下marginは、注記削除後に余白が残らないよう解除する（§4.3）。 */
.hal-lp .hal-promise-overlay .hal-promise__para:last-child { margin-bottom: 0; }
/* v1.0.48 §4.3：.hal-promise-overlay__cta をDOMごと削除したため、
   同要素向けの規則（margin-top / text-align / .cta-solid / .hal-note）も撤去した。
   未使用規則を残して競合させない。 */

/* ==========================================================================
   v1.0.52 §5・§6 Mobileフッター文言短縮／Tablet縦横レスポンシブ是正
   （Human Owner承認済み・対象はヘッダー／FV／常駐CTA／常駐CTAに伴うフッター下余白
     ／Mobileフッターの調査ガイド文言に限定する）
   --------------------------------------------------------------------------
   本ブロックはCSSの幅条件と orientation だけで制御する。
   JavaScriptによる画面幅・向き判定、orientationchange の追加、DOM複製、
   CTA複製、transform による位置補正、overflow-x による隠蔽はいずれも行わない。

   サイト全体の 1024px ブレークポイントは一括変更していない。
   PC用FVの3ブロックのみ `(orientation: landscape)` を付加し
   （hal-akasaka-ui-upgrade.css 370行／本ファイル 3635行・4195行）、
   Tablet縦向き 1024px へPC構造が適用されるのを止めている。
   その他のセクションは v1.0.51 のまま維持する。
   ========================================================================== */

/* ---- §5 Mobileフッター：GUIDE列のリンク文言 ----
   Tablet・PC：相談前に確認したい調査ガイド（全文）
   Mobile    ：調査ガイド
   リンク先 /guide/・DOM順・リンク件数・クリック領域・hover・focus-visible は不変。
   非表示コピーの複製は行わない（同一テキストノードを1件だけ保持する）。 */
.hal-lp .hal-footer-guide__prefix { display: inline; }
@media (max-width: 767.98px) {
  .hal-lp .hal-footer-guide__prefix { display: none; }
}

/* ==========================================================================
   §6 Tablet縦向き（構造＝Mobile／寸法＝Tablet）
   適用条件：768px以上 1024px以下 かつ portrait
   Tablet横向き・PC（1024px以上 landscape）は v1.0.51 のPC構造を完全維持する。
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {

  /* ---- §6.3 ヘッダー構造：［ブランドタイトル］…［MENU］の2要素へ固定 ---- */
  /* 電話窓口・公式LINEコンシェルジュ・プライベート相談予約は非表示。
     DOMは削除せず表示のみを止める（リンク・文言・DOM順は不変）。 */
  .hal-lp .hal-header__actions .hal-header__tel { display: none; }
  .hal-lp .hal-header__cta { display: none; }
  /* 仕切り線は非表示要素に付随するため解除する（MENU左に線を残さない）。 */
  .hal-lp .hal-header__actions .hal-header__tel,
  .hal-lp .hal-header__actions .hal-header__cta { padding-right: 0; border-right: 0; }

  /* 画面端余白と要素間隔を Tablet（768〜1023.98px）と同一値へ揃える。 */
  .hal-lp .hal-header__inner { padding-inline: 24px; }
  .hal-lp .hal-header__actions { gap: 12px; }

  /* ブランドタイトルは Tablet 用文字サイズを維持し、全文を1行で表示する。
     省略記号・途中切断は使用しない（1024px幅では全文が収まることを実測で確認する）。 */
  .hal-lp .hal-header-brand { flex: 1 1 auto; min-width: 0; }

  /* ---- §6.5 常駐CTA：3分割追従バーを表示する ----
     既存DOM（公式LINE／電話相談室／24時間フォーム）をそのまま使用する。
     複製・リンク先変更は行わない。safe-area は既存の padding-bottom が担う。 */
  .hal-lp .hal-fixedbar { display: grid; }
  /* TOPMinatoFix4 §12：フッター下余白と .hal-form-actions の下マージンは、
     上流の `@media (max-width: 1023.98px)` ブロック（本条件を包含する）が単独で担当する。
     同一property・同一値の重複宣言をここから撤去した。 */
}

/* ==========================================================================
   v1.0.53 §6・§7 Tablet縦向きFVの最終修正（Human Owner承認）
   --------------------------------------------------------------------------
   適用条件：min-width 768px / max-width 1024px / orientation: portrait
   PC（landscape）・Tablet横向き（landscape）・Mobile（max-width:767.98px）へは
   一切の宣言を出していない。文言・DOM・Hタグ・リンク・画像資産は変更しない。

   ---- 座標系の確認（実測） ----
   Tablet縦向きのFV背景は `.hal-hero__media > img { width:100%; height:auto }`
   （基底規則）で描画される。PC用の object-fit: cover / max-height は
   v1.0.52 で (orientation: landscape) へ限定済みのため適用されない。
   実測：`.hal-hero__media` の x=0・width=viewport幅（768/810/820/834/1024の全幅）。
   したがって横方向のトリミングは発生せず、背景画像内の比率＝コンテナ幅比率が
   恒等的に成立する。Mobile（v1.0.51）と同一の座標系であることを確認した。

   ---- §6 会社ロゴ：最初の完全な縦枠の右端まで左方向へ拡大 ----
   photos/slot01.png.s8-1920.webp（2752×1536）の列平均輝度の実測
     - 画像左端 0〜5.923%       … 左端で切れている不完全な枠（対象外）
     - 12.282%〜14.898%        … 最初の完全な縦枠（暗色の方立 12.282–14.172%＋
                                  内側の見込み 14.172–14.753%＋細い縁 14.753–14.898%）
     - 14.971%                 … ガラス面が完全に立ち上がる最初の列（＝到達位置）
   到達位置は v1.0.51 Mobile で Human Owner が確定した基準 14.971% を再利用する。

   photos/logo.png.s8-1536.webp（1536×1024・RGBA）のアルファ実測（閾値16）
     可視左 15.104167% ／ 可視右 87.174479% ／ 可視上 32.910156%（ボックス比）

   連立（可視右端と縦横比を固定したまま可視左端のみを 14.971% へ）
     可視右端 = 10.8% + 0.87174479 × 40.3%              = 45.931315%（現状維持）
     width    = (45.931315% − 14.971%) / (0.87174479 − 0.15104167) = 42.958%
     left     = 14.971% − 0.15104167 × 42.958%          =  8.482%
   平行移動ではなく、右端を固定した左方向への拡大である。縦横比は不変
   （width のみ指定し height は auto のため）。画像ファイルは無加工。

   ---- ロゴ可視上端の補正 ----
   ボックス高 = width × (1024/1536) のため、拡大により可視上端が下がる。
   これを打ち消す top を、媒体高さ基準の百分率で解く（vw を用いないため
   スクロールバー有無に影響されない）。
     可視上端 = top + 0.32910156 × ボックス高
     旧：0.062 × Hm + 0.32910156 × 0.403 × (2/3) × V = 0.03460465V + 0.08843062V
     新：top' + 0.32910156 × 0.42958 × (2/3) × V     = top' + 0.09426321V
     → top' = 0.02877206V 、V = Hm ÷ (1536/2752) = 1.79166667 Hm
     → top' = 0.05155178 Hm = 5.155178%
   v1.0.51 Mobile の vw 表記（-0.5831vw）と同一値であり、差は 1024px幅で 0.002px。

   ---- §7 FVコピー群の左端統一 ----
   拡大後のロゴ可視左端 = --hal-fv-logo-left + 0.15104167 × --hal-fv-logo-width
   を基準線とし、`.hal-hero__copy` の padding-left を同一の calc() で与える。
   両者は同じ包含ブロック（`.hal-hero__media` / `.hal-hero__grid` の幅）に対する
   百分率であるため、差は構造的に 0.00px となる。
   Kicker のみ text-align: center を left へ戻す（文言・font・色・縦位置は不変）。
   CTAボタン内部の中央揃え（.cta-hero の text-align:center と padding 30px）は
   左端統一に関係しない内部装飾のため維持する。
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {

  /* §6 ロゴ寸法：右端固定・左方向拡大 */
  .hal-lp {
    --hal-fv-logo-width: 42.958%;
    --hal-fv-logo-left: 8.482%;
  }

  /* §6 可視上端の維持（媒体高さ比。--hal-fv-logo-top-frac: 0.062 相当＋拡大補正） */
  .hal-lp .hal-hero__logo { top: 5.155178%; }

  /* §7 FVコピー群の左端をロゴ可視左端へ統一 */
  .hal-lp .hal-hero__copy {
    padding-left: calc(var(--hal-fv-logo-left) + 0.15104167 * var(--hal-fv-logo-width));
  }
  .hal-lp .hal-hero__kicker { text-align: left; }
}

/* ==========================================================================
   v1.0.56_R1 §4：トップページ「対応調査」8カード（調査項目詳細8ページへの1対1接続）
   --------------------------------------------------------------------------
   既存 .hal-consult__grid / .hal-card の指定は変更していない。
   4カード構成に必要な差分のみを .hal-consult__grid--svc8 と
   .hal-card--link へ限定して追加する。!important は使用しない。
   本ブロックは「対応調査」セクション以外へ適用されない。
   ========================================================================== */
.hal-consult__grid--svc8 .hal-card--link {
  display: block;
  text-decoration: none;
  color: inherit;
  /* Mobileでの誤タップ防止：カード自体が十分な高さを持つ */
  min-height: 132px;
}


/* フォーカス表示は消さない。キーボード操作時に輪郭を明示する。 */

.hal-consult__grid--svc8 .hal-card__more {
  display: inline-block;
  margin-top: 16px;
  font-family: var(--hal-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--hal-gold-deep);
  border-bottom: 1px solid var(--hal-gold-line);
  padding-bottom: 4px;
}


/* PC：4列×2段で8枚。既存3列指定（repeat(3,1fr)）を本セクション限定で上書きする。 */
@media (min-width: 1024px) {
  .hal-consult__grid--svc8 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    row-gap: 18px;
  }
}

/* Tablet：2列×4段。8枚が横に潰れないようにする。 */
@media (min-width: 768px) and (max-width: 1023px) {
  .hal-consult__grid--svc8 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

/* Mobile：1列×8段。カード間隔を確保し、隣接カードの誤タップを防ぐ。 */
@media (max-width: 767px) {
  .hal-consult__grid--svc8 {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .hal-consult__grid--svc8 .hal-card--link {
    min-height: 0;
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .hal-consult__grid--svc8 .hal-card__more {
    margin-top: 14px;
    padding-top: 6px;
    padding-bottom: 6px;
  }
}

/* ==========================================================================
   v1.0.56_R1 §10：MORE カードの役割分離
   --------------------------------------------------------------------------
   v1.0.56 までは .hal-pagelinks__link がカード全体を包む <a> であり、
   キー・見出し・説明・Read More のどこを押しても同じページへ遷移した。
   リンクを CTA 1件のみへ限定したため、非リンクとなったテキストの体裁と、
   CTA の操作領域をここで定義する。既存の .hal-pagelinks__link の指定は
   互換のため残しているが、本版のDOMでは使用されない。
   ========================================================================== */
.hal-pagelinks__item--cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.hal-pagelinks__item--cta .hal-pagelinks__key,
.hal-pagelinks__item--cta .hal-pagelinks__title,
.hal-pagelinks__item--cta .hal-pagelinks__desc {
  display: block;
}

.hal-pagelinks__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  min-height: 44px;
  padding: 12px 20px;
  box-sizing: border-box;
  font-family: var(--hal-sans);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: var(--hal-gold-deep);
  border: 1px solid var(--hal-gold-line);
  background: transparent;
}

.hal-pagelinks__cta:hover {
  color: var(--hal-ink);
  background: var(--hal-gold-line);
}

.hal-pagelinks__cta:focus-visible {
  outline: 2px solid var(--hal-gold-deep);
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .hal-pagelinks__cta {
    width: 100%;
    justify-content: center;
    margin-top: 18px;
  }
}

/* ==========================================================================
   v1.0.56_R2 §5 / OwnerDesignFix1 §C-1：Mobile「人目に触れない、港区赤坂の相談室」
   --------------------------------------------------------------------------
   適用範囲は max-width: 767.98px のみ。768px以上のPC表示は完全に維持する。
   セレクタはすべて .hal-band--office 配下へ限定し、他の .hal-band--alt
   （Section03等）へは適用されない。
   見出しはDOM上の <h3> 1件のみを画像内へ重ねる。画像外への二重表示はしない。
   Hタグの追加・複製は行わない。本文段落は画像の下へ通常フローで置く。
   四角い背景ブロックは使用せず、黒から透明へのグラデーションを用いる。
   新色は追加せず #000 / #fff と rgba のみを使用する。
   プロフィール画像・プロフィールブロックには一切触れていない。
   ========================================================================== */
@media (max-width: 767.98px) {
  /* display: contents で .hal-band__text / .hal-band__body を透過させ、
     h3 と各段落を .hal-band__grid 直下のグリッドアイテムにする。
     これにより h3 だけを画像セルへ重ね、段落は画像の下へ流せる。 */
  .hal-lp .hal-band--office .hal-band__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
  }

  .hal-lp .hal-band--office .hal-band__text,
  .hal-lp .hal-band--office .hal-band__body {
    display: contents;
  }

  /* オフィス画像をコンテンツ幅いっぱいへ大型化する。
     アスペクト比は原則 4:3。表示高は画面幅のおよそ65%を基準とする。 */
  .hal-lp .hal-band--office .hal-band__media {
    position: relative;
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    width: 100%;
    aspect-ratio: 4 / 3;
    height: 65vw;
    max-height: 65vw;
    overflow: hidden;
  }

  .hal-lp .hal-band--office .hal-band__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* 焦点位置：観葉植物・椅子・室内空間が画面内に残るよう下寄りへ調整する */
    object-position: 50% 62%;
  }

  /* 画像下部の黒から透明へのグラデーション。四角い背景ブロックは使用しない。 */
  .hal-lp .hal-band--office .hal-band__media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 62%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.55) 38%, rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
  }

  /* 見出しを画像セルへ重ね、左下へ寄せる */
  .hal-lp .hal-band--office .hal-promise__h3--block {
    grid-column: 1;
    grid-row: 1;
    align-self: end;
    justify-self: start;
    z-index: 1;
    margin: 0;
    padding: 0 20px 18px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    text-align: left;
    /* 背景 rgba(0,0,0,0.82) 上の #ffffff はコントラスト比 4.5:1 以上を満たす */
    color: #ffffff;
  }

  /* ::before による2行分割を左寄せ・白文字で継承させる */
  .hal-lp .hal-band--office .hal-promise__h3--block::before {
    margin-inline: 0;
    text-align: left;
    color: #ffffff;
  }

  /* 本文段落は画像の下（2行目以降）へ通常フローで配置する */
  .hal-lp .hal-band--office .hal-band__body > .hal-p {
    grid-column: 1;
    margin-inline: 20px;
  }

  .hal-lp .hal-band--office .hal-band__body > .hal-p:first-of-type {
    margin-top: 24px;
  }
}

/* ==========================================================================
   v1.0.56_R2 §6：トップCASEカード（モデル表示）
   --------------------------------------------------------------------------
   COST／CASE正本を参照する3カードの表示指定。新色は追加しない。
   ========================================================================== */
.hal-lp .hal-rail__card--model .hal-rail__modelmeta {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 10px;
  font-family: var(--hal-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--hal-gold-deep);
}

.hal-lp .hal-rail__card--model .hal-rail__modelid {
  color: var(--hal-muted);
}

.hal-lp .hal-rail__card--model .hal-rail__spec {
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--hal-line-card);
}

.hal-lp .hal-rail__card--model .hal-rail__spec-dt {
  margin: 0;
  font-family: var(--hal-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--hal-muted);
}

.hal-lp .hal-rail__card--model .hal-rail__spec-dd {
  margin: 2px 0 10px;
  font-family: var(--hal-sans);
  font-size: 13px;
  line-height: 1.7;
  color: var(--hal-body);
}

.hal-lp .hal-rail__card--model .hal-rail__spec-dd--amount {
  font-size: 15px;
  font-weight: 600;
  color: var(--hal-ink);
}

.hal-lp .hal-rail__card--model .hal-rail__result {
  margin: 14px 0 0;
  font-family: var(--hal-sans);
  font-size: 13px;
  line-height: 1.95;
  color: var(--hal-body);
}

/* ==========================================================================
   v1.0.56_Content_0to8_Preview2 §11〜§13
   --------------------------------------------------------------------------
   実装条件
   - 下層ページ（.hal-lp.hal-sub）だけを対象とし、トップページ単独の .hal-lp へ
     波及させない。
   - 新色を定義せず、既存トークンと既存宣言だけを使用する。
   - !important は使用しない。固定px幅による位置合わせは行わない。
   - フッターのHTML・列数・列配置・列幅・並び順・リンク本数・href・
     アンカーテキスト・ロゴ位置・ロゴサイズは変更していない。
   ========================================================================== */

/* --------------------------------------------------------------------------
   P2-1. 下層ページフッターの文字左揃え（Preview2 §13）
   OwnerDesignFix1 §B-1 でTOPと下層のフッターを共通レンダラーへ一本化したため、
   本ブロックの `.hal-lp.hal-sub` 限定オーバーライドは上流の
   「フッターの左揃え統合」（.hal-lp 一系統）へ統合し、ここから削除した。
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   P2-2. モバイル戻るボタン（§12）
   PCは現行の固定表示を維持する。1023.98px以下では通常フローへ変更し、
   モバイル固定CTAと重ならない下余白を確保する。
   戻り先・data属性・ラベル・JavaScriptは変更していない。
   -------------------------------------------------------------------------- */
@media (max-width: 1023.98px) {
  .hal-lp.hal-sub .hal-back {
    position: static;
    left: auto;
    bottom: auto;
    z-index: auto;
    margin: 20px 20px calc(84px + env(safe-area-inset-bottom, 0px));
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  /* 固定CTAが本文・関連リンク・法務表示を隠さないよう、下層ページの
     CTA帯の下余白は既存の 104px を維持したうえでフッター側で吸収する。
     .hal-lp .hal-footer の padding-bottom は既存宣言（72px + safe-area）が担う。 */
}

/* ==========================================================================
   OwnerDesignFix1 §D・§E — 2階層見出しコンポーネント .hal-design-heading
   --------------------------------------------------------------------------
   1つのH2内へ「小見出し（eyebrow）」と「主見出し（main）」を持たせる。
   §D（TOP 調査設計）と §E（TOP OFFICE）で同一コンポーネントを再利用する。
   - Hタグは増やさない。H2は各セクション1件のまま。
   - 新色を作らず、既存 --hal-* トークンだけを使用する。
   - 小見出しは本文より弱く、主見出しはセクション内で最も強くする。
   - PC／Mobileとも DOM順・視覚順は 小見出し → 主見出し。
   - 外部CSSフレームワークのユーティリティクラスは導入していない。
   ========================================================================== */
.hal-lp .hal-design-heading {
  display: block;
  margin-top: 24px;
}

/* 小見出し：本文より弱く、トラッキングを広めに取る。 */
.hal-lp .hal-design-heading .hal-design-heading__eyebrow {
  display: block;
  font-family: var(--hal-sans);
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.14em;
  color: var(--hal-gold);
  margin: 0 0 14px;
}

/* 主見出し：既存H2の明朝・色・ブランド階層を継承する。 */
.hal-lp .hal-design-heading .hal-design-heading__main {
  display: block;
  font-family: var(--hal-serif);
  font-weight: 600;
  font-size: clamp(26px, 2.6vw, 34px);
  line-height: 1.55;
  letter-spacing: 0.02em;
  color: inherit;
  /* 読点や文節で不自然な孤立行を作らないよう、意味単位で折り返す。 */
  word-break: keep-all;
  overflow-wrap: normal;
}

@media (max-width: 767.98px) {
  .hal-lp .hal-design-heading .hal-design-heading__eyebrow {
    font-size: clamp(11px, 3vw, 12px);
    letter-spacing: 0.12em;
    margin-bottom: 12px;
  }

  .hal-lp .hal-design-heading .hal-design-heading__main {
    font-size: clamp(24px, 6.4vw, 30px);
    line-height: 1.5;
  }
}

/* 320px等の極狭幅では意味単位が1行へ収まらない場合があるため、
   最後の手段としてのみ折返しを許可し横overflowを防ぐ。 */
@media (max-width: 359.98px) {
  .hal-lp .hal-design-heading .hal-design-heading__main {
    font-size: 22px;
    overflow-wrap: break-word;
  }
}


/* ==========================================================================
   OwnerDesignFix2 — Mobile Final UI／UX Correction（TOP・共通）
   --------------------------------------------------------------------------
   適用は max-width: 767.98px のMobileに限定する。PC／Tabletのcomputed styleは変更しない。
   新色リテラル0件・`!important` 0件・裸セレクタ0件・Hタグ増減0件。
   ========================================================================== */

/* --------------------------------------------------------------------------
   M-01 指定2行H2（§4）
   `.hal-design-heading__main` の中に `.hal-design-heading__line` を2件置く構造。
   PCでは行要素をインライン化して従来どおり1文として読ませる。
   Mobileでは各行をブロック化し、指定2行で固定する。
   `word-break: keep-all` だけで1テキストノードのまま保持する実装は使用していない。
   -------------------------------------------------------------------------- */
.hal-lp .hal-design-heading .hal-design-heading__line {
  display: inline;   /* PC：2行要素を連結し1文として表示する */
}

/* --------------------------------------------------------------------------
   M-02 横overflowの根本解消（§5）
   長いH2が min-content 幅でviewportを押し広げないよう、
   見出しコンポーネントの収縮を許可する。body全体の overflow-x では隠さない。
   -------------------------------------------------------------------------- */
.hal-lp .hal-design-heading,
.hal-lp .hal-design-heading .hal-design-heading__main,
.hal-lp .hal-design-heading .hal-design-heading__line,
.hal-lp .hal-design-heading .hal-design-heading__eyebrow {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 767.98px) {
  /* ---- M-01 指定2行 ---- */
  .hal-lp .hal-design-heading {
    /* H2ブロック全体は中央配置、各行の文字は左揃え。 */
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: left;
  }

  .hal-lp .hal-design-heading .hal-design-heading__eyebrow {
    align-self: center;
    text-align: center;
  }

  .hal-lp .hal-design-heading .hal-design-heading__main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* §4.3：320px 約18px ／ 375px 約21px ／ 390px 約22px ／ 430px 約24px */
    font-size: clamp(18px, 5.6vw, 24px);
    line-height: 1.47;
    letter-spacing: 0.01em;
  }

  .hal-lp .hal-design-heading .hal-design-heading__line {
    display: block;
    /* 指定2行を最優先するため、行内での追加折返しを禁止する。
       行が収まらない場合はフォントサイズ側（clamp）で吸収する。 */
    white-space: nowrap;
    max-width: 100%;
  }

  /* ---- OwnerDesignFix3 B-1（§5）：包括指定の撤去 ----
     Fix2 の `.hal-lp .hal-h2:not(.hal-design-heading)` と `.hal-lp .hal-h3` は、
     実H2だけでなくコピー用P（`.hal-h2--copy`）や、`font-size:0` で元テキストを
     隠している見出し（`.hal-promise__lead-h`）まで同時に上書きしていた。
     その結果、意味途中での分断・二重見出し・料金H2の3行化が発生した。
     包括指定は撤去し、以下のコンポーネント別指定へ置き換える。

     各サイズは「そのコンポーネントの最長セグメントが1行に収まる」ことを
     基準に決めている（数値より 指定行数・意味単位・viewport内収容を優先）。
       .hal-h2--flow の最長セグメント：12文字（CASE／FAQ）
       実効幅：320px 288px ／ 375px 343px ／ 390px 358px ／ 430px 398px
       clamp(23px, 7.0vw, 30px) → 320:23 375:26.25 390:27.3 430:30
       12文字時の必要幅 276 / 315 / 327.6 / 360px ≦ 実効幅
     `.hal-promise` セクションのH2は既存の専用指定（詳細度0,3,1）が優先されるため
     本指定の影響を受けない。 */
  .hal-lp .hal-h2--flow {
    font-size: clamp(23px, 7.0vw, 30px);
    line-height: 1.45;
    margin-bottom: 20px;
  }

  /* ---- OwnerDesignFix3 B-3（§5）：料金H2を指定2行で固定 ----
     セグメントは「後から迷いを生まないための、」（14文字）と
     「透明な費用設計。」（8文字）。14文字が1行に収まるサイズへ当該H2だけを下げる。
       clamp(20px, 6.0vw, 26px) → 320:20 375:22.5 390:23.4 430:25.8
       14文字時の必要幅 280 / 315 / 327.6 / 361.2px ≦ 実効幅
     「ための」の途中分断は発生しない。料金数値・料金カード・説明文は無変更。 */
  .hal-lp .hal-price .hal-h2--flow {
    font-size: clamp(20px, 6.0vw, 26px);
    letter-spacing: 0;
  }

  /* ---- OwnerDesignFix3 B-2（§5）：「整理」を指定2行で固定 ----
     既存DOMの `<br class="hal-br-374">` はMobileでは374.98px以下でしか
     inline にならないため、375px以上で「ある／いは」が分断されていた。
     文言・DOMは変更せず、この見出しに限り767.98px以下で改行を有効化する。
     セグメントは「修復、保留、」（6文字）と「あるいは離れる選択。」（10文字）。
       clamp(24px, 7.2vw, 30px) → 320:24 375:27 390:28.1 430:30
       10文字時の必要幅 240 / 270 / 281 / 300px ≦ 実効幅 */
  .hal-lp .hal-choice--merged .hal-h2--copy .hal-br-374 {
    display: inline;
  }

  .hal-lp .hal-choice--merged .hal-h2--copy {
    font-size: clamp(24px, 7.2vw, 30px);
    line-height: 1.45;
    text-align: center;
  }

  /* ---- M-03 kicker／eyebrow（§6.1） ---- */
  .hal-lp .hal-label,
  .hal-lp .hal-sub__eyebrow,
  .hal-sub .hal-sub__eyebrow {
    font-size: clamp(12px, 3.05vw, 13px);
  }
}

/* --------------------------------------------------------------------------
   M-09 Mobileフッターの可読性（§12）
   構造・左基準線・列構成・リンク本数は変更せず、文字サイズと余白だけを調整する。
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .hal-lp .hal-footer__navlist a,
  .hal-lp .hal-footer__navlist li {
    font-size: 13px;
    line-height: 2.05;
  }

  .hal-lp .hal-footer__addr,
  .hal-lp .hal-footer__addr-line {
    font-size: 12px;
    line-height: 2.0;
  }

  .hal-lp .hal-footer__license,
  .hal-lp .hal-footer__legallist,
  .hal-lp .hal-footer__legallist a,
  .hal-lp .hal-footer__legallist span,
  .hal-lp .hal-footer__copy {
    font-size: 11px;
    line-height: 1.9;
  }

  .hal-lp .hal-footer__policy-line {
    font-size: 12px;
  }

  /* 過剰な上下余白だけを詰める。列構成（2列×2段）は維持する。 */
  .hal-lp .hal-footer__nav {
    row-gap: 26px;
  }

  .hal-lp .hal-footer__legal {
    margin-top: 22px;
    gap: 8px;
  }
}

/* ==========================================================================
   OwnerDesignFix2 — M-04 / M-05 / M-06 / M-07（Mobile限定）
   ========================================================================== */
@media (max-width: 767.98px) {
  /* ------------------------------------------------------------------
     M-04.1 TOP FV（§7.1）
     写真はviewport全幅のまま、描画高を clamp(400px, 56svh, 520px) へ。
     既存の「写真の上にコピーを重ねる」構図・既存写真 slot01.png.s8-1920.webp・
     object-fit: cover は維持する。100vw＋負のmarginは使用しない。
     ------------------------------------------------------------------ */
  /* OwnerDesignFix3 A-1（§4）：Fix2の height: clamp(400px, 56svh, 520px) を撤去する。
     svh を画像単体の高さ決定に使わない。Mobile FV写真は 4:3 で描画する。
       320px→約240px ／ 375px→約281px ／ 390px→約293px ／ 430px→約323px
     画像バイナリ photos/slot01.png.s8-1920.webp は無変更。 */
  .hal-lp .hal-hero__media > img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    max-height: none;
    object-fit: cover;
    /* 16:9原画から4:3へ切り出すため左右が削れる。東京タワーが主要焦点として
       残る位置を実測で選定した。 */
    object-position: 55% 50%;
  }

  /* FV写真をviewport幅いっぱいにするため、この写真枠に限り
     親コンテナの左右paddingを打ち消す（documentの幅は広げない）。 */
  .hal-lp .hal-hero__grid {
    padding-inline: 0;
  }

  /* OwnerDesignFix3 A-2（§4）：Fix2は存在しない `.hal-btn` を指定しており
     FV内CTAへ一切適用されていなかった。実DOM `<a class="cta cta-hero">` を指定する。
     min-height 48px・タップ領域44px以上を維持したうえで上下paddingを縮小する。
     電話番号・リンク・受付時間・LINE導線は変更していない。CTAは非表示にしない。 */
  .hal-lp .hal-hero__cta .cta-hero {
    min-height: 48px;
    padding-top: 8px;
    padding-bottom: 8px;
    box-sizing: border-box;
  }

  .hal-lp .hal-hero__cta .cta-hero .hal-cta-kicker {
    font-size: 9px;
  }

  .hal-lp .hal-hero__cta .cta-hero .hal-cta-num {
    font-size: 18px;
  }

  /* OwnerDesignFix3 A-4（§4）：Mobileのみ kicker を左揃えにし、H1の左基準線へ揃える。
     文言・色・文字サイズは変更していない。PC／Tablet横向きへは波及しない。 */
  .hal-lp .hal-hero__title .hal-hero__kicker {
    display: block;
    text-align: left;
  }

  .hal-lp .hal-hero__copy .hal-hero__note,
  .hal-lp .hal-hero__cta .hal-hero__note {
    font-size: 11px;
    margin-top: 8px;
  }

  /* ------------------------------------------------------------------
     M-04.2 TOP主要写真をviewport幅の90%以上にする（§7.2）
     対象は本文中の主要写真コンポーネントのみ。会社ロゴ・支払ブランド・
     アイコン・届出サムネイル・地図・装飾用極小画像へは適用しない。
     `section img` 等の汎用指定は使用しない。
     ------------------------------------------------------------------ */
  .hal-lp .hal-future__img,
  .hal-lp .promise-profile-image img,
  .hal-lp .hal-promise-overlay__bg,
  .hal-lp .hal-band__media > img,
  .hal-lp .hal-geo__img,
  .hal-lp .hal-officephoto__frame img {
    width: 100%;
    max-width: none;
    height: auto;
  }

  /* 主要本文写真の左右余白は最大16px程度に抑える。 */
  .hal-lp .hal-future__figure,
  .hal-lp .promise-profile-image,
  .hal-lp .hal-band__single .hal-band__media,
  .hal-lp .hal-geo__fig,
  .hal-lp .hal-officephoto__frame {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  /* OFFICE写真：Mobileの280px相当制限を解除し本文コンテナ幅100%とする。 */
  .hal-lp .hal-officephoto,
  .hal-lp .hal-officephoto__link {
    display: block;
    width: 100%;
    max-width: none;
  }

  /* ------------------------------------------------------------------
     M-05.1 固定CTAの2行構造（§8.1）
     3等分・既存3色は維持。1行目／2行目とも折返し禁止。
     ------------------------------------------------------------------ */
  .hal-lp .hal-fixedbar__btn {
    min-height: 56px;
    padding-top: 8px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    line-height: 1.25;
  }

  .hal-lp .hal-fixedbar__btn-main,
  .hal-lp .hal-fixedbar__btn-sub {
    display: block;
    white-space: nowrap;
    overflow-wrap: normal;
  }

  .hal-lp .hal-fixedbar__btn-main {
    font-size: 13px;
  }

  .hal-lp .hal-fixedbar__btn-sub {
    font-size: 10px;
    margin-top: 2px;
  }

  /* ------------------------------------------------------------------
     M-07 TOP CASE 3カードの等高化（§10）
     カード幅82%・次カードの見切れ・横snapは維持する。
     文章の切断・line-clamp・省略・overflow隠蔽は使用しない。
     ------------------------------------------------------------------ */
  .hal-lp .hal-editorial--case .hal-rail__track {
    align-items: stretch;
  }

  .hal-lp .hal-editorial--case .hal-rail__card {
    display: flex;
    flex-direction: column;
    height: auto;
    align-self: stretch;
  }

  /* リンクを下端へ送り、3カードの `全文を読む` の下端位置を揃える。 */
  .hal-lp .hal-editorial--case .hal-rail__card > .hal-rail__more,
  .hal-lp .hal-editorial--case .hal-rail__card > a.hal-rail__link {
    margin-top: auto;
  }
}


/* --------------------------------------------------------------------------
   OwnerDesignFix2 M-02 追補（§5）
   320pxで document 全体が 5px 拡張していた原因は、フォームのハニーポット
   `.hal-hp-field` が画面外へ絶対配置されたまま包含ブロックの外へ出ていたこと。
   `body { overflow-x: hidden }` で全体を隠さず、原因要素だけを是正する。
   -------------------------------------------------------------------------- */
/* OwnerDesignFix2 F-1（§5）：
   旧実装は front-page.php のインラインstyleで `left:-9999px !important` を使っており、
   320pxで documentElement の幅を 5px 拡張していた。
   input の name・value・入力判定・ハニーポット機能は一切変更せず、
   wrapperの視覚的非表示方法だけを負のleftを使わない方式へ変更する。
   インラインの `!important` 6件は撤去し、新規 `!important` は追加していない。 */
.hal-lp .hal-hp-field {
  position: absolute;
  left: 0;
  top: auto;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  pointer-events: none;
}

/* 上記の絶対配置が document 幅へ影響しないよう、包含ブロックを与える。
   ハニーポットのインラインstyleには既存の !important があり上書きできないため、
   祖先側へ position: relative を与えて画面外配置をセクション内へ閉じ込める。
   新しい !important は追加していない。 */
.hal-lp .hal-contact,
.hal-lp .hal-contact__inner,
.hal-lp form[data-hal-form],
.hal-lp .hal-form {
  position: relative;
}

/* ==========================================================================
   OwnerDesignFix2 追補 — M-02 / M-04.2（Mobile限定）
   ========================================================================== */
@media (max-width: 767.98px) {
  /* ---- M-02：CASE横レールだけに残る意図的なoverflowを原因要素へ局所化する（§5） ----
     ページ全体の overflow-x では隠さない。レール内部の横スクロール操作は維持する。
     対象セレクタ：.hal-lp .hal-editorial--case .hal-rail
     根拠：320pxで document が 5px 拡張していた原因は、82%幅カード＋見切れ分を
     表示するレールのトラック幅であり、装飾要素固有のoverflowに該当する。 */
  .hal-lp .hal-editorial--case .hal-rail {
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-x: contain;
  }

  .hal-lp .hal-editorial--case .hal-rail__viewport {
    overflow-x: clip;
  }

  /* ---- M-04.2：主要写真の左右余白を最大16px程度に抑え、
     viewport幅の90%以上を実測で満たす（§7.2・§7.3）。 ---- */
  .hal-lp .hal-band--profile .hal-container,
  .hal-lp .hal-band__single .hal-container,
  .hal-lp .hal-officephoto .hal-container,
  .hal-lp .hal-future .hal-container,
  .hal-lp .hal-geo .hal-container {
    padding-inline: 12px;
  }

  .hal-lp .profile-image-wrapper,
  .hal-lp .hal-band__media,
  .hal-lp .hal-officephoto__frame,
  .hal-lp .hal-future__figure {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
  }

  /* 2枚組の地域写真はMobileで縦積みにし、各写真を本文コンテナ幅いっぱいにする。 */
  .hal-lp .hal-geo--pair,
  .hal-lp .hal-geo__pair,
  .hal-lp .hal-geo__grid {
    display: block;
  }

  .hal-lp .hal-geo__fig,
  .hal-lp .hal-geo__shot {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .hal-lp .hal-geo__fig + .hal-geo__fig {
    margin-top: 16px;
  }
}


/* ==========================================================================
   OwnerDesignFix2 F-2 — TOP FVと主要写真の実測幅是正（Mobile限定）
   実測に基づく調整であり、`width: 100%` の宣言だけでPASSとしていない。
   ========================================================================== */
@media (max-width: 767.98px) {
  /* TOP FV：承認仕様「viewportいっぱい」。
     本文コンテナの左右paddingを打ち消すが、documentの幅は広げない。
     親側の overflow-x: clip で余剰を確実に閉じる。 */
  .hal-lp .hal-hero {
    overflow-x: clip;
  }

  /* v1.0.56_..._OwnerFix6_ResponsiveRootCauseFix1 §RC-2：`100vw` はスクロールバー幅を
     含むため、クラシックスクロールバー環境（Windows等）で clientWidth を最大17px超過する。
     視覚要件「viewportいっぱい」は 100vw を使わずに実現する。
     `.hal-hero` は本ファイル上方で overflow-x: clip 済みだが、
     症状隠蔽ではなく発生源そのものを除去する。
     ResponsiveRootCauseFix1 からの移植（宣言単位・同値）。 */
  .hal-lp .hal-hero__media {
    width: auto;
    max-width: none;
    /* `.hal-lp .hal-hero__grid { padding-inline: 0 }` が本ファイル下方で適用済みのため、
       負のmarginを与えずとも media は grid 幅（＝viewport幅）いっぱいになる。
       負marginを残すと右側が打ち消されず 360/390/393px で 2〜5px 超過した（実測）。 */
    margin-inline: 0;
  }

  /* 主要写真：親コンテナの左右padding（実測16px）より小さい負のmarginで
     表示幅をviewportの90%以上へ広げる。paddingを超えないためdocumentは広がらない。 */
  .hal-lp .profile-image-wrapper,
  .hal-lp .hal-band__single .hal-band__media,
  .hal-lp .hal-future__figure {
    margin-inline: -10px;
    width: auto;
    max-width: none;
  }

  /* OwnerDesignFix2 追補：OFFICE／GEOは画像自身への負のmarginでは
     親（表示ラッパー）の幅が変わらないため効果がない。
     Human Owner指定どおり、表示ラッパー側を拡張する。 */
  .hal-lp .hal-office-stack .hal-officephoto--stack,
  .hal-lp .hal-geo--pair {
    width: calc(100% + 20px);
    max-width: none;
    margin-inline: -10px;
  }

  .hal-lp .hal-officephoto__frame {
    display: block;
    width: 100%;
  }

  .hal-lp .hal-geo__fig,
  .hal-lp .hal-geo__link,
  .hal-lp .hal-geo__shot {
    width: 100%;
    max-width: none;
  }
}

/* --------------------------------------------------------------------------
   OwnerDesignFix2 A — TOP 320px の documentElement 5px 拡張の是正（§5）
   二分探索の結果、原因は最初の `.hal-band` 内 `.hal-band__line`（SPAN）の
   本文テキストが 320px で折り返せず、行ボックスが包含幅を 5px 超えていたこと。
   FVの width:100vw 方式は原因ではない（FVを一時非表示にしても5pxは残存した）。
   body 全体の overflow は使わず、原因要素だけで折返しを許可する。
   -------------------------------------------------------------------------- */
@media (max-width: 359.98px) {
  /* 既存指定は `.hal-lp .hal-band__lines .hal-band__line`（詳細度0,3,0）で
     `white-space: nowrap` を与えている。同じ詳細度・後方位置で上書きする。
     意図的な1行固定は375px以上で維持し、320px級の極狭幅だけ折返しを許可する。 */
  .hal-lp .hal-band__lines .hal-band__line {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    max-width: 100%;
  }
}

/* ==========================================================================
   OwnerDesignFix3 — Mobile Visual Correction（Human Owner実機差し戻し対応）
   --------------------------------------------------------------------------
   適用は max-width: 767.98px のMobileに限定する。PC／Tabletのcomputed styleは
   変更しない。新色リテラルの追加0件・優先度強制指定の追加0件・
   裸セレクタ0件・Hタグ増減0件・画像バイナリ無変更。
   ========================================================================== */
@media (max-width: 767.98px) {
  /* ------------------------------------------------------------------
     C-2（§6.2）：OFFICE H2だけをブロック中央＋文字中央揃えにする。
     調査設計H2（§6.1）の「ブロック中央・文字左揃え」へは波及させない。
     eyebrow「港区・赤坂の相談室」も中央のまま維持する。
     指定2行（M-01のDOM）は維持する。
     ------------------------------------------------------------------ */
  .hal-lp .hal-editorial--office .hal-design-heading {
    text-align: center;
  }

  .hal-lp .hal-editorial--office .hal-design-heading .hal-design-heading__main {
    align-items: center;
    text-align: center;
  }

  .hal-lp .hal-editorial--office .hal-design-heading .hal-design-heading__line {
    text-align: center;
  }

  /* ------------------------------------------------------------------
     D（§7）：代表プロフィール画像の幅を再設計する。
     Fix2 は「主要写真はviewportの90%以上」を縦長プロフィールへも適用したため、
     画像だけで1画面近くを占有していた。本画像へは90%基準を適用しない。
     負のmarginは使用しない。object-fit による切り取りも行わない。
     ------------------------------------------------------------------ */
  .hal-lp .promise-profile-image,
  .hal-lp .profile-image-wrapper {
    width: min(78vw, 300px);
    max-width: min(78vw, 300px);
    margin-inline: auto;
  }

  .hal-lp .promise-profile-image img,
  .hal-lp .profile-image-wrapper img {
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: fill;
  }

  /* ------------------------------------------------------------------
     E-1（§8）：「人目に触れない、港区赤坂の相談室」の画像を大型化する。
     Fix2 の height: 65vw（390pxで253.5px）では小さいため、Human Owner指定の
     clamp(280px, 78vw, 360px) へ変更する。
       320px→280px ／ 375px→292.5px ／ 390px→304.2px ／ 430px→335.4px
     画像バイナリ photos/slot08.jpeg.s8-1920.webp は無変更。本文は画像へ重ねない。
     ------------------------------------------------------------------ */
  .hal-lp .hal-band--office .hal-band__media {
    height: clamp(280px, 78vw, 360px);
    max-height: clamp(280px, 78vw, 360px);
    aspect-ratio: auto;
  }

  .hal-lp .hal-band--office .hal-band__media img {
    /* 観葉植物と室内の空気感が確認できる焦点位置。 */
    object-position: 42% 58%;
  }

  /* ------------------------------------------------------------------
     E-2（§8）：見出しを画像内で中央配置・文字も中央揃えにする。
     画像下部への配置、白文字、黒→透明グラデーションは維持する。
     見出しは既存H3の1件のみで、疑似要素と元テキストの二重表示はしない。
     ------------------------------------------------------------------ */
  .hal-lp .hal-band--office .hal-promise__h3--block {
    justify-self: stretch;
    text-align: center;
    /* Fix2では `.hal-promise__h3--block` の既存背景（--hal-block-c）が
       画像下部の黒→透明グラデーションを覆い隠し、白文字が明るいベージュ地に
       置かれてコントラスト比が不足していた（実測背景 R226 G220 B207 上の白文字）。
       四角い背景ブロックを外し、グラデーションの上へ白文字を置く。
       グラデーション（.hal-band__media::after）は維持しており、新色も追加していない。 */
    background: none;
  }

  .hal-lp .hal-band--office .hal-promise__h3--block::before {
    margin-inline: auto;
    text-align: center;
  }
}

/* ==========================================================================
   OwnerDesignFix4 — Human Owner実機確認による Mobile 最終調整
   --------------------------------------------------------------------------
   適用は max-width: 767.98px に限定する。768px以上の computed style は変更しない。
   Hタグ増減0件・文言変更0件・画像バイナリ無変更・裸セレクタ0件・
   優先度強制指定の追加0件・負のmargin0件。
   ========================================================================== */
@media (max-width: 767.98px) {

  /* ------------------------------------------------------------------
     F4-02｜Mobile FV会社ロゴの再配置

     photos/logo.png.s8-1536.webp は 1536×1024。可視アルファ領域の実測境界は
     ボックス幅比で 左15.1042%、ボックス高比で 上32.8125%（実測bbox 232,336）。
     ロゴ画像・表示サイズ・縦横比・白色表現は変更しない
     （--hal-fv-logo-width: 42.958% は据え置き）。移動だけを行う。

     可視左端をFV media幅の5%へ：
       ボックス幅 = 0.42958 × mediaW
       可視左端オフセット = 0.151042 × 0.42958 = 6.4883% of mediaW
       left = 5% − 6.4883% = −1.4883%
       透明余白ぶんだけ左へはみ出すが、`.hal-hero` の overflow-x: clip 内に収まる。

     可視上端をFV media高の16%へ：
       MobileのFV mediaは 4:3 のため mediaH = 0.75 × mediaW
       ボックス高 = 0.42958 × (1024/1536) × mediaW = 0.381849 × mediaH
       可視上端オフセット = 0.328125 × 0.381849 = 12.5294% of mediaH
       top = 16% − 12.5294% = 3.4706%

     固定pxによる位置合わせは行わず、包含ブロック（.hal-hero__media）に対する
     百分率だけで指定するため、320／375／390／430px で位置関係が保たれる。
     東京タワー・人影・H1・kicker・説明文・FV内CTAの指定はいずれも変更していない。
     ------------------------------------------------------------------ */
  /* TOPMinatoFix3 CR-03：本F4-02指定は ResponsiveRootCauseFix1 の座標系正規化により
     後段の最終責任ブロックへ統合済みであり、同一propertyの責任が2箇所へ分散していた。
     Mobileのロゴ `top` / `left` 責任を1系統にするため、本ブロックの
     `left` / `top` 宣言を撤去した（値の意図＝可視上端16.00%は最終ブロックが担う）。
     ロゴ画像・表示サイズ・縦横比・白色表現・FV画像・kicker／H1／説明文／FV内CTAは無変更。 */

  /* ------------------------------------------------------------------
     F4-03｜代表プロフィール写真の上部余白削減

     Fix3の表示幅 min(78vw, 300px) は維持する。
     表示枠高を 幅 × (560/300) = 幅 × 1.866667 とし、
     object-fit: cover ＋ object-position: 50% 100% で上部だけをクロップする。
       390px：300 × 560（Fix3の300×651から上部91px＝約14.0%を削減）
       430px：300 × 560
       375px：292.5 × 546
       320px：249.6 × 465.9
     原画像の変形・再圧縮・差し替えは行わない。負のmarginも使用しない。
     下端の暗いフェード、顔、片目、髪、手はいずれも残る。
     ------------------------------------------------------------------ */
  .hal-lp .promise-profile-image,
  .hal-lp .profile-image-wrapper {
    height: calc(min(78vw, 300px) * 1.866667);
    overflow: hidden;
  }

  .hal-lp .promise-profile-image img,
  .hal-lp .profile-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 100%;
  }

  /* ------------------------------------------------------------------
     F4-04｜相談室画像の表示高とクロップ

     表示高 clamp(220px, 62vw, 270px)
       320px→220px ／ 375px→232.5px ／ 390px→241.8px ／ 430px→266.6px

     上部の空壁クロップ：
     テーマ内既存画像 photos/slot08.jpeg.s8-1920.webp（2000×1333）を、
     枠高から逆算した幅の <img> ボックスに対して cover で描画する。
       必要ボックス幅 = 枠高 ÷ 0.87 × (2000 ÷ 1333) = 枠高 × 1.72458
       このとき描画高 = 枠高 × 1.14944 となり、超過ぶんが上部から切り落とされる。
       切り落とし率 = 0.14944 ÷ 1.14944 = 13.0%（全Mobile幅で一定）
     320pxは clamp の下限220pxが効くため、幅%固定では切り落とし率が
     3.6%まで落ちる。枠高基準の calc() にすることで4幅とも13.0%に揃う。
     object-position: 50% 100% により切り落としはすべて上部から行われる。
     横方向は枠の左端へ揃え、余剰は右（空壁側）だけを切る。
     これにより左端の観葉植物と鉢は全幅で残る。負のmarginは使用しない。 */
  .hal-lp .hal-band--office .hal-band__media {
    height: clamp(220px, 62vw, 270px);
    max-height: clamp(220px, 62vw, 270px);
    aspect-ratio: auto;
    overflow: hidden;
  }

  .hal-lp .hal-band--office .hal-band__media img {
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    width: calc(clamp(220px, 62vw, 270px) * 1.72458);
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: 50% 100%;
  }

  /* ------------------------------------------------------------------
     F4-04｜相談室見出しの背景ブロック

     文字に沿う fit-content 型。角丸なし。padding 上下10px・左右16px。
     背景は既存グラデーションと同系の黒を78%不透明で使用する
     （色相は既存 rgba(0, 0, 0, …) と同一。不透明度のみ 0.78）。
     文言・H3件数・aria-label は変更していない。見出しは1件のみで二重表示しない。
     直後の本文は画像へ重ねず通常フローを維持する。
     ------------------------------------------------------------------ */
  .hal-lp .hal-band--office .hal-promise__h3--block {
    justify-self: center;
    width: fit-content;
    max-width: calc(100% - 32px);
    padding: 10px 16px;
    margin-bottom: 16px;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.78);
  }

  .hal-lp .hal-band--office .hal-promise__h3--block::before {
    margin-inline: auto;
    text-align: center;
  }

  /* ------------------------------------------------------------------
     F4-05｜TOP CASE 3カードのMobile短縮

     Fix3のM-07は `align-items: stretch` と `.hal-rail__more { margin-top: auto }`
     によって「全文を読む」を下端へ押し下げていた。本文が短いカードでは
     その差分がすべて空白として現れるため、両方を撤去する。
     `.hal-rail__body` の flex-grow も止め、内容高で自然に積む。

     TOP側の視覚的excerptとして、タイトル・導入・確認結果を各2行で
     line-clamp する。COST／CASE正本とリンク先本文は全文のままで、
     DOM・文字列・料金・人数・時間・回数はいずれも変更していない。
     文字列をCSS疑似要素で生成してもいない。
     横レール・3カード・表示順・アンカー・見切れ・横スワイプ・
     キーボード操作・スナップはすべて維持する。
     ------------------------------------------------------------------ */
  .hal-lp .hal-editorial--case .hal-rail__track {
    align-items: start;
  }

  .hal-lp .hal-editorial--case .hal-rail__card {
    align-self: start;
    height: auto;
  }

  .hal-lp .hal-editorial--case .hal-rail__card > .hal-rail__more,
  .hal-lp .hal-editorial--case .hal-rail__card > a.hal-rail__link {
    margin-top: 4px;
  }

  .hal-lp .hal-editorial--case .hal-rail__card .hal-rail__body {
    flex: 0 0 auto;
    margin-bottom: 0;
  }

  .hal-lp .hal-editorial--case .hal-rail__card .hal-rail__h3,
  .hal-lp .hal-editorial--case .hal-rail__card .hal-rail__body,
  .hal-lp .hal-editorial--case .hal-rail__card .hal-rail__result {
    /* `line-clamp` 短縮形は display を flow-root へ書き換えて
       `-webkit-box` を打ち消すため併記しない。全ブラウザで安定する
       `-webkit-box` 系だけを使用する。 */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  /* 「全文を読む」の実タップ領域を44px以上へ広げる。
     下線位置・文字サイズ・レイアウト高は変えず、当たり判定だけを拡張する。 */
  .hal-lp .hal-editorial--case .hal-rail__more {
    position: relative;
  }

  .hal-lp .hal-editorial--case .hal-rail__more::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 44px;
    transform: translateY(-50%);
  }

  /* ------------------------------------------------------------------
     F4-06｜「担当件数を限定し、一人の／ご相談者と深く向き合う体制」の視認性

     Human Owner指定値をそのまま適用する。
       320px→18px ／ 375px→19.5px ／ 390px→20.28px ／ 430px→21px
     各行12〜13文字であり、全4幅で正確に2行となる。
     可視見出しは1件で、既存H3の元テキストは font-size: 0 のまま二重表示しない。
     通常H2／H3へは波及させない。
     ------------------------------------------------------------------ */
  .hal-lp .hal-capacity .hal-promise__h3::before {
    font-size: clamp(18px, 5.2vw, 21px);
    line-height: 1.55;
    font-weight: 600;
    letter-spacing: .02em;
  }
}

/* ==========================================================================
   OwnerDesignFix4R1 — Human Owner裁定による最小差分是正
   --------------------------------------------------------------------------
   R1-01／R1-02／R1-03 は max-width: 767.98px のMobile限定。
   R1-04 のみ、PC／Tablet凍結の唯一の例外として全幅へ適用する
   （TOP横overflow 8px の原因解消。見た目・高さ・色・配置は変えない）。
   Hタグ増減0件・文言変更0件・画像バイナリ無変更・裸セレクタ0件・
   優先度強制指定の追加0件・負のmargin追加0件。
   ========================================================================== */

/* --------------------------------------------------------------------------
   R1-04｜TOPのPC横overflow 8px解消

   原因：`.hal-promise-profile-wrap::before` の `width: 100vw` ＋ 中央配置。
   非オーバーレイスクロールバー環境では `100vw` がスクロールバー幅を含むため、
   documentElement.clientWidth より約8px広い疑似要素がdocument幅を押し広げる。

   是正：疑似要素の実ボックスをラッパー幅（左右0）に収め、左右方向の全幅表現は
   `box-shadow` の spread で描く。box-shadow は ink overflow であり
   scrollable overflow に加算されないため、documentは広がらない。
   `clip-path: inset(0 -100vmax)` で上下だけを要素ボックスに切り、
   帯の高さが縦へ漏れないようにする。

   body への無条件 `overflow-x: hidden` は使用していない。
   帯の色・高さ・縦位置・プロフィールのPC配置はいずれも変更していない。
   他の全幅セクションへは波及しない（本疑似要素のみを対象とする）。
   -------------------------------------------------------------------------- */
.hal-lp .hal-promise-profile-wrap::before {
  left: 0;
  right: 0;
  width: auto;
  transform: none;
  box-shadow: 0 0 0 100vmax var(--hal-ink);
  clip-path: inset(0 -100vmax);
}

@media (max-width: 767.98px) {

  /* ------------------------------------------------------------------
     R1-01｜F4-03R 代表プロフィール写真を一回り縮小

     表示幅 min(78vw, 300px) → min(72vw, 270px)。高さは 表示幅 × 1.866667。
       320px：230.4 × 430.1 ／ 375px：270.0 × 504.0
       390px：270.0 × 504.0 ／ 430px：270.0 × 504.0
     表示面積は Fix4 比で約19%減。
     クロップ（object-fit: cover ／ object-position: 50% 100%）は維持するため、
     上部の黒い余白が再増加することはない。
     中央配置・負のmarginなし・画像バイナリ無変更。
     ------------------------------------------------------------------ */
  .hal-lp .promise-profile-image,
  .hal-lp .profile-image-wrapper {
    width: min(72vw, 270px);
    max-width: min(72vw, 270px);
    height: calc(min(72vw, 270px) * 1.866667);
    margin-inline: auto;
    overflow: hidden;
  }

  /* ------------------------------------------------------------------
     R1-02｜F4-04R 相談室セクション全面是正

     旧F4-04（画像内へ重ねる／黒い矩形背景／白文字／暗いグラデーション）は
     本項で全面撤回する。

     Mobile表示順：見出し → 画像 → 本文（すべて通常フロー）。
     ------------------------------------------------------------------ */

  /* 画像セルへの重ね配置をやめ、通常フローの1カラムへ戻す。 */
  .hal-lp .hal-band--office .hal-band__grid {
    display: flex;
    flex-direction: column;
    row-gap: 0;
  }

  /* 見出し：画像の上・通常フロー・中央配置・文字中央。
     セクションの既存ベージュ背景の上に、既存ink系濃色で表示する。
     黒背景・色付き背景ブロック・白文字はいずれも使用しない。

     疑似要素による文言生成を撤回し、H3の元テキストをそのまま表示する。
     2行固定は `width: min-content` ＋ `word-break: keep-all` で行う。
     keep-all では読点「、」だけが改行機会となるため、
     min-content 幅＝「港区赤坂の相談室」8文字ぶんとなり、
     320／375／390／430px のすべてで正確に2行になる。
     H3は既存の1件のみ。複製・aria-label変更・文言変更はしていない。 */
  .hal-lp .hal-band--office .hal-promise__h3--block {
    order: 1;
    grid-column: auto;
    grid-row: auto;
    align-self: auto;
    justify-self: auto;
    z-index: auto;
    display: block;
    box-sizing: border-box;
    width: min-content;
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
    background: none;
    border-radius: 0;
    text-align: center;
    color: var(--hal-sumi);
    /* OwnerDesignFix4R2：ゴシック体（font-family: inherit）を撤回し、
       同じ約束セクション内の「担当件数を限定し、一人の／ご相談者と深く向き合う体制」
       と同一の明朝系タイポグラフィへ統一する。
       文言・中央配置・文字中央・2行固定・画像との間隔20px・
       見出し→画像→本文の順序はいずれも変更していない。 */
    font-family: var(--hal-serif);
    font-size: clamp(18px, 5.2vw, 21px);
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .02em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .hal-lp .hal-band--office .hal-promise__h3--block::before {
    content: none;
  }

  /* 画像：本文コンテンツ幅を基準に表示する。
     見出しとの間隔は20px（要件18〜24px）。
     表示高 clamp(200px, 56vw, 240px)
       320px→200.0px ／ 375px→210.0px ／ 390px→218.4px ／ 430px→240.0px
     上部の空壁クロップは object-position: 50% 100%（下基準）で行う。
     imgボックス幅は枠幅と、枠高から逆算した幅の大きいほうを採る
       必要幅 = 枠高 ÷ 0.85 × (2000 ÷ 1333) = 枠高 × 1.76516
     これにより320pxでも上部クロップ率が落ちない。
     余剰は右（空壁側）だけを切るため、左端の観葉植物と鉢は残る。
     暗色化フィルター・オーバーレイ・グラデーションは使用しない。 */
  .hal-lp .hal-band--office .hal-band__media {
    order: 2;
    grid-column: auto;
    grid-row: auto;
    position: relative;
    width: 100%;
    margin: 20px 0 0;
    height: clamp(200px, 56vw, 240px);
    max-height: clamp(200px, 56vw, 240px);
    aspect-ratio: auto;
    overflow: hidden;
  }

  /* 画像下部の暗いグラデーションを撤去する。 */
  .hal-lp .hal-band--office .hal-band__media::after {
    content: none;
  }

  .hal-lp .hal-band--office .hal-band__media img {
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    width: max(100%, calc(clamp(200px, 56vw, 240px) * 1.76516));
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: 50% 100%;
    filter: none;
  }

  /* 本文は画像の下。画像へ重ねない。 */
  .hal-lp .hal-band--office .hal-band__body > .hal-p {
    order: 3;
    grid-column: auto;
  }

  /* ------------------------------------------------------------------
     R1-03｜F4-07 対応調査画像を違和感画像と同寸化

     実DOMは `<figure class="hal-future hal-future--wide">` であり、
     `.hal-future__figure` は存在しない。既存CSSの `.hal-future__figure` 指定は
     一致要素が0件であるため効果を持っていなかった。
     ここでは 対応調査セクション（#services.hal-consult）配下の
     `.hal-future` を実セレクタとして対象にする。

     違和感画像 `.hal-band__single .hal-band__media` は親paddingを
     `margin-inline: -10px` で打ち消して 左端6px／幅 viewport−12px となっている。
     対応調査の `.hal-container` も同じ16pxパディングであるため、
     同一の -10px を与えると左右端・幅が一致する。
     16:9比率・object-fit: cover・現在の焦点位置（50% 50%）は変更しない。
     直後の8カード・文言・順序・リンクには触れていない。
     ------------------------------------------------------------------ */
  .hal-lp .hal-consult .hal-future {
    width: auto;
    max-width: none;
    margin-inline: -10px;
  }
}

/* ==========================================================================
   v1.0.56_..._OwnerFix6 §5：目的別導線（#services 内）
   --------------------------------------------------------------------------
   OwnerFix5の背景箱・左3pxゴールド罫線・prose幅の孤立・下線付き太字リンク・
   20px一律paddingはすべて撤去した。疑似要素による縦棒の再現も行わない。
   上下1pxの既存罫線だけで区切る編集的な2導線とし、既存トップの
   Private Intelligence Concierge の密度へ合わせる。
   幅は #services の8調査カードグリッドと左右端を一致させるため、
   max-width を指定せず親のコンテナ幅をそのまま使う。
   色は既存トークンのみを使用し、新色・角丸・影・背景塗りは追加しない。
   ========================================================================== */
.hal-lp .hal-shortcut {
	margin: 40px 0 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.hal-lp .hal-shortcut__h3 {
	margin: 0 0 18px;
	padding: 0;
	background: none;
	border: 0;
	font-family: var(--hal-serif);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .04em;
	color: var(--hal-ink);
	word-break: keep-all;
}

.hal-lp .hal-shortcut__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hal-lp .hal-shortcut__item {
	min-width: 0;
	border-top: 1px solid var(--hal-line-card);
	border-bottom: 1px solid var(--hal-line-card);
	border-left: 0;
	border-right: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.hal-lp .hal-shortcut__lead {
	display: block;
	margin: 18px 0 0;
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: .04em;
	color: var(--hal-muted);
	word-break: keep-all;
}

.hal-lp .hal-shortcut__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	box-sizing: border-box;
	min-height: 88px;
	padding: 0 0 18px;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--hal-ink);
	text-decoration: none;
}

.hal-lp .hal-shortcut__link:hover,
.hal-lp .hal-shortcut__link:focus {
	background: transparent;
	box-shadow: none;
	text-decoration: none;
}

.hal-lp .hal-shortcut__label {
	font-family: var(--hal-serif);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .02em;
	color: var(--hal-ink);
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.hal-lp .hal-shortcut__arrow {
	flex: 0 0 auto;
	font-size: 15px;
	line-height: 1;
	color: var(--hal-gold);
	transition: transform .2s ease;
}

.hal-lp .hal-shortcut__link:hover .hal-shortcut__arrow,
.hal-lp .hal-shortcut__link:focus-visible .hal-shortcut__arrow {
	transform: translateX(4px);
}

.hal-lp .hal-shortcut__note {
	margin: 20px 0 0;
	font-size: 14px;
	line-height: 1.9;
	color: var(--hal-muted);
	overflow-wrap: anywhere;
}

@media (min-width: 768px) {
	.hal-lp .hal-shortcut {
		margin-top: 48px;
	}

	.hal-lp .hal-shortcut__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
	}

	.hal-lp .hal-shortcut__lead {
		margin-top: 22px;
	}

	.hal-lp .hal-shortcut__link {
		min-height: 0;
		padding: 0 0 22px;
	}

	.hal-lp .hal-shortcut__label {
		font-size: 18px;
	}

	.hal-lp .hal-shortcut__note {
		margin-top: 24px;
	}
}

/* TOPMinatoFix1 §4.2：PC（1024px以上）だけ見出しを中央揃えにする。
   Tablet／Mobile（1023.98px以下）は現行の左揃えを維持するため、
   min-width: 1024px のクエリ内にのみ宣言を置く（既定値は上書きしない）。
   リスト2件・リンク先・補助文・CTA・余白・カード幅は変更していない。
   H3は増やしておらず、疑似要素による文言の複製も行っていない。 */
@media (min-width: 1024px) {
	.hal-lp .hal-shortcut__h3 {
		text-align: center;
	}
}

/* §5.5：目的別2導線と相談CTAが一つのボタン群に見えないよう分離する。 */
.hal-lp .hal-shortcut + .hal-cta-center {
	margin-top: 36px;
}

@media (min-width: 768px) {
	.hal-lp .hal-shortcut + .hal-cta-center {
		margin-top: 48px;
	}
}

/* ==========================================================================
   v1.0.56_..._OwnerFix5 §5.3：調査設計モデルセクションの全件CTA
   ========================================================================== */
.hal-lp .hal-editorial__allcta {
	margin: 18px 0 0;
	text-align: center;
}

.hal-lp .hal-editorial__alllink {
	display: inline-block;
	box-sizing: border-box;
	min-height: 44px;
	padding: 11px 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.6;
	color: var(--hal-ink);
	text-decoration: underline;
	overflow-wrap: anywhere;
}

/* ==========================================================================
   v1.0.56_..._OwnerFix6_ResponsiveRootCauseFix1｜FV座標系の正規化（RC-1 / RC-3）
   --------------------------------------------------------------------------
   【RC-1 根本原因】
   `.hal-hero__logo` の `top` が、実際の描画ボックスではなく
   「画像の想定高さ」を viewport 単位でモデル計算していた。

     assets/css/hal-akasaka-ui-upgrade.css L400
       top: calc(var(--hal-fv-logo-top-frac) * 55.814vw
                 - 0.62 * max(0px, 55.814vw - 80svh));
     assets/css/hal-authority-hub.css L3920
       top: calc(var(--hal-fv-logo-top-frac) * 100% - 0.5831vw);

   しかし PC ブロック（本ファイル L3664）で `.hal-hero__media` は
   `position:absolute; inset:0` ＋ `height:100%` ＋ `max-height:none` に
   上書きされており、実際の描画高は `.hal-hero__grid` の
   `min-height: calc(100svh - 76px)` が決める。
   モデル式（画像基準）と実描画（グリッド基準）が別座標系であり、
   ウィンドウ高さが変わるたびにロゴ可視上端が移動していた。

   【実測（修正前・93組合せ／zoom 67〜150%）】
     ロゴ可視上端（media高に対する比）
       最小 -1.22%（1366x625 相当）… 可視上端がFV上端より外へ出る
       最大 16.91%（1024x768 相当）
       振れ幅 18.13pt ＝ media高692pxで約125px
     同一幅1280pxでも 高さ720→800 で 9.41%→13.85%（約29px）移動。

   【修正方針】
   1. `vw` `svh` `calc()` によるトリミング量の推定を全廃する。
   2. ロゴ画像の透明余白ぶんを `transform: translate()` の
      「自身の寸法に対する%」で戻す。これにより
        top  … 可視上端の「media高に対する比率」そのもの
        left … 可視左端の「media幅に対する比率」そのもの
      となり、包含ブロックの実寸だけで決まる単一座標系になる。
      logo.png.s8-1536.webp（1536x1024）の可視アルファ境界は実測で
        左 15.1042% ／ 上 32.8125% ／ 右 87.2396% ／ 下 61.7188%
   3. 定数は「修正前に正しく表示されていた条件の実測値」を採用し、
      承認済みの見た目を維持する。
        PC     可視上端 9.20%（1536x864=9.24% / 1920x1080=9.08% の中間）
               可視左端 15.00%（全PC幅で実測14.99%・変動なし）
        Tablet 可視上端 12.63%／可視左端 16.89%（実測値・変動なし）
        Mobile 可視上端 9.05%／可視左端 4.60%（実測値・変動なし）
   4. 特定 viewport 向けの px 補正は行わない。

   【RC-3 構造保証】
   ロゴ可視下端（top + 61.7188% − 32.8125% ＝ top + 28.9063% of boxH）より
   下に FVコピー群が来ることを、`.hal-hero__copy` の `padding-top` で
   数学的に保証する。ロゴ boxH は media幅比で決まるため、
   同じ包含ブロック基準の `padding-top` として与えれば
   ロゴと kicker / H1 / description / CTA は交差し得ない。

   本ブロックは既存の11個のFV関連上書きに対する「12個目の追加」ではなく、
   ロゴ座標に関する最終正規ルールとして単一化したものである。
   撤去した旧指定は Changed_Files_Diff.md へ全件記載する。
   画像・ロゴ・コピー・CTA・配色・セクション順は一切変更していない。
   ========================================================================== */

/* --- 共通：透明余白を自身基準で戻し、top/left を可視座標そのものにする --- */
.hal-lp .hal-hero__logo {
  transform: translate(-15.1042%, -32.8125%);
  will-change: auto;
}

/* --- Mobile（〜767.98px）：Human Owner承認済みの参考位置を固定 ---
   TOPMinatoFix3 CR-03：可視上端を `9.05%` から `16.00%` へ戻した。
   ResponsiveRootCauseFix1 が採用していた `9.05%` は「修正前に表示されていた条件の実測値」
   であり、Human Owner承認値（参考画像／media高の16.00%）と競合していた。
   本指示書 §1 の優先順位により、Human Owner最新承認を採用し `9.05%` は失効させる。

   上段の `transform: translate(-15.1042%, -32.8125%)` により、
   `top` は可視上端の「media高に対する比率」そのものである。
   したがって本ルールがMobileのロゴ `top` の単一責任ルールである
   （旧 F4-02 ブロックの `left` / `top` は責任重複となるため撤去した）。

   可視左端 `4.60%`・表示幅 `--hal-fv-logo-width: 42.958%`・
   透明余白補正・縦横比・白色表現・ロゴ画像バイナリは変更していない。
   特定viewport向けの px 補正は行っていない。 */
@media (max-width: 767.98px) {
  .hal-lp .hal-hero__logo {
    top: 16.00%;
    left: 4.60%;
  }
}

/* --- Tablet 縦向き（768〜1024px portrait）：実測値を固定 --- */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .hal-lp .hal-hero__logo {
    top: 12.63%;
    left: 16.89%;
  }
}

/* --- Tablet 横向き・Desktop（1024px以上 landscape）：GO環境の実測値を固定 --- */
@media (min-width: 1024px) and (orientation: landscape) {
  .hal-lp .hal-hero__logo {
    /* 旧: calc(... 55.814vw - 0.62*max(0px, 55.814vw - 80svh)) を撤回 */
    top: 9.20%;
    left: 15.00%;
  }
}

/* --- 1024px以上 portrait（大型タブレット）も同一座標系へ寄せる --- */
@media (min-width: 1024.02px) and (orientation: portrait) {
  .hal-lp .hal-hero__logo {
    top: 9.20%;
    left: 15.00%;
  }
}

/* ==========================================================================
   RC-3 構造保証：ロゴとFVコピー群が交差し得ない下限を与える
   --------------------------------------------------------------------------
   ロゴボックス高 = --hal-fv-logo-width × mediaW × (1024/1536)
   可視下端 = top + (61.7188% − 32.8125%) × boxH = top + 0.289063 × boxH
   `.hal-hero__copy` は同一包含ブロック上の要素であるため、
   その上端を可視下端より下へ置けば intersection は 0px で確定する。
   PC は `justify-content: flex-end` で下寄せのため通常は余裕があるが、
   ウィンドウ高が小さい環境では上へ迫るため下限を明示する。
   既存の padding 値は打ち消さず、`padding-top` の下限としてのみ働く。
   ========================================================================== */
@media (min-width: 1024px) {
  .hal-lp .hal-hero__copy {
    --hal-fv-logo-boxh: calc(var(--hal-fv-logo-width) * 0.66666667);
    --hal-fv-logo-visbottom: calc(9.20% + 0.289063 * var(--hal-fv-logo-boxh));
    padding-top: max(76px, var(--hal-fv-logo-visbottom));
  }
}

/* --- 768〜1023.98px landscape：既存CSSがどのFVブロックも当てない中間帯。
       zoom 125〜150% のDesktopがこの帯へ入るため、PCと同一座標系で埋める。
       （実測で 6.2%／10.8% へ落ちていた欠落を解消する） --- */
@media (min-width: 768px) and (max-width: 1023.98px) and (orientation: landscape) {
  .hal-lp .hal-hero__logo {
    top: 9.20%;
    left: 15.00%;
  }
}

/* ==========================================================================
   v1.0.56_..._OwnerFix6_ResponsiveRootCauseFix1｜RC-2 残存 horizontal overflow の根本修正
   --------------------------------------------------------------------------
   【二分探索の結果（実測）】
     document直下 → .hal-lp → MAIN → SECTION.hal-band → DIV.hal-band__single
     → P.hal-band__lines → SPAN.hal-band__line  で寄与が確定。
     390x844 で当該SPANを display:none にすると overflow 5px → 0px。

   【Root Cause】
     assets/css/hal-authority-hub.css L2110
       @media (max-width: 767.98px) {
         .hal-lp .hal-band__lines { font-size: clamp(9px, 3.0vw, 15px); }
       }
     同 L2100 / L2416
       .hal-lp .hal-band__lines .hal-band__line { white-space: nowrap; }

     `vw` は**スクロールバー幅を含む viewport 幅**を基準にする一方、
     テキストの包含ブロック幅は**スクロールバーを除いた content 幅**である。
     クラシックスクロールバー環境（Windows等・実測15px）では
     フォントサイズが実際に使える幅より約3%×15px ぶん大きく決まり、
     `white-space: nowrap` の min-content 幅が包含幅を超えて
     documentElement.scrollWidth を押し広げていた。

   【Failure Condition（実測）】
     vp360 clientW=345 font=10.8px  → overflow 4px
     vp390 clientW=375 font=11.7px  → overflow 5px
     vp393 clientW=378 font=11.79px → overflow 2px
     vp320/375/430 は clamp 境界の関係でたまたま収まっていた。
     スクロールバー幅0の環境では全幅で 0px（＝環境依存で再現しない）。

   【なぜ過去の対策で消えなかったか】
     本ファイル L5534 の OwnerDesignFix2 A は同一要素を正しく特定していたが、
     適用範囲を `@media (max-width: 359.98px)` に限定していたため、
     360〜430px 帯には効いていなかった。
     また原因を「320pxで折り返せない」と捉えており、
     `vw` と content 幅の不一致という真因には到達していなかった。

   【修正】
     フォントサイズの基準を viewport（`vw`）から
     包含ブロックの inline サイズ（`cqw`）へ移す。
     これによりスクロールバーの有無に関わらず、
     常に「実際に使える幅」を基準にサイズが決まる。
     `white-space: nowrap` による1行固定（承認済みの見た目）は維持する。
     `body`/`html` の `overflow-x: hidden` による隠蔽は行わない。
     `transform: scale()` も使用しない。字間 0.12em も変更しない。
   ========================================================================== */
@media (max-width: 767.98px) {
  /* 包含ブロックを inline-size コンテナ化する。
     `.hal-band__single` はブロック要素で親幅いっぱいに広がるため、
     コンテナ化による幅の変化は生じない。 */
  .hal-lp .hal-band__single {
    container-type: inline-size;
    container-name: halband;
  }

  /* 旧: font-size: clamp(9px, 3.0vw, 15px) を撤回し、コンテナ基準へ置換 */
  .hal-lp .hal-band__lines {
    font-size: clamp(9px, 3.0cqw, 15px);
  }

  /* コンテナクエリ単位を解釈しない環境向けのフォールバック。
     その場合のみ折返しを許可し、overflow を発生させない。 */
  @supports not (font-size: 1cqw) {
    .hal-lp .hal-band__lines .hal-band__line {
      white-space: normal;
      overflow-wrap: anywhere;
      max-width: 100%;
    }
  }
}

/* ==========================================================================
   TOPMinatoFix1 §7 — TOP「調査設計」港区TOP完結型
   --------------------------------------------------------------------------
   2地域カードUI（.hal-geo--pair）をDOMごと撤去したことに伴い、
   H2直後・H3直前へ置く港区画像1枚と、紙面背景内のH3へ責任セレクタを与える。
   - 新色リテラル・新カスタムプロパティは追加していない（既存トークンのみ）。
   - 角丸・box-shadow・グラデーションは追加していない。
   - 100vw、負のmargin、画面外配置、body全体の overflow-x による隠蔽は使用しない。
   - 画像は既存コンテンツ幅（.hal-container）へ収める。
   - Mobileで横スクロールUIにしない。空白列を生む2列グリッドは残していない。
   ========================================================================== */
.hal-lp .hal-design__region {
  display: block;
  margin: 34px 0 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-width: 0;
  max-width: 100%;
}

.hal-lp .hal-design__region-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  /* 元画像の実比率（2000×1334）を明示し、変形とCLSを避ける。 */
  aspect-ratio: 2000 / 1334;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
  filter: none;
}

/* 紙面背景内のH3。H2配下の下位見出しとして、本文より強く主見出しより弱い階層に置く。 */
.hal-lp .hal-design__paper .hal-design__h3 {
  margin: 0 0 22px;
  padding: 0;
  background: none;
  border: 0;
  font-family: var(--hal-serif);
  font-size: clamp(18px, 1.7vw, 22px);
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: var(--hal-ink);
  /* 語の不自然な分断を避けつつ、収まらない場合のみ折返して横overflowを防ぐ。 */
  word-break: keep-all;
  overflow-wrap: anywhere;
  min-width: 0;
  max-width: 100%;
}

/* PC（1024px以上）では、港区画像1枚が節全体を覆う高さにならないよう
   表示幅の上限だけを与える。既存コンテンツ幅（.hal-container）の内側に収める指定であり、
   100vw・負のmargin・画面外配置・object-fit によるクロップは使用していない。
   元画像の実比率（2000×1334）と width／height 属性は維持する。 */
@media (min-width: 1024px) {
  .hal-lp .hal-design__region {
    max-width: 720px;
    margin-inline: auto;
  }
}

@media (max-width: 1023.98px) {
  .hal-lp .hal-design__region {
    margin-top: 28px;
  }
}

@media (max-width: 767.98px) {
  .hal-lp .hal-design__region {
    margin-top: 22px;
  }

  .hal-lp .hal-design__paper .hal-design__h3 {
    margin-bottom: 18px;
    font-size: clamp(16px, 4.4vw, 18px);
    line-height: 1.7;
    letter-spacing: 0.01em;
  }
}

@media (max-width: 359.98px) {
  .hal-lp .hal-design__paper .hal-design__h3 {
    font-size: 15.5px;
    letter-spacing: 0;
  }
}

/* ==========================================================================
   TOPMinatoFix4 §11 — Owner確認帯（TOP・下層共通）
   --------------------------------------------------------------------------
   §12.1「単独責任表」に基づく配置責任ブロック。旧実装のinline style（position/
   left/right/bottom/z-index/background/color/font/text-align/padding）は
   PHPから撤去し、本ブロックだけが確認帯の配置と体裁を担当する。

   1023.98px以下では固定CTA（.hal-fixedbar）の実効高＋safe-areaの分だけ
   上へ退避し、矩形が1pxも重ならないようにする。
   pointer-events は既定のまま固定CTAの外側に位置するため、CTAのクリックを妨げない。
   固定CTAの z-index（9999）は変更していない。確認帯は 9998 とし、CTAより下に置く。
   新規 !important 0件／新規 100vw 0件／新規 負margin 0件。
   ========================================================================== */
/* Stage4MinatoFix1 §5.5：QA画面と閲覧本文の占有を解消するため、
   position: fixed を廃止し文書末尾の通常フロー表示へ変更する。
   left／right／bottom／z-index／Mobile・Tablet用 bottom calc 指定は削除した。
   文言、表示権限（is_customize_preview 除外を含む）、Build ID取得方法、
   固定CTAのCSSと z-index はいずれも変更していない。 */
.hal-sub-reviewnotice {
  position: static;
  box-sizing: border-box;
  padding: 6px 10px;
  background: #9c8456;
  color: #1b1813;
  font-family: var(--hal-sans, sans-serif);
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}

/* フッター下余白（固定CTA分）は既存の
   `@media (max-width: 1023.98px) { .hal-lp .hal-footer { padding-bottom: ... } }`
   が単独で担当する。本ブロックでは同一propertyを重複宣言しない。 */

/* ==========================================================================
   Stage3GuideReadabilityFV1 — /guide/「はじめての相談ガイド」専用スタイル
   --------------------------------------------------------------------------
   根拠: HAL_Akasaka_Claude_Stage3Guide_MobileReadability_FV_EditorialStepCards_
         OwnerCorrection_2026-08-29_v1.0.md（§4〜§8）

   スコープ規約:
     本ブロックのセレクタはすべて `.hal-sub--guide` 配下へ限定する。
     TOP・COST・CASE・調査項目8ページへは1件も適用されない。
     TOPの `.hal-lp .hal-phase__no { display:none; }` は削除・変更していない。

   CSS Cascade Gate:
     基底の `.hal-sub__h1` 等は `@media (max-width: 767px)` 内で font-size を
     再指定している（詳細度 0,1,0）。本ブロックのGUIDE用宣言は
     `.hal-sub--guide` を前置して詳細度 0,2,0 とし、かつファイル後方に置くため、
     `!important` を使わずに実computed styleで有効になる。

   禁止事項の遵守:
     新色リテラル0件（既存トークンのみ）／新フォント0件／`!important` 追加0件／
     `100vw` 0件／負のmargin 0件／角丸・shadow・gradient 0件／太い左縦棒0件。
   ========================================================================== */

/* --------------------------------------------------------------------------
   §4 GUIDE FV — EYEBROW・H1・イラスト・導入4段落を1セクションへ統合
   -------------------------------------------------------------------------- */

/* §4.4：長文を黒背景へ載せない。既存WASHI系明色背景とSUMI文字を使う。
   `.hal-header` は position:fixed（Mobile 61〜63px／Tablet・PC 77px）である。
   基底 `.hal-sub__hero` は上padding 96／80／64px で退避していたため、
   GUIDE FVでも固定ヘッダー実高を上回る上paddingを確保し、EYEBROWが隠れないようにする。 */
.hal-sub--guide .hal-guide-fv {
  background: var(--hal-bg);
  color: var(--hal-sumi);
  padding: 110px 0 40px;
  border-bottom: 1px solid var(--hal-line);
}

.hal-sub--guide .hal-guide-fv__inner {
  max-width: 1120px;
}

.hal-sub--guide .hal-guide-fv__body {
  max-width: 760px;
  margin-inline: auto;
}

.hal-sub--guide .hal-guide-fv__eyebrow {
  font-family: var(--hal-mono);
  font-size: 12px;
  letter-spacing: .18em;
  line-height: 1.7;
  color: var(--hal-gold-deep);
  text-align: center;
  margin: 0 0 14px;
}

/* §5.1：Mobile H1 28px・中央。基底 `.hal-sub__h1` の色は on-ink のため上書きする。 */
.hal-sub--guide .hal-guide-fv__h1 {
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.55;
  letter-spacing: .06em;
  color: var(--hal-sumi);
  text-align: center;
  margin: 0 0 24px;
}

/* §4.5：小型スポットイラスト。全幅表示禁止・背景画像化禁止・crop禁止。 */
.hal-sub--guide .hal-guide-fv__figure {
  margin: 0 auto 20px;
  max-width: 240px;
}

.hal-sub--guide .hal-guide-fv__img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

/* §4.6：導入第1段落をGUIDE専用リードとして視覚的に強める。 */
.hal-sub--guide .hal-guide-fv__lead {
  font-family: var(--hal-sans);
  font-size: 18px;
  line-height: 1.9;
  letter-spacing: .02em;
  color: var(--hal-sumi);
  text-align: left;
  margin: 0 0 20px;
}

/* §4.6：第2・第3段落は通常本文として左揃え。 */
.hal-sub--guide .hal-guide-fv__p {
  font-family: var(--hal-sans);
  font-size: 16px;
  line-height: 1.88;
  color: var(--hal-body-deep);
  text-align: left;
  margin: 0 0 18px;
}

/* §4.6：第4段落は費用不発生の安心材料として上下罫線＋薄い背景BOXで独立させる。 */
.hal-sub--guide .hal-guide-fv__assurance {
  font-family: var(--hal-sans);
  font-size: 16px;
  line-height: 1.88;
  color: var(--hal-sumi);
  text-align: left;
  background: var(--hal-bg-box);
  border-top: 1px solid var(--hal-gold-line);
  border-bottom: 1px solid var(--hal-gold-line);
  padding: 14px 16px;
  margin: 18px 0 0;
}

/* --------------------------------------------------------------------------
   §5 タイポグラフィ（GUIDE限定）
   -------------------------------------------------------------------------- */

/* CSS Cascade Gate：FVリードは `hal-sub__p hal-guide-fv__lead` を併せ持つため、
   本文用の font-size を `.hal-sub__body` 配下（詳細度 0,3,0）へ限定し、
   FVの 18px リードを同詳細度の後勝ちで打ち消さないようにする。 */
.hal-sub--guide .hal-sub__body .hal-sub__p {
  font-size: 16px;
  line-height: 1.88;
  color: var(--hal-body-deep);
}

/* §5.3：PHASE後の主要H2も中央配置して本文へ埋もれさせない。 */
.hal-sub--guide .hal-sub__h2 {
  font-size: 24px;
  line-height: 1.65;
  text-align: center;
}

.hal-sub--guide .hal-sub__h3 {
  font-size: 20px;
  line-height: 1.7;
}

.hal-sub--guide .hal-guide__h4 {
  font-size: 17px;
  line-height: 1.75;
}

.hal-sub--guide .hal-guide__h3-plain {
  font-size: 18px;
  line-height: 1.7;
}

.hal-sub--guide .hal-guide__subhead {
  font-size: 16px;
  line-height: 1.85;
  color: var(--hal-sumi);
}

.hal-sub--guide .hal-guide__phase-lead {
  font-size: 16px;
  line-height: 1.88;
}

/* --------------------------------------------------------------------------
   §5.3 PHASE章扉 — 番号と名称を中央配置し、短い中央BRASS線で独立させる
   -------------------------------------------------------------------------- */

.hal-sub--guide .hal-guide__phase {
  margin-top: 44px;
  padding-top: 8px;
  border-top: 1px solid var(--hal-line-card);
}

.hal-sub--guide .hal-guide__phase:first-of-type { margin-top: 32px; }

/* 全幅下罫線を廃し、章扉として中央の短いBRASS線へ置き換える。 */
.hal-sub--guide .hal-guide__phase-head {
  display: block;
  text-align: center;
  border-bottom: 0;
  padding-bottom: 0;
  margin: 0 0 16px;
  position: relative;
}

.hal-sub--guide .hal-guide__phase-head::after {
  content: "";
  display: block;
  width: 48px;
  height: 1px;
  margin: 16px auto 0;
  background: var(--hal-gold-line);
}

.hal-sub--guide .hal-guide__phase-label {
  display: block;
  font-family: var(--hal-mono);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .2em;
  line-height: 1.6;
  color: var(--hal-gold-deep);
  margin-bottom: 8px;
}

.hal-sub--guide .hal-guide__phase-name {
  display: block;
  font-size: 26px;
  line-height: 1.55;
}

/* §9：PHASE画像は見出し直下を維持する。 */
.hal-sub--guide .hal-guide__figure {
  margin: 14px 0 20px;
}

.hal-sub--guide .hal-guide__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-width: 100%;
}

/* --------------------------------------------------------------------------
   §6 番号付きページ内ナビゲーション
   -------------------------------------------------------------------------- */

.hal-sub--guide .hal-guide-toc {
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
  padding: 20px 18px;
  margin: 0 0 22px;
  box-sizing: border-box;
}

.hal-sub--guide .hal-guide-toc__head {
  font-size: 20px;
  text-align: center;
  border-bottom: 0;
  padding-bottom: 0;
  margin: 0 0 16px;
}

.hal-sub--guide .hal-guide-toc__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--hal-line-deep);
}

.hal-sub--guide .hal-guide-toc__item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--hal-line-deep);
}

/* 各行全体をタップ可能にする。タップ領域44px以上。 */
.hal-sub--guide .hal-guide-toc__link {
  display: flex;
  align-items: baseline;
  gap: 12px;
  min-height: 48px;
  padding: 12px 4px;
  box-sizing: border-box;
  text-decoration: none;
  color: var(--hal-sumi);
  font-family: var(--hal-sans);
  font-size: 16px;
  line-height: 1.7;
}

.hal-sub--guide .hal-guide-toc__link:hover .hal-guide-toc__text,
.hal-sub--guide .hal-guide-toc__link:focus-visible .hal-guide-toc__text {
  color: var(--hal-gold-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.hal-sub--guide .hal-guide-toc__link:focus-visible {
  outline: 2px solid var(--hal-gold-deep);
  outline-offset: 2px;
}

/* §6.1：01〜07を視覚表示する。 */
.hal-sub--guide .hal-guide-toc__no {
  flex: 0 0 auto;
  font-family: var(--hal-mono);
  font-size: 13px;
  letter-spacing: .12em;
  color: var(--hal-gold-deep);
}

.hal-sub--guide .hal-guide-toc__text {
  flex: 1 1 auto;
  min-width: 0;
}

.hal-sub--guide .hal-guide-toc__actions {
  margin: 16px 0 0;
  text-align: center;
}

/* §7.5：すべて開く／すべて閉じる。 */
.hal-sub--guide .hal-guide-toc__toggleall {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 22px;
  box-sizing: border-box;
  background: transparent;
  border: 1px solid var(--hal-gold-deep);
  color: var(--hal-sumi);
  font-family: var(--hal-sans);
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: .04em;
  cursor: pointer;
}

.hal-sub--guide .hal-guide-toc__toggleall:hover,
.hal-sub--guide .hal-guide-toc__toggleall:focus-visible {
  background: var(--hal-gold-deep);
  color: var(--hal-on-ink);
}

.hal-sub--guide .hal-guide-toc__toggleall:focus-visible {
  outline: 2px solid var(--hal-gold-deep);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   §7 編集的STEP開閉カード — 背景BOXは閉／開の両状態で維持する
   -------------------------------------------------------------------------- */

.hal-sub--guide .hal-guide-step {
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
  margin: 0 0 10px;
  box-sizing: border-box;
}

/* H3 は見出し要素のままとし、内側の button を trigger とする。 */
.hal-sub--guide .hal-guide-step__head {
  margin: 0;
  font-size: 20px;
  line-height: 1.6;
}

.hal-sub--guide .hal-guide-step__trigger {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  min-height: 56px;
  padding: 18px 16px;
  box-sizing: border-box;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  color: var(--hal-sumi);
}

.hal-sub--guide .hal-guide-step__trigger:focus-visible {
  outline: 2px solid var(--hal-gold-deep);
  outline-offset: -2px;
}

.hal-sub--guide .hal-guide-step__no {
  flex: 0 0 auto;
  font-family: var(--hal-mono);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .14em;
  line-height: 2.1;
  color: var(--hal-gold-deep);
}

.hal-sub--guide .hal-guide-step__main {
  flex: 1 1 auto;
  min-width: 0;
}

.hal-sub--guide .hal-guide-step__name {
  display: block;
  font-family: var(--hal-serif);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: .04em;
  color: var(--hal-sumi);
}

/* §7.1：閉じた状態でも対応する既存目次文言を常時表示する。 */
.hal-sub--guide .hal-guide-step__summary {
  display: block;
  margin-top: 6px;
  font-family: var(--hal-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0;
  color: var(--hal-body-deep);
}

.hal-sub--guide .hal-guide-step__action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.hal-sub--guide .hal-guide-step__actionlabel {
  font-family: var(--hal-sans);
  font-weight: 400;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: var(--hal-gold-deep);
}

/* 開閉記号は既存BRASS系の簡潔な ＋／− とする。 */
.hal-sub--guide .hal-guide-step__icon {
  position: relative;
  display: block;
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}

.hal-sub--guide .hal-guide-step__icon::before,
.hal-sub--guide .hal-guide-step__icon::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 14px;
  height: 1px;
  background: var(--hal-gold-deep);
}

.hal-sub--guide .hal-guide-step__icon::after {
  transform: rotate(90deg);
}

/* aria-expanded と表示を一致させる。 */
.hal-sub--guide .hal-guide-step__trigger[aria-expanded="true"] .hal-guide-step__icon::after {
  transform: rotate(0deg);
}

.hal-sub--guide .hal-guide-step__panelinner {
  padding: 0 16px 20px;
}

/* §7.6：開いたときは同じBOXが下へ伸びる。閉状態で高さ0にしない。 */
.hal-sub--guide .hal-guide-step__panel {
  border-top: 1px solid var(--hal-line-deep);
}

.hal-sub--guide .hal-guide-step__panelinner > *:first-child {
  margin-top: 18px;
}

.hal-sub--guide .hal-guide-step__panelinner .hal-sub__h3 {
  margin-top: 28px;
}

/* --------------------------------------------------------------------------
   §8 リスト表現 — bullet／番号で独立項目であることを示す
   -------------------------------------------------------------------------- */

.hal-sub--guide .hal-guide__list {
  list-style: disc;
  margin: 0 0 20px;
  padding-left: 22px;
}

.hal-sub--guide .hal-guide__list--ordered {
  list-style: decimal;
  padding-left: 26px;
}

.hal-sub--guide .hal-guide__listitem {
  font-family: var(--hal-sans);
  font-size: 16px;
  line-height: 1.85;
  color: var(--hal-body-deep);
  margin: 0 0 10px;
  padding-left: 4px;
  border-bottom: 0;
}

/* bulletを背景と同化させない。 */
.hal-sub--guide .hal-guide__listitem::marker {
  color: var(--hal-gold-deep);
}

.hal-sub--guide .hal-guide__link {
  color: var(--hal-sumi);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.hal-sub--guide .hal-guide__link:hover,
.hal-sub--guide .hal-guide__link:focus-visible { color: var(--hal-gold-deep); }

/* 110番・#9110案内。常時表示し、装飾で隠さない。 */
.hal-sub--guide .hal-guide__emergency {
  margin: 0 0 22px;
  padding: 18px 16px;
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-gold-deep);
  font-family: var(--hal-sans);
  font-size: 16px;
  line-height: 1.88;
  color: var(--hal-sumi);
}

/* --------------------------------------------------------------------------
   §3 GUIDE専用 最終相談CTA（Stage3GuideCTAOwnerFix1 継承・本Buildで変更なし）
   -------------------------------------------------------------------------- */
.hal-sub--guide .hal-guide-cta {
  margin: 28px 0 24px;
  padding: 24px;
  background: var(--hal-bg-box);
  border: 1px solid var(--hal-line-card);
  box-sizing: border-box;
}

.hal-sub--guide .hal-guide-cta__head {
  margin: 0 0 18px;
}

.hal-sub--guide .hal-guide-cta__unit {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  min-width: 0;
}

.hal-sub--guide .hal-guide-cta__unit--primary {
  margin-bottom: 16px;
}

.hal-sub--guide .hal-guide-cta__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.hal-sub--guide .hal-guide-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 56px;
  padding: 14px 20px;
  font-family: var(--hal-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
  text-align: center;
  text-decoration: none;
  background: transparent;
  color: var(--hal-sumi);
  border: 1px solid var(--hal-gold-deep);
}

.hal-sub--guide .hal-guide-cta__btn--primary {
  background: var(--hal-gold);
  border-color: var(--hal-gold);
  color: var(--hal-ink);
}

.hal-sub--guide .hal-guide-cta__btn:hover,
.hal-sub--guide .hal-guide-cta__btn:focus-visible {
  background: var(--hal-gold-deep);
  border-color: var(--hal-gold-deep);
  color: var(--hal-on-ink);
}

.hal-sub--guide .hal-guide-cta__btn:focus-visible {
  outline: 2px solid var(--hal-gold-deep);
  outline-offset: 2px;
}

.hal-sub--guide .hal-guide-cta__note {
  display: block;
  font-family: var(--hal-sans);
  font-size: 14px;
  line-height: 1.7;
  color: var(--hal-body-deep);
  text-align: center;
}

/* --------------------------------------------------------------------------
   §7.4 モーション
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .hal-sub--guide .hal-guide-step__icon::before,
  .hal-sub--guide .hal-guide-step__icon::after {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   Mobile 767.98px以下（§5.1 確定値）
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .hal-sub--guide .hal-container { padding-inline: 16px; }

  .hal-sub--guide .hal-guide-fv { padding: 84px 0 20px; }
  .hal-sub--guide .hal-guide-fv__h1 { font-size: 28px; }
  .hal-sub--guide .hal-guide-fv__figure { max-width: 240px; }
  .hal-sub--guide .hal-guide-fv__lead { font-size: 18px; line-height: 1.88; }
  .hal-sub--guide .hal-guide-fv__p,
  .hal-sub--guide .hal-guide-fv__assurance { font-size: 16px; line-height: 1.88; }

  .hal-sub--guide .hal-sub__body { padding: 20px 0 20px; }
  .hal-sub--guide .hal-sub__body .hal-sub__p { font-size: 16px; line-height: 1.88; }
  .hal-sub--guide .hal-sub__h2 { font-size: 24px; }
  .hal-sub--guide .hal-sub__h3 { font-size: 20px; margin-top: 0; }
  .hal-sub--guide .hal-guide__h4 { font-size: 17px; }
  .hal-sub--guide .hal-guide__h3-plain { font-size: 18px; }
  .hal-sub--guide .hal-guide__subhead { font-size: 16px; }
  .hal-sub--guide .hal-guide__phase-lead { font-size: 16px; line-height: 1.88; }
  .hal-sub--guide .hal-guide__listitem { font-size: 16px; line-height: 1.85; }
  .hal-sub--guide .hal-guide__emergency { font-size: 16px; line-height: 1.88; }

  .hal-sub--guide .hal-guide__phase-name { font-size: 26px; }
  .hal-sub--guide .hal-guide__phase { margin-top: 30px; }
  .hal-sub--guide .hal-guide__phase:first-of-type { margin-top: 26px; }
  .hal-sub--guide .hal-guide__figure { margin: 10px 0 16px; }

  .hal-sub--guide .hal-guide-toc { padding: 16px 14px; }
  .hal-sub--guide .hal-guide-toc__head { font-size: 20px; }
  .hal-sub--guide .hal-guide-toc__link { font-size: 16px; min-height: 48px; }

  .hal-sub--guide .hal-guide-step__name { font-size: 20px; }
  .hal-sub--guide .hal-guide-step__summary { font-size: 16px; }
  .hal-sub--guide .hal-guide-step__trigger { padding: 12px 14px; gap: 10px; }
  .hal-sub--guide .hal-guide-step__panelinner { padding: 0 14px 18px; }

  /* Mobileでは操作ラベルを折り返さず、記号と縦に積む。 */
  .hal-sub--guide .hal-guide-step__action {
    flex-direction: column;
    align-items: center;
    gap: 6px;
  }
  .hal-sub--guide .hal-guide-step__actionlabel { font-size: 12px; }

  .hal-sub--guide .hal-guide-cta { padding: 18px 16px; margin: 20px 0 16px; }
  .hal-sub--guide .hal-guide-cta__head { margin-bottom: 14px; }
  .hal-sub--guide .hal-guide-cta__unit--primary { margin-bottom: 14px; }
  .hal-sub--guide .hal-guide-cta__row { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .hal-sub--guide .hal-guide-cta__btn { min-height: 52px; padding: 13px 16px; font-size: 15px; }
}

/* 320px：操作ラベルを隠さず、記号だけを残さない。文字サイズは16px以上を維持する。 */
@media (max-width: 359.98px) {
  .hal-sub--guide .hal-guide-step__trigger { padding: 14px 12px; gap: 8px; }
  .hal-sub--guide .hal-guide-step__actionlabel { font-size: 11px; }
  .hal-sub--guide .hal-guide-toc { padding: 16px 12px; }
}

/* --------------------------------------------------------------------------
   Tablet 768〜1023.98px（§4.3 1カラム維持・§5.2）
   -------------------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-sub--guide .hal-guide-fv { padding: 108px 0 40px; }
  .hal-sub--guide .hal-guide-fv__h1 { font-size: 32px; }
  .hal-sub--guide .hal-guide-fv__figure { max-width: 320px; }
  .hal-sub--guide .hal-guide__phase-name { font-size: 28px; }
  .hal-sub--guide .hal-sub__h2 { font-size: 26px; }
  .hal-sub--guide .hal-sub__h3,
  .hal-sub--guide .hal-guide-step__name { font-size: 21px; }
  .hal-sub--guide .hal-guide__h4 { font-size: 17px; }
}

/* --------------------------------------------------------------------------
   PC 1024px以上（§4.3 FV 2カラム・§5.2）
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
  .hal-sub--guide .hal-guide-fv { padding: 118px 0 56px; }

  /* 一つのFV内で左＝文章、右＝イラストの2カラムとし、左右の上端を揃える。 */
  .hal-sub--guide .hal-guide-fv__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    grid-template-rows: auto auto;
    column-gap: 48px;
    align-items: start;
    max-width: 1064px;
  }

  .hal-sub--guide .hal-guide-fv__eyebrow {
    grid-column: 1;
    grid-row: 1;
    text-align: left;
    margin-bottom: 12px;
    align-self: start;
  }

  .hal-sub--guide .hal-guide-fv__h1 {
    grid-column: 1;
    grid-row: 2;
    text-align: left;
    align-self: start;
  }

  /* Stage3GuideFVPCAlign1 §2・§3.1：Human Owner確定により、PC版FVの
     イラスト上端を第2導入段落「分かっている事実と、ご自身の推測。…」の上端へ合わせる。
     左カラムのgrid行は 1:EYEBROW / 2:H1 / 3:第1導入段落 / 4:第2導入段落 /
     5:第3導入段落 / 6:費用不発生BOX である。
     イラストを第4行から開始させることで、PC幅・フォントレンダリング・
     Windows Scalingが変わっても指定段落へ構造的に追従する。
     固定margin-top、transform、position、JavaScriptによる位置計算は使用しない。 */
  .hal-sub--guide .hal-guide-fv__figure {
    grid-column: 2;
    grid-row: 4 / span 3;
    max-width: 420px;
    margin: 0;
    align-self: start;
  }

  .hal-sub--guide .hal-guide-fv__lead,
  .hal-sub--guide .hal-guide-fv__p,
  .hal-sub--guide .hal-guide-fv__assurance {
    grid-column: 1;
  }

  .hal-sub--guide .hal-guide-fv__h1 { font-size: 36px; }
  .hal-sub--guide .hal-guide-fv__lead { font-size: 19px; }

  .hal-sub--guide .hal-guide__phase-name { font-size: 30px; }
  .hal-sub--guide .hal-sub__h2 { font-size: 28px; }
  .hal-sub--guide .hal-sub__h3,
  .hal-sub--guide .hal-guide-step__name { font-size: 22px; }
  .hal-sub--guide .hal-guide__h4 { font-size: 18px; }
}


/* ==========================================================================
   Stage4TOPMinatoGeoIntent1 §6〜§10 — TOP港区セクション 地域別5ブロック
   実装範囲は front-page.php の <section class="hal-design"> 内 .hal-minato 配下だけ。
   セレクタはすべて `.hal-lp .hal-design .hal-minato…` へ限定し、
   他セクション・他ページ・共通コンポーネントへは1件も一致しない。
   新色リテラル0件／新規 !important 0件／100vw 0件／負margin 0件／
   角丸0件／box-shadow 0件／外部ライブラリ0件。
   既存の墨・生成り・紙面・細罫・明朝見出しの世界観を継承する。
   ========================================================================== */

/* Stage4MinatoFix1 §5.4：MENU「港区の調査設計」からの着地位置。
   固定ヘッダーがKICKER／H2を覆わないようスクロール余白を確保する。 */
.hal-lp .hal-design#hal-minato {
  scroll-margin-top: 96px;
}

/* ---------- 全幅共通 ---------- */
.hal-lp .hal-design .hal-minato {
  margin-top: clamp(38px, 4.4vw, 64px);
  min-width: 0;
  max-width: 100%;
}

/* 地域別導入。CTAでもリンクでもなく、地域ブロックの読み方を示す案内文。 */
.hal-lp .hal-design .hal-minato__lead {
  margin: 0 0 clamp(20px, 2.4vw, 30px);
  padding: 0;
  font-family: var(--hal-sans);
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 0.01em;
  color: var(--hal-body-deep);
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
  /* Stage4MinatoFix1 §4.2・§5.4：中央揃えの対象は地域導入文と見出し帯の2要素だけ。
     複数行本文は全端末で左揃えを維持する。 */
  text-align: center;
  max-width: 44em;
  margin-inline: auto;
}

/* 章の連なり。カードの反復ではなく、上下の細罫だけで区切る編集記事の版面。 */
.hal-lp .hal-design .hal-minato__list {
  border-top: 1px solid var(--hal-line-deep);
  min-width: 0;
}
.hal-lp .hal-design .hal-minato__region {
  display: block;
  border-bottom: 1px solid var(--hal-line-deep);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  min-width: 0;
}

/* summary はネイティブの開閉セマンティクスを保持したまま、三角マーカーだけを外す。 */
.hal-lp .hal-design .hal-minato__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  /* Stage4TOPMinatoRefine1 §7.3：全5件を早く比較できるよう行間と上下余白を圧縮する。
     操作領域は min-height 48px と実描画高で44px以上を確保している。 */
  row-gap: 5px;
  padding: 16px 0 15px;
  min-height: 48px;
  align-content: center;
  list-style: none;
  cursor: pointer;
  min-width: 0;
}
.hal-lp .hal-design .hal-minato__summary::-webkit-details-marker { display: none; }
.hal-lp .hal-design .hal-minato__summary::marker { content: ""; }
.hal-lp .hal-design .hal-minato__summary:focus-visible {
  outline: 2px solid var(--hal-gold-deep);
  outline-offset: 3px;
}

/* Stage4MinatoFix1 §4.3・§5.4：番号はH4内のflex itemとして地域名と同じ帯に置く。
   既存の番号色・書体・字送りは維持している。 */
.hal-lp .hal-design .hal-minato__no {
  display: inline-block;
  flex: 0 0 auto;
  font-family: var(--hal-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.16em;
  color: var(--hal-gold-deep);
}
/* 地域名は H4。H2・H3 は本セクションへ追加していない。
   Stage4MinatoFix1 §4.3：番号＋地域名を1つの見出し帯へ一体化する。
   左縦棒は禁止のため border-left / border-right を 0 で明示し、
   box-shadow: none と border-radius: 0 も明示する。
   折返し指定は .hal-minato__name-text を唯一の正本とし、本セレクタからは撤去した。 */
.hal-lp .hal-design .hal-minato__name {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 12px;
  padding: 11px 14px 12px;
  background: var(--hal-bg-alt);
  border-top: 1px solid var(--hal-gold-line);
  border-right: 0;
  border-bottom: 1px solid var(--hal-gold-line);
  border-left: 0;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
  font-family: var(--hal-serif);
  font-size: clamp(18px, 4.9vw, 21px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.02em;
  color: var(--hal-ink);
}
.hal-lp .hal-design .hal-minato__name-text {
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
/* 検索者の不安。地域名より下位に置かず、同等の可読サイズで別行に表示する。 */
.hal-lp .hal-design .hal-minato__anx {
  display: block;
  font-family: var(--hal-sans);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.01em;
  color: var(--hal-body-deep);
  /* 省略記号で切らず、自然に複数行へ折り返す。 */
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
  /* Stage4MinatoFix1 §4.2：中央揃えの対象外。全端末で左揃えを明示する。 */
  text-align: left;
}
.hal-lp .hal-design .hal-minato__spots-label {
  color: var(--hal-gold-deep);
  letter-spacing: 0.06em;
}
.hal-lp .hal-design .hal-minato__spots {
  display: block;
  font-family: var(--hal-sans);
  font-size: 12.5px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: var(--hal-muted);
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: left;
}
/* 開閉の手がかりは文言で示す。＋／−記号は使用しない。 */
/* Stage4MinatoFix1 §4.5：開閉案内の低コントラストを是正する。
   全端末で同一の色・サイズ・太さへ統一し、PC側の var(--hal-muted) 上書きは撤去した。
   塗りボタン・角丸ピル・独立CTAへは変更していない。 */
.hal-lp .hal-design .hal-minato__cue {
  display: block;
  margin-top: 2px;
  font-family: var(--hal-sans);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.03em;
  color: #B33C23;
  background: transparent;
  border: 0;
  text-align: left;
}
.hal-lp .hal-design .hal-minato__cue-close { display: none; }
.hal-lp .hal-design .hal-minato__region[open] .hal-minato__cue-open { display: none; }
.hal-lp .hal-design .hal-minato__region[open] .hal-minato__cue-close { display: inline; }

.hal-lp .hal-design .hal-minato__body {
  padding: 2px 0 26px;
  min-width: 0;
  max-width: 100%;
  text-align: left;
}

/* 3段落の視覚階層：情景 → 地域条件 → 面談から設計へ。 */
.hal-lp .hal-design .hal-minato__p {
  margin: 0 0 18px;
  padding: 0;
  color: var(--hal-body-deep);
  font-size: 15.5px;
  line-height: 1.95;
  letter-spacing: 0.01em;
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
}
.hal-lp .hal-design .hal-minato__p--scene {
  font-family: var(--hal-serif);
  font-size: 16px;
  line-height: 1.95;
  color: var(--hal-ink);
}
.hal-lp .hal-design .hal-minato__p--cond {
  font-family: var(--hal-sans);
}
/* Stage4MinatoFix2 §4.3：既存の上罫線は .hal-minato__text-block--design へ移した。
   ラベルと設計本文を一つの視覚ブロックとして扱い、罫線を二重化しない。
   本セレクタからは padding-top と border-top を撤去している。 */
.hal-lp .hal-design .hal-minato__p--design {
  font-family: var(--hal-sans);
  margin-bottom: 0;
  color: var(--hal-body-deep);
}

/* Stage4MinatoFix2 §4.2・§4.3：可視ラベルと本文3段落の視覚ブロック。
   ラベルは非見出しの span である。カード化・角丸・影・左縦棒は付与しない。 */
.hal-lp .hal-design .hal-minato__text-block {
  margin: 0 0 18px;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-width: 0;
}
.hal-lp .hal-design .hal-minato__text-block--design {
  margin-bottom: 0;
  padding-top: 18px;
  border-top: 1px solid var(--hal-line);
}
.hal-lp .hal-design .hal-minato__text-block .hal-minato__p {
  margin-bottom: 0;
}
.hal-lp .hal-design .hal-minato__text-label {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 12px;
  padding: 5px 10px;
  background: var(--hal-bg-alt);
  color: var(--hal-ink);
  border: 0;
  border-left: 0;
  border-radius: 0;
  box-shadow: none;
  font-family: var(--hal-sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: left;
}

/* 締め。地域別5の下へ孤立させず、章の連なりを受け止める結論ブロックにする。 */
.hal-lp .hal-design .hal-minato__closing {
  margin: clamp(30px, 3.4vw, 44px) 0 0;
  padding: clamp(26px, 3vw, 38px) 0 0;
  border-top: 2px solid var(--hal-gold-line);
  min-width: 0;
}
.hal-lp .hal-design .hal-minato__closing-p {
  margin: 0 0 16px;
  padding: 0;
  font-family: var(--hal-sans);
  font-size: 15.5px;
  line-height: 1.95;
  letter-spacing: 0.01em;
  color: var(--hal-body-deep);
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
}
.hal-lp .hal-design .hal-minato__closing-p:first-child {
  font-family: var(--hal-serif);
  font-size: clamp(17px, 2vw, 19px);
  line-height: 1.85;
  color: var(--hal-ink);
}
.hal-lp .hal-design .hal-minato__closing-p:last-child {
  margin-bottom: 0;
  color: var(--hal-ink);
}

/* ---------- Tablet ---------- */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hal-lp .hal-design .hal-minato__lead { font-size: 16px; }
  .hal-lp .hal-design .hal-minato__summary { padding: 18px 0 17px; row-gap: 6px; }
  .hal-lp .hal-design .hal-minato__name { font-size: 22px; }
  .hal-lp .hal-design .hal-minato__anx { font-size: 16px; }
  .hal-lp .hal-design .hal-minato__p,
  .hal-lp .hal-design .hal-minato__closing-p { font-size: 16px; }
  .hal-lp .hal-design .hal-minato__p--scene { font-size: 17px; }
  .hal-lp .hal-design .hal-minato__body { max-width: 40em; padding-bottom: 30px; }
}

/* ---------- PC：アコーディオンにしない。5地域を常時展開する編集的2カラム ---------- */
@media (min-width: 1024px) {
  .hal-lp .hal-design .hal-minato__lead {
    font-size: 16px;
    margin-bottom: 34px;
  }
  /* details 自体をGridにし、左＝章の入口／右＝本文の2カラムへ分ける。 */
  .hal-lp .hal-design .hal-minato__region {
    display: grid;
    grid-template-columns: minmax(220px, 290px) minmax(0, 1fr);
    column-gap: clamp(40px, 4vw, 64px);
    /* Stage4TOPMinatoRefine1 §7.3：本文短縮に合わせ地域間の余白を再調整する。 */
    padding: clamp(32px, 3.0vw, 44px) 0;
  }
  .hal-lp .hal-design .hal-minato__summary {
    grid-column: 1;
    grid-row: 1;
    padding: 0;
    min-height: 0;
    row-gap: 10px;
    align-content: start;
    /* Stage4TOPMinatoRefine1 §6.2：pointer-events:none を撤去し、
       操作可能な状態と視覚状態を一致させる。初期は全件openだが利用者は任意に閉じられる。 */
    cursor: pointer;
  }
  /* 開閉UIは強調しない。本文を主役に保ちつつ、操作できることは文言で示す。
     Stage4MinatoFix1 §4.5：font-size と color の上書きを撤去し、
     開閉案内の体裁責任を全幅共通の1宣言へ集約した。 */
  .hal-lp .hal-design .hal-minato__cue {
    margin-top: 10px;
  }
  .hal-lp .hal-design .hal-minato__no { font-size: 13px; }
  .hal-lp .hal-design .hal-minato__name { font-size: 23px; line-height: 1.5; }
  .hal-lp .hal-design .hal-minato__anx { font-size: 16px; line-height: 1.8; }
  .hal-lp .hal-design .hal-minato__spots { font-size: 13px; }
  .hal-lp .hal-design .hal-minato__body {
    grid-column: 2;
    grid-row: 1;
    padding: 0;
    /* 画面全幅へ伸ばさず、読みやすい行長に収める。 */
    max-width: 34em;
  }
  .hal-lp .hal-design .hal-minato__p,
  .hal-lp .hal-design .hal-minato__closing-p { font-size: 16px; line-height: 2.0; }
  .hal-lp .hal-design .hal-minato__p--scene { font-size: 17px; line-height: 1.95; }
  .hal-lp .hal-design .hal-minato__closing {
    display: grid;
    grid-template-columns: minmax(220px, 290px) minmax(0, 1fr);
    column-gap: clamp(40px, 4vw, 64px);
  }
  .hal-lp .hal-design .hal-minato__closing-p { grid-column: 2; max-width: 34em; }
  /* Stage4MinatoFix2 §4.3：クロージングラベルも本文と同じ第2カラムへ置く。 */
  .hal-lp .hal-design .hal-minato__text-label--closing { grid-column: 2; }
}

/* ---------- 動きへの配慮 ---------- */
@media (prefers-reduced-motion: reduce) {
  .hal-lp .hal-design .hal-minato__region,
  .hal-lp .hal-design .hal-minato__body,
  .hal-lp .hal-design .hal-minato__cue {
    transition: none;
    animation: none;
  }
}


/* ==========================================================================
   Stage5ChuoFix7-R1 §2 — 初期state制御のみ（表示意匠の変更ではない）
   JS-capability flag が付いている＝JavaScript有効時だけ、初期化完了（ready）までの間
   開閉panelを非表示にする。これにより最初の可視描画から closed になり、
   初期open flash と layout shift が発生しない。
   JavaScript無効時は flag が付かないため本ルールは一切作用せず、全本文へ到達できる。
   色・余白・罫線・書体・カード意匠・DOM階層・copy はいずれも変更していない。
   ========================================================================== */
/* 相談ガイド 7STEP */
.hal-guide-js .hal-sub--guide[data-hal-guide-root]:not([data-hal-guide-ready]) .hal-guide-step__panel {
	display: none;
}

/* TOP: approved proof, pricing entrance, and social links (2026-09-28). */
.hal-lp .hal-choice.hal-choice--merged.hal-proof {
  padding: 96px 24px 90px;
  background: #f5f2ea;
  border-top: 1px solid #e6e0d2;
  text-align: center;
}
.hal-lp .hal-proof .hal-container { max-width: 780px; }
.hal-lp .hal-proof p { margin-bottom: 0; }
.hal-lp .hal-proof__eyebrow {
  margin-top: 0; color: #9c8456; font-family: 'Space Mono', monospace;
  font-size: 10px; font-weight: 400; letter-spacing: .16em;
}
.hal-lp .hal-proof__label {
  margin-top: 40px; color: #5c574e; font-family: 'Zen Old Mincho', serif;
  font-size: 18px; font-weight: 400; letter-spacing: .12em;
}
.hal-lp .hal-proof__primary {
  margin-top: 2px; display: flex; align-items: baseline; justify-content: center; gap: 5px;
  color: #1b1813; font-family: 'Zen Old Mincho', serif; font-weight: 400; line-height: 1.25;
}
.hal-lp .hal-proof__primary-num { font-size: clamp(48px, 4.3vw, 54px); font-variant-numeric: tabular-nums; letter-spacing: .025em; }
.hal-lp .hal-proof__primary-unit { font-size: 23px; }
.hal-lp .hal-proof__primary-date { margin-top: 12px; color: #5c574e; font-size: 12px; letter-spacing: .05em; }
.hal-lp .hal-proof__rule { width: min(520px, 100%); margin: 44px auto 36px; border-top: 1px solid #e6e0d2; }
.hal-lp .hal-proof__secondary {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(520px, 100%); margin-inline: auto; gap: 20px;
  text-align: center;
}
.hal-lp .hal-proof__item, .hal-lp .hal-proof__item p { min-width: 0; text-align: center; }
.hal-lp .hal-proof__item-label { margin-top: 0; color: #5c574e; font-family: 'Zen Old Mincho', serif; font-size: 15px; letter-spacing: .06em; }
.hal-lp .hal-proof__item-value { margin-top: 8px; color: #1b1813; font-family: 'Zen Old Mincho', serif; font-size: 31px; line-height: 1.35; font-variant-numeric: tabular-nums; }
.hal-lp .hal-proof__item-value span { margin-left: 3px; font-size: .57em; }
.hal-lp .hal-proof__item-date { margin-top: 7px; color: #5c574e; font-size: 11px; line-height: 1.7; }
.hal-lp .hal-proof__source { margin-top: 35px; color: #5c574e; font-size: 11px; line-height: 1.8; }
.hal-lp .hal-proof__source a { color: inherit; text-underline-offset: 4px; }
.hal-lp .hal-proof__source a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.hal-lp #services .hal-pricing-entrance {
  display: grid; grid-template-columns: 125px minmax(0, 1fr) auto;
  align-items: center; gap: 20px; width: min(780px, 100%);
  margin: 40px auto 44px; padding: 22px 0;
  border-top: 1px solid #d9d3c6; border-bottom: 1px solid #d9d3c6;
  background: transparent; text-align: left;
}
.hal-lp #services .hal-pricing-entrance__label { color: #5c574e; font-size: 11px; letter-spacing: .08em; }
.hal-lp #services .hal-pricing-entrance__amount {
  color: #1b1813; font-family: 'Zen Old Mincho', serif;
  font-size: 18px; font-weight: 400; line-height: 1.5; letter-spacing: .02em;
  white-space: nowrap;
}
.hal-lp #services .hal-pricing-entrance__link {
  width: fit-content; color: #524e44; font-size: 12px; line-height: 1.6;
  text-decoration: none; border-bottom: 1px solid #8b8478; padding-bottom: 3px;
  white-space: nowrap;
}
.hal-lp #services .hal-pricing-entrance__link:hover { color: #1b1813; border-color: #1b1813; }
.hal-lp #services .hal-pricing-entrance__link:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.hal-lp .hal-footer__social { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.hal-lp .hal-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: #b3ab9b; }
.hal-lp .hal-footer__social a:hover { color: var(--hal-on-ink); }
.hal-lp .hal-footer__social a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.hal-lp .hal-footer__social svg { display: block; width: 20px; height: 20px; }
@media (max-width: 900px) {
  .hal-lp #services .hal-pricing-entrance { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; }
  .hal-lp #services .hal-pricing-entrance__link { margin-top: 7px; }
  .hal-lp #services .hal-pricing-entrance__amount { white-space: normal; }
}
@media (max-width: 600px) {
  .hal-lp .hal-choice.hal-choice--merged.hal-proof { padding: 70px 24px 74px; }
  .hal-lp .hal-proof__label { margin-top: 30px; font-size: 16px; }
  .hal-lp .hal-proof__primary-num { font-size: clamp(38px, 10.7vw, 42px); }
  .hal-lp .hal-proof__primary-unit { font-size: 19px; }
  .hal-lp .hal-proof__primary-date { margin-top: 8px; font-size: 11px; }
  .hal-lp .hal-proof__rule { margin: 38px auto 31px; }
  .hal-lp .hal-proof__secondary { gap: 12px; }
  .hal-lp .hal-proof__item-label { font-size: 14px; }
  .hal-lp .hal-proof__item-value { font-size: 28px; }
  .hal-lp .hal-proof__item-date { font-size: 10px; line-height: 1.6; }
  .hal-lp .hal-proof__source { margin-top: 34px; }
  .hal-lp #services .hal-pricing-entrance { margin: 34px auto 38px; }
  .hal-lp #services .hal-pricing-entrance__amount { font-size: 16px; }
}

/* Approved promise and consultation-room merge (2026-09-28). */
.hal-lp .hal-promise-merged {
  background: #ece7db;
  padding: 78px 28px 92px;
}
.hal-lp .hal-promise-merged .hal-container { max-width: 1176px; padding-inline: 28px; }
.hal-lp .hal-promise-merged__heading {
  margin: 0 auto 48px;
  color: #1b1813;
  font-family: 'Zen Old Mincho', serif;
  font-size: clamp(25px, 2.8vw, 34px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .035em;
  text-align: center;
}
.hal-lp .hal-promise-merged__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8.5%;
  align-items: center;
}
.hal-lp .hal-promise-merged__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1.5;
  object-fit: cover;
}
.hal-lp .hal-promise-merged__copy .hal-promise-merged__sub {
  margin: 0 0 27px;
  padding: 0 0 18px;
  border-bottom: 1px solid #d9d3c6;
  color: #1b1813;
  font-family: 'Zen Old Mincho', serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.65;
}
.hal-lp .hal-promise-merged__copy p {
  margin: 0 0 20px;
  color: #3a362f;
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: .025em;
}
.hal-lp .hal-promise-merged__copy p:last-child { margin-bottom: 0; }
@media (max-width: 700px) {
  .hal-lp .hal-promise-merged { padding: 62px 22px 72px; }
  .hal-lp .hal-promise-merged .hal-container { padding-inline: 0; }
  .hal-lp .hal-promise-merged__heading {
    margin-bottom: 30px;
    font-size: 24px;
    text-align: left;
  }
  .hal-lp .hal-promise-merged__grid { display: flex; flex-direction: column; gap: 31px; }
  .hal-lp .hal-promise-merged__media,
  .hal-lp .hal-promise-merged__copy { width: 100%; }
  .hal-lp .hal-promise-merged__copy .hal-promise-merged__sub {
    margin-bottom: 22px;
    font-size: 19px;
  }
}

/* Owner-selected preview B: quiet gray-white block and refined rose heading. */
.hal-lp .hal-counsel .hal-promise__h3 {
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  padding: 12px 18px;
  background: #f3f2f0;
  color: #955b6d;
}
@media (max-width: 767.98px) {
  .hal-lp .hal-counsel .hal-promise__h3 { padding: 12px 16px; }
  .hal-lp .hal-counsel .hal-promise__h3::before { color: #955b6d; }
}

/* Owner mobile corrections, 2026-09-28: headings, centered price and clear shortcuts. */
@media (max-width: 767.98px) {
  .hal-lp .hal-promise-merged__copy p { font-size: 16px; line-height: 1.9; }

  .hal-lp #services.hal-consult .hal-h2--flow {
    font-size: clamp(23px, 6.4vw, 28px);
    font-weight: 600;
    line-height: 1.45;
    color: var(--hal-sumi);
    opacity: 1;
    text-align: center;
  }
  .hal-lp #services.hal-consult .hal-h2--flow .hal-h2__seg { display: block; }
  .hal-lp #services.hal-consult .hal-h2--flow .hal-h2__seg + .hal-h2__seg { margin-top: 2px; }

  .hal-lp #services .hal-pricing-entrance {
    text-align: center;
    justify-items: center;
    gap: 9px;
  }
  .hal-lp #services .hal-pricing-entrance__amount {
    max-width: 100%;
    text-align: center;
    overflow-wrap: anywhere;
  }
  .hal-lp #services .hal-pricing-entrance__link {
    margin-top: 8px;
    text-align: center;
  }

  .hal-lp #services .hal-shortcut__link {
    min-height: 70px;
    margin-top: 12px;
    padding: 16px 18px;
    background: var(--hal-line-card);
    border: 1px solid var(--hal-gold-line);
  }
  .hal-lp #services .hal-shortcut__link:hover,
  .hal-lp #services .hal-shortcut__link:focus { background: var(--hal-line-card); }
  .hal-lp #services .hal-shortcut__link:focus-visible {
    outline: 2px solid var(--hal-sumi);
    outline-offset: 2px;
  }

  .hal-lp .hal-promise-merged__heading {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    text-align: left;
  }
}

/* Fix14 (2026-10-22, Owner): the TOP's sub text before the profile (「港区・赤坂という環境において、なぜこの相談体制が必要とされるのか」), mobile only —
   the text itself is centred (each line centred, the same centre line as the heading above it), and it breaks after the comma, never inside a word
   (each of the two phrases is one inline block: before, the line broke between 「な」 and 「ぜ」). The wording, size, colour, opacity and background are the
   same. The site-wide Fix4 G01 rule (fix4-top.css: the block at its own width, centred, its lines left-aligned; specificity (2,3,2)) is overridden for the
   line alignment only by one more class; the block stays centred at its own width. The profiles below are not touched. */
@media (max-width: 767.98px) {
  html body .hal-lp .hal-promise .hal-container .hal-promise__sub:not(#hal-f14-a):not(#hal-f14-b) { text-align: center; }
  .hal-lp .hal-promise .hal-promise__sub .hal-promise__sub-seg { display: inline-block; }
}
