
  #hal-wp-fv {
    /* 9月1日時点の素材取得元（テーマ v1.0.56）の style.css の色・書体の変数に合わせる */
    --ink: #1b1813;
    --on-ink: #f7f4ec;
    --on-ink-sub: #e2dccf;
    --bg: #f5f2ea;
    --bg-box: #efeae0;
    --line: #e6e0d2;
    --body: #5c574e;
    --gold: #9c8456;
    --sans: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
    --serif: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;
    /* サイトヘッダー：公開サイト（hal-akasaka-ui-upgrade.css / hal-authority-hub.css）の変数 */
    --hal-on-ink: #f7f4ec;
    --hal-on-ink-sub: #e2dccf;
    --hal-serif: 'Zen Old Mincho', serif;
    --hal-sans: 'Zen Kaku Gothic New', sans-serif;
    --hal-mono: 'Space Mono', monospace;
    --hal-max: 1200px;
    --hal-pad: 28px;
    /* ヘッダーの高さ（固定表示。FV のロゴ・コピーはこの下に置く）。JS が実測値で上書きする */
    --hdr-h: 77px;
    /* OwnerFixR3：舞台を画面に留める区間は 60svh（旧 160svh）。演出の進捗はこの区間だけで 0〜1 になり（fv-pc.js）、
       区間の後は通常のスクロールで舞台がそのまま上へ流れて次のセクションへつながる。
       FV 開始から次のセクションの上端が画面上端に届くまでは 2.6 画面 → 1.6 画面（1.0 画面分の短縮。指示の 1.5 画面分は未達） */
    --scrub-hold: 60vh;
    /* 会社ロゴ：可視部分（232,336〜1340,632）の幅 */
    --logo-w: 320px;
    --brand-x: clamp(16px, 3vw, 44px);
    --brand-y: calc(var(--hdr-h) + clamp(16px, 2.6vh, 28px));
    /* ロゴの下端（コピーをこれより下に置く）。0.2671 = 可視部分の縦横比 296/1108 */
    --brand-bottom: calc(var(--brand-y) + var(--logo-w) * 0.2671);
    /* コピーの出現：1 文字ずつ切り口の下から縦に現れる。1 文字 380ms、各段階は 600ms 以内に出そろう
       （文字ごとの遅れ --d は JS が行の中央からの距離で決める） */
    --text-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --text-in: 380ms;
    --text-fade: 200ms;
    --text-out: 160ms;
    /* 切り口（文字を隠す枠）を行の上下へ広げる量。字形・句読点・影を切らないため */
    --vc-pad-top: 0.3em;
    --vc-pad-bottom: 0.45em;
    --vc-pad-x: 0.4em;
  }
  @supports (height: 100svh) {
    #hal-wp-fv { --scrub-hold: 60svh; }
  }
  @media (max-width: 640px) {
    #hal-wp-fv { --logo-w: 240px; }
  }
  @media (max-width: 1023.98px) {
    #hal-wp-fv { --hal-pad: 24px; }
  }
  @media (max-width: 767.98px) {
    #hal-wp-fv { --hal-pad: 16px; --hdr-h: 61px; }
  }

  #hal-wp-fv *,#hal-wp-fv  *::before,#hal-wp-fv  *::after { box-sizing: border-box; }
  #hal-wp-fv { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  #hal-wp-fv {
    margin: 0;
    background: var(--ink);
    color: var(--on-ink);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
  }
  #hal-wp-fv .sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }

  /* ───────── サイトヘッダー・MENU ─────────
     公開サイト（https://hal-tanteisha-akasaka.com/ 、テーマ hal-akasaka-minato-v1067-20261004）で
     最終的に効いている値を書き写したもの。項目・文言・リンク先・端末ごとの出し分けは公開サイトと同じ。
       PC（1024px 以上）：社名／ご相談直通窓口（電話）／公式LINEコンシェルジュ／プライベート相談予約／MENU
       768〜1023px：社名／電話／MENU（縦向きのタブレットは社名／MENU）
       767px 以下：社名／MENU
     色は公開サイトの現行値：予約＝白地・文字 #111111・角丸なし、LINE＝透過・白文字・白の細い枠、電話番号＝白 */
  #hal-wp-fv .hal-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    background: #1a1a1a;
    border-bottom: 1px solid rgba(247, 244, 236, 0.14);
    font-family: var(--hal-sans);
  }
  #hal-wp-fv .hal-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 76px;
    margin: 0;
    padding: 7px var(--hal-pad);
  }
  #hal-wp-fv .hal-header-brand {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    padding: 4px 0;
    line-height: 1.5;
    text-decoration: none;
  }
  #hal-wp-fv .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);
    white-space: nowrap;
  }
  #hal-wp-fv .hal-header-brand__area,#hal-wp-fv  .hal-header-brand__sep { color: var(--hal-on-ink-sub); }
  #hal-wp-fv .hal-header-brand__sep { margin: 0 4px; }
  #hal-wp-fv .hal-header-brand__name { color: var(--hal-on-ink); }
  #hal-wp-fv .hal-header-brand__area,#hal-wp-fv  .hal-header-brand__name { white-space: nowrap; }
  #hal-wp-fv .hal-header-brand:hover .hal-header-brand__name,#hal-wp-fv 
  .hal-header-brand:focus-visible .hal-header-brand__name { color: var(--hal-on-ink-sub); }
  @media (min-width: 1280px) { #hal-wp-fv .hal-header-brand__title { font-size: 20px; } }
  @media (min-width: 1024px) and (max-width: 1279.98px) { #hal-wp-fv .hal-header-brand__title { font-size: 18px; } }
  @media (min-width: 768px) and (max-width: 1023.98px) { #hal-wp-fv .hal-header-brand__title { font-size: 16px; } }

  #hal-wp-fv .hal-header__actions {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 18px;
    white-space: nowrap;
  }
  /* ご相談直通窓口（電話） */
  #hal-wp-fv .hal-header__tel {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    min-height: 40px;
    margin: 0;
    padding: 8px 14px;
    background-color: #27272a;
    border: 0;
    color: #fff;
    font-family: "Shippori Mincho", serif;
    font-size: 21px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-decoration: none;
    transition: background-color 0.2s;
    -webkit-tap-highlight-color: transparent;
  }
  #hal-wp-fv .hal-header__tel:hover,#hal-wp-fv 
  .hal-header__tel:focus-visible { background-color: rgba(255, 255, 255, 0.12); color: #fff; }
  #hal-wp-fv .hal-header__tel-label {
    font-family: var(--hal-sans);
    font-size: 10.5px;
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 1;
    color: #e7e5e4;
    white-space: nowrap;
  }
  #hal-wp-fv .hal-header__tel-icon { display: inline-flex; align-items: center; justify-content: center; line-height: 0; color: #e7e5e4; }
  #hal-wp-fv .hal-header__tel-icon svg { display: block; width: 16px; height: 16px; }
  #hal-wp-fv .hal-header__tel-num {
    font-family: var(--hal-serif);
    font-size: 13px;
    font-weight: 300;
    letter-spacing: 0.06em;
    line-height: 1;
    color: #fff;
    white-space: nowrap;
  }
  /* 公式LINEコンシェルジュ／プライベート相談予約 */
  #hal-wp-fv .hal-header__cta {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-right: 18px;
    border-right: 1px solid rgba(212, 175, 55, 0.3);
  }
  #hal-wp-fv .hal-header__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 10px 18px;
    border-radius: 0;
    font-family: "Shippori Mincho", serif;
    font-size: 13px;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.3s, color 0.3s, border-color 0.3s, transform 0.3s;
  }
  #hal-wp-fv .hal-header__cta-btn:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
  #hal-wp-fv .hal-header__cta-btn--line {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #fff;
  }
  #hal-wp-fv .hal-header__cta-btn--line:hover,#hal-wp-fv 
  .hal-header__cta-btn--line:focus-visible { background: rgba(255, 255, 255, 0.12); border-color: #fff; color: #fff; }
  #hal-wp-fv .hal-header__cta-btn--book {
    background: #fff;
    border: 1px solid #fff;
    color: #111111;
    letter-spacing: 0.15em;
  }
  #hal-wp-fv .hal-header__cta-btn--book:hover,#hal-wp-fv 
  .hal-header__cta-btn--book:focus-visible { background: #e8e8e8; border-color: #e8e8e8; color: #111111; }
  @media (hover: hover) and (pointer: fine) {
    #hal-wp-fv .hal-header__cta-btn--book:hover { transform: translateY(-1px); }
  }
  /* MENU ボタン */
  #hal-wp-fv .hal-header__menu-btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--hal-on-ink-sub);
    cursor: pointer;
    transition: color 0.2s;
    -webkit-tap-highlight-color: transparent;
  }
  #hal-wp-fv .hal-header__menu-btn:hover,#hal-wp-fv 
  .hal-header__menu-btn:active,#hal-wp-fv 
  .hal-header__menu-btn[aria-expanded="true"] { color: #fff; }
  #hal-wp-fv .hal-header__menu-btn[aria-expanded="true"] { opacity: 0.92; }
  #hal-wp-fv .hal-header__menu-btn:focus { outline: none; }
  #hal-wp-fv .hal-header__menu-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
  #hal-wp-fv .hal-header__menu-bar {
    position: relative;
    display: block;
    width: 22px;
    height: 18px;
    background: linear-gradient(currentColor, currentColor) no-repeat 0 8px / 22px 2px;
  }
  #hal-wp-fv .hal-header__menu-bar::before,#hal-wp-fv 
  .hal-header__menu-bar::after {
    content: "";
    position: absolute;
    left: 0;
    width: 22px;
    height: 2px;
    background: currentColor;
    transition: transform 0.25s, opacity 0.25s;
  }
  #hal-wp-fv .hal-header__menu-bar::before { top: 0; }
  #hal-wp-fv .hal-header__menu-bar::after { top: 16px; }
  #hal-wp-fv .hal-header__menu-btn[aria-expanded="true"] .hal-header__menu-bar { background-image: none; }
  #hal-wp-fv .hal-header__menu-btn[aria-expanded="true"] .hal-header__menu-bar::before { transform: translateY(8px) rotate(45deg); }
  #hal-wp-fv .hal-header__menu-btn[aria-expanded="true"] .hal-header__menu-bar::after { transform: translateY(-8px) rotate(-45deg); }
  #hal-wp-fv .hal-header__menu-label {
    display: block;
    margin: 0;
    font-family: var(--hal-mono);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.26em;
    line-height: 1;
    text-indent: 0.26em;
  }
  /* MENU を開いたときのパネル（ヘッダーの下に全幅で開く） */
  #hal-wp-fv .hal-header__panel {
    padding: 10px var(--hal-pad) 30px;
    background: #14110d;
    border-bottom: 1px solid rgba(247, 244, 236, 0.14);
    overflow-y: auto;
    overscroll-behavior: contain;
    max-height: calc(100dvh - 90px);
  }
  #hal-wp-fv .hal-header__panel[hidden] { display: none; }
  #hal-wp-fv .hal-site-menu { display: flex; flex-direction: column; }
  #hal-wp-fv .hal-site-menu a,#hal-wp-fv 
  .hal-site-menu summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
    min-height: 44px;
    padding: 15px 2px;
    border: 0;
    background: transparent;
    font-family: var(--hal-serif);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.12em;
    color: #c8c1b3;
    text-decoration: none;
    transition: color 0.2s;
    -webkit-tap-highlight-color: transparent;
  }
  #hal-wp-fv .hal-site-menu a:is(:hover, :focus, :focus-visible, :active),#hal-wp-fv 
  .hal-site-menu summary:is(:hover, :focus, :focus-visible, :active) { color: #fff; }
  #hal-wp-fv .hal-site-menu a:focus { outline: none; }
  #hal-wp-fv .hal-site-menu a:focus-visible,#hal-wp-fv 
  .hal-site-menu summary:focus-visible { outline: 1px solid #fff; outline-offset: -2px; }
  #hal-wp-fv .hal-site-menu summary { list-style: none; cursor: pointer; }
  #hal-wp-fv .hal-site-menu summary::-webkit-details-marker { display: none; }
  #hal-wp-fv .hal-menu-children { padding-left: 24px; }
  #hal-wp-fv .hal-header__panel-actions { display: flex; flex-direction: column; gap: 16px; margin-top: 22px; }
  #hal-wp-fv .hal-header__panel-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 6px 0 0;
    font-family: var(--hal-serif);
    font-size: 15px;
    letter-spacing: 0.06em;
    color: var(--hal-on-ink-sub);
    text-align: center;
    text-decoration: none;
    transition: color 0.2s;
    -webkit-tap-highlight-color: transparent;
  }
  #hal-wp-fv .hal-header__panel-tel:hover,#hal-wp-fv 
  .hal-header__panel-tel:focus-visible { color: #fff; }
  #hal-wp-fv .hal-header__panel-tel:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
  /* MENU を開いている間だけ、背面のページを止める（閉じれば元の位置からスクロールできる） */
  #hal-wp-fv.hal-menu-open { overflow: hidden; }

  @media (min-width: 1024px) {
    #hal-wp-fv .hal-header__panel { padding-inline: max(var(--hal-pad), calc((100% - var(--hal-max)) / 2 + var(--hal-pad))); }
  }
  @media (min-width: 1024px) and (max-width: 1279.98px) {
    #hal-wp-fv .hal-header__actions { gap: 14px; }
    #hal-wp-fv .hal-header__cta { gap: 8px; padding-right: 12px; }
    #hal-wp-fv .hal-header__cta-btn { padding: 10px 12px; font-size: 12px; }
    #hal-wp-fv .hal-header__tel { padding: 8px 10px; }
  }
  @media (max-width: 1023.98px) {
    #hal-wp-fv .hal-header__cta { display: none; }
    #hal-wp-fv .hal-header__actions { gap: 12px; }
  }
  @media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
    #hal-wp-fv .hal-header__tel,#hal-wp-fv  .hal-header__cta { display: none; }
  }
  @media (max-width: 767.98px) {
    #hal-wp-fv .hal-header__inner { min-height: 60px; padding-block: 6px; }
    #hal-wp-fv .hal-header-brand__title { font-size: 13px; font-weight: 400; white-space: normal; }
    #hal-wp-fv .hal-header-brand__title .hal-header-brand__name { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: 0.02em; }
    #hal-wp-fv .hal-header-brand__title .hal-header-brand__sep { font-size: 13px; font-weight: 600; margin: 0 2px; }
    #hal-wp-fv .hal-header-brand__title .hal-header-brand__area { display: inline-block; font-size: 12.5px; font-weight: 600; letter-spacing: 0.01em; }
    #hal-wp-fv .hal-header__actions { gap: 0; }
    #hal-wp-fv .hal-header__tel { display: none; }
    #hal-wp-fv .hal-site-menu a,#hal-wp-fv 
    .hal-site-menu summary { font-size: 15px; letter-spacing: 0.05em; padding: 13px 2px; }
    #hal-wp-fv .hal-header__panel-tel { font-size: 16px; }
  }
  @media (max-width: 359.98px) {
    #hal-wp-fv .hal-header-brand__title { font-size: 12px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #hal-wp-fv .hal-header *,#hal-wp-fv  .hal-header *::before,#hal-wp-fv  .hal-header *::after { transition: none !important; }
  }


  /* ───────── HERO ─────────
     既定（JS なし／動きを減らす／画像の読込失敗）は 1 画面の静止表示（既存FV写真の構図）。
     JS が条件を確かめて .is-scrub を付けたときだけ、縦長のスクロール区間と sticky の舞台になる。 */
  #hal-wp-fv .hero { position: relative; background: var(--ink); }
  #hal-wp-fv .hero__stage {
    position: relative;
    height: 100vh;
    height: 100dvh;
    min-height: 560px;
    width: 100%;
    overflow: hidden;
    background: var(--ink);
  }
  #hal-wp-fv .hero.is-scrub { height: calc(100vh + var(--scrub-hold)); }
  @supports (height: 100dvh) {
    #hal-wp-fv .hero.is-scrub { height: calc(100dvh + var(--scrub-hold)); }
  }
  #hal-wp-fv .hero.is-scrub .hero__stage { position: sticky; top: 0; }

  /* 写真レイヤー（下から）：窓の外の景色 → 室内・窓枠（ガラス透明）→ 既存FV写真そのもの（開始画面） */
  #hal-wp-fv .hero__view,#hal-wp-fv 
  .hero__room,#hal-wp-fv 
  .hero__room-full {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    pointer-events: none;
    user-select: none;
  }
  #hal-wp-fv .hero__view { z-index: 0; }
  #hal-wp-fv .hero__room { z-index: 1; }
  #hal-wp-fv .hero__room-full { z-index: 1; }
  #hal-wp-fv .hero.is-scrub .hero__view,#hal-wp-fv 
  .hero.is-scrub .hero__room,#hal-wp-fv 
  .hero.is-scrub .hero__room-full { will-change: transform, opacity; }
  /* 静止表示は既存FV写真だけ。既存FV写真が読めないときは、窓の外の景色だけを見せる */
  #hal-wp-fv .hero:not(.is-scrub) .hero__room,#hal-wp-fv 
  .hero:not(.is-scrub) .hero__view { display: none; }
  #hal-wp-fv .hero:not(.is-scrub).is-full-failed .hero__view { display: block; }
  #hal-wp-fv .hero.is-full-failed .hero__room-full,#hal-wp-fv 
  .hero.is-view-failed .hero__view,#hal-wp-fv 
  .hero.is-room-failed .hero__room { display: none; }

  /* 上（白いロゴ）と下（SCROLL）のための陰り */
  #hal-wp-fv .hero__shade {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(180deg, rgba(10,10,12,0.55) 0%, rgba(10,10,12,0.22) 16%, rgba(10,10,12,0) 30%, rgba(10,10,12,0) 76%, rgba(10,10,12,0.4) 100%);
    pointer-events: none;
  }
  /* コピーを読ませるための幕。写真の階調を残すよう、全体には薄く、コピーの周りだけ楕円状に濃くする。
     コピーが出ている間だけ濃くする */
  #hal-wp-fv .hero__veil {
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
      radial-gradient(62% 30% at 50% 50%, rgba(10,10,12,0.5) 0%, rgba(10,10,12,0.22) 60%, rgba(10,10,12,0) 100%),
      rgba(10,10,12,0.16);
    opacity: 1;
    transition: opacity 300ms ease;
    pointer-events: none;
  }
  #hal-wp-fv .hero.is-scrub:not(.has-copy) .hero__veil { opacity: 0.35; }

  /* 会社ロゴ（常時表示・左上） */
  #hal-wp-fv .hero__brandmark {
    position: absolute;
    left: var(--brand-x);
    top: var(--brand-y);
    z-index: 6;
    display: block;
    color: var(--on-ink);
    text-decoration: none;
  }
  #hal-wp-fv .hero__logo-crop {
    position: relative;
    display: block;
    width: var(--logo-w);
    aspect-ratio: 1108 / 296;
    /* 切り出し範囲の外（透明な余白と外側の光彩）は表示しない */
    overflow: hidden;
  }
  #hal-wp-fv .hero__logo-crop img {
    position: absolute;
    /* 1536/1108 = 1.3863、232/1108 = 0.2094、336/1108 = 0.3032 */
    width: calc(var(--logo-w) * 1.3863);
    height: auto;
    left: calc(var(--logo-w) * -0.2094);
    top: calc(var(--logo-w) * -0.3032);
    max-width: none;
    pointer-events: none;
  }
  /* ロゴ画像が読めなかったときだけ、同じ場所に社名を文字で出す（通常は表示しない） */
  #hal-wp-fv .hero__logo-fallback {
    display: none;
    font-family: var(--serif);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.5;
    letter-spacing: 0.08em;
    white-space: nowrap;
    text-shadow: 0 1px 10px rgba(0,0,0,0.6);
  }
  #hal-wp-fv .hero.is-logo-failed .hero__logo-crop { display: none; }
  #hal-wp-fv .hero.is-logo-failed .hero__logo-fallback { display: block; }

  /* ───────── コピー 3 段階（同じ領域の中央に、1 段階ずつ出す） ───────── */
  #hal-wp-fv .hero__copy {
    position: absolute;
    inset: var(--brand-bottom) 0 0 0;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 24px 6% calc(var(--brand-bottom) * 0.6);
    text-align: center;
    pointer-events: none;
  }
  /* 意味のまとまり（日本語は文節、英語は単語）。v7 と同じ単位で折り返す（まとまりの途中では改行しない）。
     まとまりごとに見えない切り口（縦方向だけ切る枠）を置き、中の文字が 1 文字ずつ下から縦に現れる。
     枠は行の上下へ --vc-pad-* だけ広げ、同じ量の負の margin で打ち消す（行の位置・行送りは変えない）。
     ぼかし・拡大縮小・弾み・発光・色ずれ・字間の変化は入れない */
  #hal-wp-fv .vc-w {
    display: inline-block;
    white-space: nowrap;
    padding: var(--vc-pad-top) var(--vc-pad-x) var(--vc-pad-bottom);
    margin: calc(var(--vc-pad-top) * -1) calc(var(--vc-pad-x) * -1) calc(var(--vc-pad-bottom) * -1);
    overflow: hidden;
    overflow: visible clip;   /* 対応ブラウザでは横は切らない（影を残す）。非対応では上の hidden のまま */
  }
  #hal-wp-fv .vc-c {
    display: inline-block;
    opacity: 0;
    /* 文字の高さ＋枠の下の余白より下（切り口の外）から始める */
    transform: translateY(calc(100% + var(--vc-pad-bottom) + 0.15em));
    /* 消えるとき（.is-in が外れたとき）：その場で短く消し、消えきってから初期位置へ戻す */
    transition:
      opacity var(--text-out) linear,
      transform 0s linear var(--text-out);
  }
  #hal-wp-fv .is-in .vc-c {
    opacity: 1;
    transform: translateY(0);
    /* 現れるとき：--d（行の中央の文字ほど早い）だけ遅れて始まる */
    transition:
      transform var(--text-in) var(--text-ease) var(--d, 0ms),
      opacity var(--text-fade) linear var(--d, 0ms);
  }
  /* Fix4 T01：表示方式の切り替えの瞬間（静止 → 動き）は文字の透明度を移り変わらせない。静止表示で見えていた 3 段階の文字が、同じ中央の位置へ
     移ってから --text-out をかけて消えるため、一瞬 3 段階が重なって見えていた（隔離 WordPress の連続画像で再現）。段階の切り替え（スクロール中の
     消え方）は従来どおり。fv-pc.js が切り替えの直後にこの class を外し、段階 1 の出現の動きは変えない */
  #hal-wp-fv .hero.is-switching .vc-c { transition: none !important; }
  /* Fix4 T01：PC で fv-pc.js が表示方式を決めるまで（data-reason が no-js の間）、静止表示用のコピーを描かない（インラインの判定が付ける class） */
  html.hal-fv-pending #hal-wp-fv .hero[data-reason="no-js"] .hero__copy { visibility: hidden; }
  /* 出そろったあとは切り口を外す（静止した文字は枠に一切かからない） */
  #hal-wp-fv .is-settled .vc-w { overflow: visible; }
  #hal-wp-fv .line { display: inline-block; }

  /* ① 冒頭 */
  #hal-wp-fv .hero__eyebrow {
    margin: 0 0 1.2em;
    font-size: clamp(12px, 1.4vw, 16px);
    font-weight: 700;
    letter-spacing: 0.3em;
    padding-left: 0.3em;
    color: var(--on-ink-sub);
    text-shadow: 0 1px 14px rgba(0,0,0,0.65);
  }
  #hal-wp-fv .hero__title {
    margin: 0;
    font-family: var(--serif);
    font-weight: 700;
    font-size: clamp(27px, 4.6vw, 60px);
    line-height: 1.45;
    letter-spacing: 0.06em;
    color: var(--on-ink);
    text-shadow: 0 2px 6px rgba(0,0,0,0.5), 0 2px 28px rgba(0,0,0,0.7);
  }

  /* ② 完全予約制、完全個室、探偵感を消した相談室。 */
  #hal-wp-fv .hero__lead {
    font-size: clamp(18px, 2.2vw, 28px);
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.1em;
    color: var(--on-ink);
    text-shadow: 0 1px 4px rgba(0,0,0,0.8), 0 1px 18px rgba(0,0,0,0.85);
  }
  #hal-wp-fv .hero__lead p { margin: 0; }

  /* ③ 都心特化 Private Intelligence Concierge。 */
  #hal-wp-fv .hero__brand-mark {
    margin: 0 0 clamp(60px, 12vh, 140px);
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(34px, min(6.2vw, 10vh), 108px);
    line-height: 1.08;
    letter-spacing: 0.01em;
    color: var(--on-ink);
    text-shadow: 0 2px 6px rgba(0,0,0,0.55), 0 4px 36px rgba(0,0,0,0.7);
  }
  #hal-wp-fv .hero__brand-kicker {
    display: block;
    margin-bottom: 1em;
    font-family: var(--sans);
    font-size: clamp(13px, 1.5vw, 18px);
    font-weight: 700;
    letter-spacing: 0.42em;
    padding-left: 0.42em;
    line-height: 1;
    color: var(--on-ink);
  }
  #hal-wp-fv .hero__brand-line { display: block; white-space: nowrap; }

  #hal-wp-fv .hero__hint {
    position: absolute;
    left: 50%;
    bottom: clamp(18px, 4vh, 36px);
    z-index: 5;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: rgba(247,244,236,0.8);
    font-size: clamp(10px, 1.2vw, 12px);
    font-weight: 700;
    letter-spacing: 0.3em;
    padding-left: 0.3em;
    text-decoration: none;
    transition: opacity 0.4s ease;
  }
  #hal-wp-fv .hero__hint svg { animation: hero-bounce 1.6s ease-in-out infinite; }
  @keyframes hero-bounce {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(5px); opacity: 1; }
  }

  #hal-wp-fv .hero__progress {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 5;
    height: 2px;
    background: rgba(247,244,236,0.12);
  }
  #hal-wp-fv .hero__progress-bar {
    height: 100%;
    background: linear-gradient(90deg, rgba(203,189,159,0.6), rgba(203,189,159,1));
    transform: scaleX(0);
    transform-origin: left center;
  }
  #hal-wp-fv .hero:not(.is-scrub) .hero__progress { display: none; }

  /* 静止表示：ぼかし・移動なしで全文を読める。ロゴ（左上）→ ① → ② → ③ の順に、上から 1 画面へ並べる */
  #hal-wp-fv .hero:not(.is-scrub) .vc-c { opacity: 1; transform: none; transition: none; }
  #hal-wp-fv .hero:not(.is-scrub) .vc-w { overflow: visible; }
  #hal-wp-fv .hero:not(.is-scrub) .hero__copy { justify-content: flex-start; }
  #hal-wp-fv .hero:not(.is-scrub) .hero__copy--1 { padding-top: clamp(24px, 6vh, 64px); }
  #hal-wp-fv .hero:not(.is-scrub) .hero__title { font-size: clamp(24px, 3.6vw, 48px); }
  #hal-wp-fv .hero:not(.is-scrub) .hero__copy--2 { padding-top: clamp(150px, 27vh, 260px); }
  #hal-wp-fv .hero:not(.is-scrub) .hero__lead { font-size: clamp(15px, 1.8vw, 22px); }
  #hal-wp-fv .hero:not(.is-scrub) .hero__copy--3 { padding: clamp(230px, 41vh, 400px) 5% 4vh; }
  #hal-wp-fv .hero:not(.is-scrub) .hero__brand-mark { font-size: clamp(30px, min(4.8vw, 7vh), 80px); margin-bottom: 0; }

  @media (max-width: 640px) {
    /* 英単語を 1 語ずつ縦に積む（v7 と同じ）。flex の縦並びにして、切り口の負の margin が重ならないようにする */
    #hal-wp-fv .hero__brand-line { display: flex; flex-direction: column; align-items: center; }
    #hal-wp-fv .hero__brand-mark { font-size: clamp(32px, 11vw, 56px); line-height: 1.12; }
    #hal-wp-fv .hero:not(.is-scrub) .hero__copy--3 { padding-top: clamp(250px, 44vh, 380px); }
    #hal-wp-fv .hero:not(.is-scrub) .hero__brand-mark { font-size: clamp(26px, 8.6vw, 44px); }
    #hal-wp-fv .hero:not(.is-scrub) .hero__copy--2 { padding-top: clamp(150px, 26vh, 220px); }
  }

  /* ───────── 次のセクション（スクロール到達の確認用） ───────── */
  #hal-wp-fv .next {
    position: relative;
    scroll-margin-top: var(--hdr-h);
    z-index: 1;
    background: var(--bg);
    color: var(--ink);
    padding: clamp(64px, 12vw, 140px) 16px clamp(56px, 10vw, 120px);
  }
  #hal-wp-fv .next__inner { max-width: 1040px; margin: 0 auto; }
  #hal-wp-fv .next__label {
    margin: 0 0 18px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.3em;
    color: var(--gold);
  }
  #hal-wp-fv .next__title {
    margin: 0 0 16px;
    font-family: var(--serif);
    font-size: clamp(24px, 3.4vw, 38px);
    line-height: 1.5;
    font-weight: 700;
  }
  #hal-wp-fv .next__text {
    margin: 0 0 40px;
    max-width: 40em;
    font-size: clamp(15px, 1.6vw, 17px);
    line-height: 1.9;
    color: var(--body);
  }
  #hal-wp-fv .next__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #hal-wp-fv .next__card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 24px 22px;
  }
  #hal-wp-fv .next__card-num {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--gold);
    margin-bottom: 10px;
  }
  #hal-wp-fv .next__card-title { margin: 0; font-family: var(--serif); font-size: 18px; font-weight: 700; line-height: 1.5; }
  #hal-wp-fv .next__note {
    margin: 32px 0 0;
    padding: 12px 14px;
    border-left: 3px solid var(--gold);
    background: var(--bg-box);
    font-size: 13px;
    line-height: 1.7;
    color: var(--body);
  }
  @media (max-width: 760px) {
    #hal-wp-fv .next__grid { grid-template-columns: 1fr; }
  }

  #hal-wp-fv .credit {
    background: var(--ink);
    color: rgba(247,244,236,0.6);
    padding: 24px 16px 32px;
    font-size: 12px;
    line-height: 1.8;
    text-align: center;
  }
  #hal-wp-fv .credit__name {
    display: block;
    margin-bottom: 8px;
    font-family: var(--serif);
    font-size: 14px;
    letter-spacing: 0.08em;
    color: var(--on-ink);
  }
  #hal-wp-fv .credit a { color: rgba(247,244,236,0.85); }

  @media (prefers-reduced-motion: reduce) {
    #hal-wp-fv .hero__hint svg { animation: none; }
    #hal-wp-fv .hero__hint,#hal-wp-fv  .hero__veil { transition: none; }
    #hal-wp-fv .vc-c,#hal-wp-fv  .is-in .vc-c { transition: none; }
  }

/* OwnerFixR3：写真レイヤーはテーマ共通の img{max-width:100%} の影響を受けない（JS が cover の大きさを指定する。
   上限が残ると元の写真が画面幅に押し縮められ、右端に窓の外の景色が見えていた） */
#hal-wp-fv .hero__view,#hal-wp-fv .hero__room,#hal-wp-fv .hero__room-full{max-width:none;max-height:none}
/* FinalOwnerFix1：R3 の「通過する窓のガラスだけを外の景色へ切り替えるマスク」と、そのための will-change の上書きは廃止した。
   景色の流れは R2 と同じ（元の写真 → 窓ガラスが透明な室内 → 外の景色）。写真レイヤーの max-width:none（上の規則）は維持し、
   右の窓枠の外に背景が見えないようにしている */
