/* ============================================================
   貴創エステート TOP（front-page）スタイル
   記法：FLOCSS（p- 接頭辞）＋ BEM（__element / --modifier / is-state）
   SWELL本体（l-/c-/u-）と衝突しないよう全て p- 名前空間。
   ============================================================ */

/* ===== フォント・トークン上書き（ゴシック・角丸オフ・余白拡大） ===== */
:root{
  --font-en-serif:"Cormorant Garamond",serif;
  --font-en-sans:"Cormorant Garamond",serif;
  --ease-soft:cubic-bezier(.16,1,.3,1);
}

/* ============================================================
   p-top : TOPページのルート（フル幅コンテナ）
   ============================================================ */
.p-top{
  --radius-sm:0; --radius-md:0; --radius-lg:0;
  --section-pc:9.5rem; --section-sp:5rem;
  font-family:var(--font-jp-sans);
  color:var(--color-text);
  line-height:var(--lh-base);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
.p-top *{ box-sizing:border-box; }
.p-top img{ max-width:100%; display:block; }
.p-top a{ text-decoration:none; color:inherit; }

/* SWELLコンテンツ幅の制約を解除＋FV直上の余白を除去（TOPはフル幅・ヘッダー直下から） */
.home #main, .home .l-mainArea, .home .l-content, .home .c-pageTitle, .home .l-main{ max-width:none !important; }
.home .l-content > .c-content, .home .post_content{ max-width:none !important; margin:0 !important; }
.home .l-content.l-container{ padding-inline:0 !important; padding-top:0 !important; }
.home .l-content{ margin-bottom:0 !important; }
.home .p-top{ width:100%; max-width:none; margin:0; }

/* ===== 全ボタンの文字色を白で固定（SWELL本文リンク色の上書きを無効化） ===== */
.p-top .p-btn, .post_content .p-btn,
.p-top .p-btn:hover, .post_content .p-btn:hover,
.p-top .p-btn:visited, .post_content .p-btn:visited{ color:#fff !important; }

/* ===== FV見出し：2行目をゴールドに ===== */
.p-kv__ttl .is-accent{ color:var(--color-accent); }

/* ============================================================
   編集可能ブロック版セクション（core/group alignfull + 内側コンテナ）
   クライアントがブロックエディタで編集できるよう core/SWELLブロックで構成
   ============================================================ */
.p-top .p-sec.wp-block-group{ display:block; }
.p-secInner{ max-width:var(--container-max); margin-inline:auto; padding-inline:var(--gutter-pc); position:relative; z-index:1; }
@media(max-width:767px){ .p-secInner{ padding-inline:var(--gutter-sp); } }
.p-secInner > .p-secTtl{ margin-bottom:44px; }
/* coreブロックの既定マージンを抑制（セクション内） */
.p-secInner > *{ margin-block:0; }

/* 会社概要（編集可能ブロック版） */
.p-company__grid.wp-block-columns{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,4vw,3.5rem); align-items:start; margin:0; }
.p-company__grid.wp-block-columns > .wp-block-column{ flex-basis:auto !important; }
.p-companyTable table{ width:100%; border-collapse:collapse; }
.p-companyTable td{ border:0 !important; border-bottom:1px solid var(--color-border) !important; padding:16px 0 !important; vertical-align:top; text-align:left; color:var(--color-text); line-height:1.8; }
.p-companyTable tr:first-child td{ border-top:1px solid var(--color-border) !important; }
.p-companyTable tr td:first-child{ width:30%; min-width:6em; color:var(--color-text-muted); font-weight:500; white-space:nowrap; padding-right:24px !important; }
.p-company__more{ margin-top:1.8rem; }
.p-navyBtn .wp-block-button__link{ background:var(--color-brand); color:#fff !important; border-radius:4px; padding:.85em 2em; font-weight:500; font-size:var(--fs-sm); transition:background .3s var(--ease-soft); }
.p-navyBtn .wp-block-button__link:hover{ background:var(--color-brand-sub); transform:translateY(-2px); }
.p-company__img img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/4; }
@media(max-width:900px){ .p-company__grid.wp-block-columns{ grid-template-columns:1fr; gap:1.8rem; } }

/* Strength（編集可能ブロック版）：3カード高さ統一 */
.p-strength__items.wp-block-columns{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px !important; margin:0; align-items:stretch; }
.p-strength__items.wp-block-columns > .wp-block-column{ flex-basis:auto !important; display:flex; }
.p-strength__items .p-card.wp-block-group{ flex:1 1 auto; width:100%; }
.p-top .p-card.wp-block-group{ display:block; }
.p-top .p-card.wp-block-group > *{ margin-block:0; }
.p-top .p-card.wp-block-group .p-card__ttl{ margin:10px 0 8px; }

/* WHY（編集可能ブロック版）：core/groupは内側コンテナに包むのでそこにグリッドを当てる */
.p-top .p-why__item.wp-block-group{ border-top:1px solid rgba(255,255,255,.18); padding:24px 0; margin:0; }
.p-top .p-why__item.wp-block-group > .wp-block-group__inner-container{ display:grid; grid-template-columns:64px 1fr; gap:18px; align-items:start; }
.p-top .p-why__item .wp-block-group__inner-container > *{ margin-block:0; }
.p-why__body .wp-block-group__inner-container > * + *{ margin-top:6px; }

/* FAQ（編集可能ブロック版：core/details） */
/* FAQ：タイトル左／アコーディオン右（デザインカンプ準拠） */
.p-faq__cols.wp-block-columns{ align-items:flex-start !important; gap:clamp(2rem,5vw,5rem) !important; margin:0; }
.p-faq__head.wp-block-column{ flex:0 0 20% !important; }
.p-faq__cols > .wp-block-column:not(.p-faq__head){ flex:1 1 auto !important; }
.p-faq__head .p-secTtl{ margin-bottom:0; }
@media(max-width:900px){ .p-faq__cols.wp-block-columns{ display:flex; flex-direction:column; } .p-faq__head.wp-block-column{ flex:1 1 auto !important; } .p-faq__head .p-secTtl{ margin-bottom:24px; } }
.p-faq__list2 .wp-block-details{ border-top:1px solid var(--color-border); padding:0; margin:0; }
.p-faq__list2 .wp-block-details:last-child{ border-bottom:1px solid var(--color-border); }
.p-faq__list2 summary{ cursor:pointer; font-weight:700; color:var(--color-brand); padding:22px 44px 22px 32px; position:relative; list-style:none; }
.p-faq__list2 summary::-webkit-details-marker{ display:none; }
.p-faq__list2 summary::before{ content:"Q"; position:absolute; left:0; top:22px; color:var(--color-accent); font-family:var(--font-en-serif); font-size:1.3rem; line-height:1.4; }
.p-faq__list2 summary::after{ content:"+"; position:absolute; right:2px; top:20px; width:30px; height:30px; border:1px solid var(--color-border); border-radius:50%; display:grid; place-items:center; color:var(--color-brand); transition:.4s var(--ease-soft); }
.p-faq__list2 .wp-block-details[open] summary::after{ background:var(--color-accent); color:#fff; border-color:var(--color-accent); transform:rotate(45deg); }
.p-faq__list2 .wp-block-details > *:not(summary){ margin:0 0 22px 32px; color:var(--color-text-muted); font-size:var(--fs-sm); }

/* MESSAGE（編集可能ブロック版：media-text） */
.p-message__mt.wp-block-media-text{ align-items:center !important; gap:clamp(2rem,5vw,4rem) !important; grid-template-columns:1.1fr .9fr !important; margin:0; }
.p-message__mt .wp-block-media-text__content{ padding:0 !important; }
.p-message__mt .wp-block-media-text__content > *{ margin-block:0; }
.p-message__mt .p-message__label{ font-family:var(--font-en-serif); font-size:1rem; letter-spacing:.2em; color:var(--color-accent); margin-bottom:.6rem; }
.p-message__mt .p-message__lead{ font-size:var(--fs-h2); font-weight:700; color:var(--color-brand) !important; line-height:1.7; margin:0 0 1.2rem; }
.p-message__mt .p-message__text{ color:var(--color-text-muted); line-height:1.95; margin:0 0 1.2rem; }
.p-message__mt .p-message__sign{ margin:1.4rem 0 1.2rem; }
.p-message__mt .p-message__sign small{ display:block; color:var(--color-text-muted); font-size:var(--fs-sm); margin-bottom:.2em; }
.p-message__mt .p-message__sign strong{ font-size:var(--fs-h4); color:var(--color-brand); font-weight:700; letter-spacing:.05em; }
.p-message__mt .wp-block-media-text__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/4; }
@media(max-width:767px){ .p-message__mt.wp-block-media-text{ grid-template-columns:1fr !important; } }

/* MESSAGE：2枚画像 重ね配置（columns版・カンプ準拠） */
.p-message__cols.wp-block-columns{ align-items:center !important; gap:clamp(2rem,5vw,4.5rem) !important; margin:0; }
.p-message__cols .wp-block-column > *{ margin-block:0; }
.p-message__cols .p-message__label{ margin-bottom:.6rem; }
.p-message__cols .p-message__lead{ font-size:var(--fs-h2); font-weight:700; color:var(--color-brand); line-height:1.7; margin:0 0 1.2rem !important; }
.p-message__cols .p-message__text{ color:var(--color-text-muted); line-height:1.95; margin:0 0 1.2rem !important; }
.p-message__cols .p-message__sign{ margin:1.4rem 0 1.2rem !important; }
.p-message__cols .p-message__sign small{ display:block; color:var(--color-text-muted); font-size:var(--fs-sm); margin-bottom:.2em; }
.p-message__cols .p-message__sign strong{ font-size:var(--fs-h4); color:var(--color-brand); font-weight:700; letter-spacing:.05em; }
/* .p-message__visuals.wp-block-column{ position:relative; min-height:600px; align-self:stretch; } */
.p-message__visuals.wp-block-column{ min-height:0 !important; align-self:center !important; }
.p-message__v2.wp-block-image{ position:static !important; width:100% !important; box-shadow:0 26px 54px rgba(27,42,74,.22); }
.p-message__v1.wp-block-image{ position:absolute; left:50%; right:auto; top:0px; width:70%; margin:0; z-index:2; box-shadow:0 26px 54px rgba(27,42,74,.22); }
/* .p-message__v2.wp-block-image{ position:absolute; left:0; right:auto; top:50px; width:100%; margin:0; z-index:1; } */
.p-message__cols .p-message__v1 img, .p-message__cols .p-message__v2 img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }

/* 大きくなりすぎるので、全幅は保留 */
@media(max-width:767px){
  .p-message__cols.wp-block-columns{ display:flex; flex-direction:column; }
  /* 画像はPC同様に重ねて配置（v1=右前／v2=左後ろ）。モバイルははみ出さないようv1を右寄せに */
  .p-message__visuals.wp-block-column{ min-height:clamp(345px, calc(76vw + 52px), 650px); margin-top:8px; }
  .p-message__v1.wp-block-image, .p-message__v2.wp-block-image{ width:60%; }
  .p-message__v1.wp-block-image{ left:auto; right:0; }
}

/* CONTACT（編集可能ブロック版：core/cover） */
.p-contact.wp-block-cover{ min-height:auto !important; padding-block:var(--section-pc) !important; text-align:center; align-items:center; }
.p-contact.wp-block-cover .wp-block-cover__inner-container{ max-width:640px; margin-inline:auto; padding-inline:var(--gutter-pc); }
.p-contact.wp-block-cover .wp-block-cover__inner-container > *{ margin-block:0; }
.p-contact .p-contact__label{ font-family:var(--font-en-serif); font-size:1rem; letter-spacing:.2em; color:var(--color-accent); margin:0 0 .6rem; }
.p-contact .p-contact__ttl{ font-size:var(--fs-h2); font-weight:700; color:#fff; margin:0 0 1rem; }
.p-contact .p-contact__text{ color:var(--color-text-on-dark-muted); margin:0 0 1.8rem; }
.p-goldBtn .wp-block-button__link{ background:var(--color-accent); color:#fff !important; border-radius:4px; padding:.95em 2.2em; font-weight:500; transition:background .3s var(--ease-soft); }
.p-goldBtn .wp-block-button__link:hover{ background:var(--color-accent-hover); transform:translateY(-2px); }
.p-contact__tel2{ display:block; color:#fff; font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif; font-size:1.8rem; letter-spacing:.05em; margin-top:1.2rem; }
.p-contact__tel2 small{ display:block; font-size:var(--fs-xs); color:var(--color-accent); letter-spacing:.1em; }
/* ⑤ ボタンと電話番号を横並び＋上の文章から余白 */
.p-contact__actions{ margin-top:2.6rem !important; gap:clamp(1.2rem,3vw,2.6rem) !important; align-items:center !important; }
.p-contact__actions .wp-block-buttons{ margin:0; }
.p-contact__actions .p-contact__tel2{ margin:0 !important; text-align:left; }
@media(max-width:600px){ .p-contact__actions{ flex-direction:column; } .p-contact__actions .p-contact__tel2{ text-align:center; } }

/* ===== レイアウトヘルパー ===== */
.p-top__wrap{ max-width:var(--container-max); margin-inline:auto; padding-inline:var(--gutter-pc); }
.p-top__grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:24px; max-width:var(--container-max); margin-inline:auto; padding-inline:var(--gutter-pc); }
.p-top__above{ position:relative; z-index:1; }
@media(max-width:767px){
  .p-top__wrap,.p-top__grid{ padding-inline:var(--gutter-sp); }
  .p-top__grid{ gap:14px; }
}

/* ===== p-sec : セクション基底 ===== */
.p-sec{ padding-block:var(--section-pc); position:relative; overflow:hidden; }
.p-sec--alt{ background:var(--color-bg-alt); }
.p-sec--dark{ background:var(--color-bg-dark); color:#fff; }
@media(max-width:767px){ .p-sec{ padding-block:var(--section-sp); } }

/* ===== p-ph : 画像プレースホルダ ===== */
.p-ph{ position:relative; background:var(--navy-50); overflow:hidden; }
.p-ph > img{ width:100%; height:100%; object-fit:cover; }
.p-ph--img{ border:0; background:none; }

/* ===== p-reveal : スクロールリビール ===== */
.p-reveal{ opacity:0; transform:translateY(38px); transition:opacity 1s var(--ease-soft), transform 1s var(--ease-soft); will-change:opacity,transform; }
.p-reveal.is-in{ opacity:1; transform:none; }
.p-reveal--d1{ transition-delay:.08s } .p-reveal--d2{ transition-delay:.16s } .p-reveal--d3{ transition-delay:.24s } .p-reveal--d4{ transition-delay:.32s }

/* ===== p-btn : ボタン ===== */
.p-btn{ display:inline-flex; align-items:center; gap:10px; background:var(--color-accent); color:#fff; padding:15px 32px; border-radius:4px; font-weight:500; font-size:var(--fs-sm); transition:background .3s var(--ease-soft), transform .3s var(--ease-soft); }
.p-btn:hover{ background:var(--color-accent-hover); transform:translateY(-2px); color:#fff; }
.p-btn--ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55); }
.p-btn--ghost:hover{ background:#fff; color:var(--navy-900); }
.p-btn--navy{ background:var(--color-brand); color:#fff; } .p-btn--navy:hover{ background:var(--color-brand-sub); }

/* ===== p-secTtl : 大型セクション見出し ===== */
.p-secTtl__en{ display:block; font-family:var(--font-en-serif); font-weight:700; font-size:clamp(2.8rem,5.5vw,4.6rem); line-height:1; letter-spacing:.01em; color:var(--color-brand); }
.p-secTtl__ja{ display:flex; align-items:center; gap:14px; font-size:var(--fs-h4); font-weight:700; color:var(--color-brand); margin-top:16px; letter-spacing:.06em; }
.p-secTtl__ja::before{ content:""; width:40px; height:2px; background:var(--color-accent); flex:0 0 auto; }
.p-sec--dark .p-secTtl__en, .p-sec--dark .p-secTtl__ja{ color:#fff; }

/* ===== p-wm : ウォーターマーク ===== */
.p-wm{ position:absolute; z-index:0; font-family:var(--font-en-serif); font-weight:700; line-height:.8; color:rgba(27,42,74,.06); pointer-events:none; white-space:nowrap; font-size:clamp(3.6rem,7vw,6.8rem);
  top:calc(var(--section-pc) - .25em); right:max(var(--gutter-pc), calc(50vw - var(--container-max)/2)); }
.p-wm--left{ right:auto; left:max(var(--gutter-pc), calc(50vw - var(--container-max)/2)); font-size:clamp(2.4rem,5vw,4rem); }
.p-sec--dark .p-wm{ color:rgba(255,255,255,.055); }
@media(max-width:767px){ .p-wm{ display:none; } }

/* ===== p-card : 共通カード（Strength / Flow） ===== */
.p-card{ display:block; text-decoration:none; color:inherit; background:#fff; border:1px solid var(--color-border); padding:24px 16px; position:relative; transition:border-color .4s var(--ease-soft), box-shadow .4s var(--ease-soft), transform .4s var(--ease-soft); }
/* カード内（wp-block-group__inner-container内）の要素間マージンを調整 */
.p-card > .wp-block-group__inner-container > *{ margin-block:0; }
.p-card > .wp-block-group__inner-container > .p-card__en{ margin-top:4px; }
.p-card > .wp-block-group__inner-container > .p-card__ttl{ margin-top:9px; }
.p-card > .wp-block-group__inner-container > .p-card__text{ margin-top:6px; }
.p-card:hover{ border-color:var(--color-accent); box-shadow:0 20px 44px rgba(27,42,74,.12); transform:translateY(-6px); }
.p-card__num{ font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-weight:700; font-size:2.8rem; color:var(--color-accent); line-height:1; }
.p-card__en{ font-family:var(--font-en-serif); font-size:.85rem; letter-spacing:.14em; color:var(--color-text-muted); text-transform:uppercase; margin-top:6px; }
.p-card__ttl{ font-weight:700; font-size:var(--fs-h4); color:var(--color-brand); margin:10px 0 8px; }
.p-card__text{ color:var(--color-text-muted); font-size:var(--fs-sm); margin:0; }
.p-card__plus{ position:absolute; right:22px; bottom:20px; width:36px; height:36px; border:1px solid var(--color-border); border-radius:50%; display:grid; place-items:center; color:var(--color-brand); font-size:18px; transition:.4s var(--ease-soft); }
.p-card:hover .p-card__plus{ background:var(--color-accent); border-color:var(--color-accent); color:#fff; transform:rotate(90deg); }

/* ============================================================
   p-kv : KV
   ============================================================ */
.p-kv{ position:relative; min-height:clamp(540px,56vw,860px); display:flex; align-items:center; background:#f3efe9; overflow:hidden; }
.p-kv__bg{ position:absolute; inset:0; z-index:0; }
.p-kv__bg img{ width:100%; height:100%; object-fit:cover; object-position:center right; will-change:transform; }
/* 左に薄い白グラデで濃紺テキストの可読性を確保 */
.p-kv__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(248,245,240,.92) 0%, rgba(248,245,240,.72) 26%, rgba(248,245,240,.2) 48%, rgba(248,245,240,0) 64%); }
.p-kv__wrap{ position:relative; z-index:2; max-width:var(--container-max); margin-inline:auto; padding-inline:var(--gutter-pc); width:100%; }
.p-kv__copy{ max-width:560px; }
.p-kv__ttl{ font-family:var(--font-jp-sans); font-weight:700; font-size:clamp(2rem,4.2vw,3rem); line-height:1.5; letter-spacing:.04em; color:var(--color-brand); margin:0 0 1rem; }
.p-kv__sub{ font-family:var(--font-jp-sans); font-weight:500; font-size:clamp(1.05rem,1.7vw,1.5rem); line-height:1.7; letter-spacing:.02em; color:var(--color-brand); margin:0 0 1.4rem; }
.p-kv__lead{ color:var(--color-text-muted); line-height:1.95; margin:0 0 2rem; max-width:480px; }
@media(max-width:900px){
  .p-kv{ min-height:auto; padding-block:100px 64px; align-items:flex-start; }
  .p-kv__bg img{ object-position:center; }
  .p-kv__bg::after{ background:linear-gradient(180deg, rgba(248,245,240,.94) 0%, rgba(248,245,240,.72) 42%, rgba(248,245,240,.25) 100%); }
  .p-kv__copy{ max-width:100%; }
  .p-kv__wrap{ padding-inline:var(--gutter-sp); }
}

/* ============================================================
   SWELLメインビジュアル（FV）をデザインに合わせる
   ============================================================ */
/* PC：左は無地（クリーム）パネル＋右に写真。元のメインビジュアル(hero-fv.jpg)準拠 */
.home .p-mainVisual__slide{ min-height:clamp(480px,46vw,720px); }
.home .p-mainVisual__img{ object-position:center right; }
/* 左：明るいクリームの無地パネル（右側は透過＝写真が見える）。右端をやわらかくフェード */
.home .p-mainVisual__imgLayer::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,
    rgba(245,242,236,1) 0%,
    rgba(245,242,236,1) 40%,
    rgba(245,242,236,0.78) 48%,
    rgba(245,242,236,0.22) 56%,
    rgba(245,242,236,0) 64%); }
/* テキスト：左パネル内・濃紺＋ゴールド */
.home .p-mainVisual__textLayer{ z-index:2; text-align:left !important; }
.home .p-mainVisual__slideTitle{ font-family:var(--font-jp-sans) !important; font-weight:700 !important; font-size:clamp(2rem,4.2vw,3rem) !important; line-height:1.5 !important; color:var(--color-brand) !important; letter-spacing:.04em; text-shadow:none !important; }
.home .p-mainVisual__slideTitle .u-mvAccent{ color:var(--color-accent) !important; }
.home .p-mainVisual__slideText{ font-family:var(--font-jp-sans) !important; max-width:460px; margin-top:1.8rem !important; text-shadow:none !important; }
/* サブ見出し（濃紺・太字） */
.home .p-mainVisual__slideText .u-mvSub{ display:block; color:var(--color-brand) !important; font-weight:700; font-size:clamp(1.05rem,1.7vw,1.35rem) !important; line-height:1.7; letter-spacing:.02em; margin-bottom:1.1rem; }
/* 本文（グレー・小さめ） */
.home .p-mainVisual__slideText .u-mvBody{ display:block; color:var(--color-text-muted) !important; font-weight:400; font-size:clamp(.88rem,1.05vw,1rem) !important; line-height:1.95; }
.home .p-mainVisual__slideBtn{ margin-top:1.8rem; }
.home .p-mainVisual__slideBtn .c-mvBtn__btn{ background:var(--color-accent) !important; color:#fff !important; border-radius:4px; padding:15px 32px; }

/* ---- タブレット/スマホ（≤959）：各スライド写真をcoverで全面に。下にPC同様のクリームの
   やわらかいフェード＋テキスト（PCビューのぼかしを縦方向で再現） ---- */
@media(max-width:959px){
  /* 縦型FV：上に写真（人物・窓）、下にクリーム域＋テキスト。文字は写真に被らせない */
  .home .p-mainVisual__inner{ height:clamp(720px, 180vw, 900px) !important; }
  .home .p-mainVisual__slide{ height:100% !important; min-height:0 !important; }
  /* 写真は全面cover。ズームアニメ(imgLayer scale)はSPで無効化 */
  .home .p-mainVisual__imgLayer{ background:rgba(245,242,236,1) !important; transform:none !important; animation:none !important; }
  /* 写真は上70%に収める（人物が上に来て、ぼかし境界も上がる）。下30%はクリーム */
  .home .p-mainVisual__img{ object-fit:cover !important; object-position:right center !important; height:70% !important; bottom:auto !important; }
  /* hero-fv は左半分が無地（クリーム）なので、右側の写真（人物・窓）を見せる */
  .home .p-mainVisual__img[src*="hero-fv"]{ object-position:right center !important; }
  /* 上=写真（人物）／下=クリームのやわらかいフェード（PC同様のぼかし）。境界を上めに */
  .home .p-mainVisual__imgLayer::after{ background:linear-gradient(180deg,
    rgba(245,242,236,0) 0%,
    rgba(245,242,236,0) 46%,
    rgba(245,242,236,0.6) 53%,
    rgba(245,242,236,0.97) 58%,
    rgba(245,242,236,1) 62%) !important; }
  /* テキストを下のクリーム領域へ寄せる */
  .home .p-mainVisual__textLayer{ justify-content:flex-end !important; padding-bottom:clamp(2rem,7vw,3rem); }
  /* テキストをコンパクトにして下のクリーム域に収める（写真に被らないように） */
  .home .p-mainVisual__slideText{ max-width:none; margin-top:1.1rem !important; }
  .home .p-mainVisual__slideText .u-mvSub{ font-size:1.05rem !important; margin-bottom:.7rem; line-height:1.55; }
  .home .p-mainVisual__slideText .u-mvBody{ font-size:.85rem !important; line-height:1.7; }
  .home .p-mainVisual__slideBtn{ margin-top:1.2rem; }
}

/* ============================================================
   p-business : BUSINESS
============================================================ */
/* 事業内容カード：見出しリンクをカード全体に拡張（全面クリック可） */
.p-biz__cell{ position:relative; }
.p-biz__cell > .wp-block-cover__inner-container{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  justify-content:flex-end; align-items:flex-start;
}
.p-biz__cell .p-biz__ttl a::after{
  content:""; position:absolute; inset:0; z-index:3;
}

/* ============================================================
   p-concept : CONCEPT
   ============================================================ */
.p-concept__stage.wp-block-columns{ display:grid !important; grid-template-columns:1fr 1fr; align-items:center; gap:0; margin-top:40px; }
.p-concept__stage > .wp-block-column{ flex-basis:auto !important; }
.p-concept__img.wp-block-column{ grid-column:1/2; }
.p-concept__img .wp-block-image{ width:50vw; max-width:50vw; margin-left:calc(560px - 50vw); }
.p-concept__img img{ aspect-ratio:940/660; object-fit:cover; width:100%; display:block; }
.p-concept__panel.wp-block-column{ grid-column:2/3; width:calc(100% + 100px); margin-left:-100px !important; background:#fff; padding:48px 28px; box-shadow:0 28px 60px rgba(27,42,74,.16); z-index:2; position:relative; }
.p-concept__lead{ font-size:var(--fs-h3); font-weight:700; line-height:1.9; color:var(--color-brand); margin:0 0 18px; }
.p-concept__text{ color:var(--color-text-muted); margin:0; line-height:1.95; }
.p-concept__text + .p-concept__text{ margin-top:1.5em; }
@media(max-width:900px){
  .p-concept__stage.wp-block-columns{ grid-template-columns:1fr; }
  .p-concept__img.wp-block-column{ grid-column:1/2; /* margin-left:calc(-1 * var(--gutter-sp)) !important; */ margin-right:calc(-1 * var(--gutter-sp)); }
  .p-concept__img .wp-block-image{ width:100%; max-width:100%; margin-left:0; }
  .p-concept__panel.wp-block-column{ grid-column:1/2; width:auto !important; /* margin:-40px var(--gutter-sp) 0 !important; */ margin-inline:0px !important; padding:24px 16px; }
}

/* ============================================================
   取り扱い物件（cover カード・横スクロール / ブロック版）
   ============================================================ */
.p-prop__scroller2.wp-block-group > .wp-block-group__inner-container{ display:flex; gap:20px; overflow-x:auto; padding-bottom:18px; padding-inline:var(--gutter-pc); margin-top:40px; margin-inline:calc(560px - 50vw); scroll-snap-type:x mandatory; }
.p-prop__card2.wp-block-cover{ flex:0 0 400px; width:400px; min-height:600px; overflow:hidden; align-items:flex-end; justify-content:flex-start; border-radius:0; scroll-snap-align:start; }
.p-prop__card2 .wp-block-cover__background{ background:linear-gradient(0deg,rgba(18,32,58,.92),rgba(18,32,58,.05) 62%) !important; opacity:1 !important; }
.p-prop__card2 .wp-block-cover__image-background{ transition:transform .8s var(--ease-soft); }
.p-prop__card2:hover .wp-block-cover__image-background{ transform:scale(1.06); }
.p-prop__card2 .wp-block-cover__inner-container{ width:100%; z-index:2; }
.p-prop__body{ padding:24px; color:#fff; width:100%; }
.p-prop__body > *{ margin:0; }
.p-prop__en2{ font-family:var(--font-en-serif); font-size:.78rem; letter-spacing:.12em; color:var(--color-accent); }
.p-prop__ttl2{ font-size:var(--fs-h4); font-weight:700; color:#fff !important; margin:2px 0 8px !important; }
.p-prop__desc2{ font-size:var(--fs-sm); color:rgba(255,255,255,.85); line-height:1.7; }
/* タブレット・スマホ：左ブリードを解除しカードを縮小（右への押し出し＝空白を防止） */
@media(max-width:1023px){
  .p-prop__scroller2.wp-block-group > .wp-block-group__inner-container{ margin-inline:-20px; padding-inline:var(--gutter-sp); }
  .p-prop__card2.wp-block-cover{ flex:0 0 auto; width:min(80vw,340px); min-height:clamp(420px,72vw,560px); }
}

/* ============================================================
   FLOW（カード5枚 / ブロック版）
   ============================================================ */
.p-flow__steps2.wp-block-columns{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px !important; margin-top:44px; align-items:stretch; }
.p-flow__steps2.wp-block-columns > .wp-block-column{ flex-basis:auto !important; display:flex; position:relative; }
.p-flow__steps2 .p-card.wp-block-group{ flex:1 1 auto; width:100%; }
/* 矢印は 01→02→03→04 の間（最初の3カラムの後） */
.p-flow__steps2 > .wp-block-column:nth-child(-n+3)::after{ content:"→"; position:absolute; top:50%; right:-23px; transform:translateY(-50%); color:var(--color-accent); font-size:1.3rem; line-height:1; z-index:2; pointer-events:none; }
/* 05 は全幅・横長カード（デザインカンプ準拠） */
.p-flow__steps2 > .wp-block-column:last-child{ grid-column:1 / -1; }
.p-flow__steps2 > .wp-block-column:last-child .p-card.wp-block-group{ display:block; padding:26px 38px; }
.p-flow__steps2 > .wp-block-column:last-child .p-card > .wp-block-group__inner-container{ display:grid; grid-template-columns:150px 1fr; column-gap:28px; align-items:center; }
.p-flow__steps2 > .wp-block-column:last-child .p-card__num{ grid-column:1; grid-row:1; margin:0; }
.p-flow__steps2 > .wp-block-column:last-child .p-card__en{ grid-column:1; grid-row:2; }
.p-flow__steps2 > .wp-block-column:last-child .p-card__ttl{ grid-column:2; grid-row:1; margin:0 !important; align-self:end; }
.p-flow__steps2 > .wp-block-column:last-child .p-card__text{ grid-column:2; grid-row:2; margin:.35em 0 0 !important; }
@media(max-width:1023px){ .p-flow__steps2.wp-block-columns{ grid-template-columns:repeat(2,1fr); } .p-flow__steps2 > .wp-block-column::after{ display:none; } .p-flow__steps2 > .wp-block-column:last-child{ grid-column:1 / -1; } }
@media(max-width:600px){
  .p-flow__steps2.wp-block-columns{ grid-template-columns:1fr; }
  .p-flow__steps2 > .wp-block-column:last-child .p-card > .wp-block-group__inner-container{ grid-template-columns:1fr; }
  /* 05カードの明示的なグリッド配置を解除して縦積みに */
  .p-flow__steps2 > .wp-block-column:last-child .p-card__num,
  .p-flow__steps2 > .wp-block-column:last-child .p-card__en,
  .p-flow__steps2 > .wp-block-column:last-child .p-card__ttl,
  .p-flow__steps2 > .wp-block-column:last-child .p-card__text{ grid-column:1 !important; grid-row:auto !important; }
}

/* ============================================================
   p-strength : STRENGTH
   ============================================================ */
.p-strength__items{ grid-column:1/13; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; margin-top:44px; }
@media(max-width:600px){ .p-strength__items{ grid-template-columns:1fr !important; } }

/* ============================================================
   p-biz : BUSINESS（5タイル・不均一パズル / cover ブロック版・編集可能）
   ============================================================ */
.p-biz__cards{ margin:0; }
/* セクションを幅広に（SWELLのコンテンツ幅900pxの制約を解除）
   Business / Strength / 選ばれる理由 / Company / MESSAGE / FAQ */
.p-biz.alignfull > .wp-block-group__inner-container,
.p-strength.alignfull > .wp-block-group__inner-container,
.p-why.alignfull > .wp-block-group__inner-container,
.p-company.alignfull > .wp-block-group__inner-container,
.p-message.alignfull > .wp-block-group__inner-container,
.p-faq.alignfull > .wp-block-group__inner-container{ max-width:1320px; margin-inline:auto; }
.p-biz .p-secInner,
.p-strength .p-secInner,
.p-why .p-secInner,
.p-company .p-secInner,
.p-message .p-secInner,
.p-faq .p-secInner{ max-width:1320px; }
/* SWELLフルワイドブロック(loos/full-wide)化したセクション：全幅（コンテンツも画面幅いっぱい・ガターのみ） */
.swell-block-fullWide{ overflow:hidden; }
#strength .p-secInner, #business .p-secInner, #why .p-secInner, #company .p-secInner, #message .p-secInner, #faq .p-secInner, #concept .p-secInner, #property .p-secInner, #flow .p-secInner{ max-width:1200px; padding-inline:var(--gutter-pc); }
/* 透かし文字：見出し背後へ＋コンテナ右端に揃える（1280中央寄せ基準） */
.swell-block-fullWide .p-wm{ top:-.18em; right:max(var(--gutter-pc), calc(50vw - 600px)); }
.swell-block-fullWide .p-wm--left{ right:auto; left:max(var(--gutter-pc), calc(50vw - 600px)); }
/* WHY（暗色セクション）：白文字（旧 .p-sec--dark をID基準に） */
#why{ color:#fff; }
#why .p-secTtl__en, #why .p-secTtl__ja{ color:#fff; }
#why .p-wm{ color:rgba(255,255,255,.055); }
.p-biz__cards.wp-block-group > .wp-block-group__inner-container{ display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:200px; gap:20px; margin-top:44px; }
/* cover をタイル化（行高いっぱいに伸ばし、GAPを上下左右均一に） */
.p-biz__cell.wp-block-cover{ position:relative; overflow:hidden; min-height:0 !important; height:100%; padding:0; border-radius:0; background:var(--color-bg-dark); align-items:flex-end; justify-content:flex-start; }
.p-biz__cell.wp-block-cover .wp-block-cover__image-background{ transition:transform .8s var(--ease-soft); }
.p-biz__cell.wp-block-cover:hover .wp-block-cover__image-background{ transform:scale(1.08); }
/* オーバーレイをグラデ（下が濃い紺）に上書き */
.p-biz__cell.wp-block-cover .wp-block-cover__background{ background:linear-gradient(0deg,rgba(18,29,52,.92),rgba(18,29,52,.1) 70%) !important; opacity:1 !important; }
.p-biz__cell .wp-block-cover__inner-container{ width:100%; height:auto; min-height:0; z-index:2; }
.p-biz__body{ padding:28px; color:#fff; width:100%; }
.p-biz__body > *{ margin:0; }
.p-biz__num{ font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; color:var(--color-accent); font-size:1.5rem; font-weight:700; line-height:1.2; }
.p-biz__en{ font-family:var(--font-en-serif); font-size:.8rem; letter-spacing:.12em; color:rgba(255,255,255,.7); display:block; }
.p-biz__ttl{ font-size:var(--fs-h3); margin:4px 0 0 !important; font-weight:700; color:#fff; }
.p-biz__ttl a{ color:#fff; text-decoration:none; }
/* ホバー矢印 */
.p-biz__cell.wp-block-cover::after{ content:"→"; position:absolute; top:22px; right:24px; z-index:3; color:var(--color-accent); font-size:1.2rem; opacity:0; transform:translateX(-6px); transition:.4s var(--ease-soft); }
.p-biz__cell.wp-block-cover:hover::after{ opacity:1; transform:none; }
/* 5タイル配置（2カラム・bento） */
.p-biz__cell--1{ grid-column:1; grid-row:1 / 3; }
.p-biz__cell--2{ grid-column:2; grid-row:1; }
.p-biz__cell--3{ grid-column:2; grid-row:2; }
.p-biz__cell--4{ grid-column:1; grid-row:3; }
.p-biz__cell--5{ grid-column:2; grid-row:3; }
@media(max-width:767px){
  .p-biz__cards.wp-block-group > .wp-block-group__inner-container{ grid-template-columns:1fr; grid-auto-rows:200px; }
  .p-biz__cell.wp-block-cover{ grid-column:1 !important; grid-row:auto !important; }
}

/* ============================================================
   p-prop : PROPERTY（横スクロール）
   ============================================================ */
.p-prop__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.p-prop__hint{ font-family:var(--font-en-serif); font-size:.9rem; letter-spacing:.14em; color:var(--color-text-muted); }
.p-prop__scroller{ width:100vw; margin-left:calc(50% - 50vw); margin-top:44px; overflow-x:auto; display:flex; gap:20px; padding-inline:max(var(--gutter-pc), calc(50vw - var(--container-max)/2)); scroll-snap-type:x mandatory; scrollbar-width:thin; }
.p-prop__card{ position:relative; flex:0 0 34%; min-width:320px; aspect-ratio:4/5; overflow:hidden; scroll-snap-align:start; }
.p-prop__card .p-ph{ position:absolute; inset:0; }
.p-prop__card .p-ph img{ transition:transform .9s var(--ease-soft); }
.p-prop__card:hover .p-ph img{ transform:scale(1.07); }
.p-prop__card::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(18,29,52,.75),transparent 55%); z-index:1; }
.p-prop__cap{ position:absolute; left:22px; bottom:18px; z-index:2; color:#fff; transition:transform .5s var(--ease-soft), opacity .4s var(--ease-soft); }
.p-prop__cap-en{ font-family:var(--font-en-serif); font-size:.8rem; letter-spacing:.14em; color:var(--color-accent); display:block; }
.p-prop__cap-ja{ font-size:var(--fs-h4); font-weight:700; }
.p-prop__detail{ position:absolute; left:0; right:0; bottom:0; z-index:3; background:rgba(18,29,52,.94); color:#fff; padding:22px; transform:translateY(101%); transition:transform .5s var(--ease-soft); }
.p-prop__detail-en{ font-family:var(--font-en-serif); font-size:.8rem; letter-spacing:.14em; color:var(--color-accent); }
.p-prop__detail-ja{ font-size:var(--fs-h4); font-weight:700; margin:2px 0 8px; }
.p-prop__detail p{ font-size:var(--fs-sm); color:rgba(255,255,255,.85); margin:0; }
.p-prop__card:hover .p-prop__detail{ transform:translateY(0); }
.p-prop__card:hover .p-prop__cap{ transform:translateY(8px); opacity:0; }
@media(max-width:767px){ .p-prop__card{ flex:0 0 74%; min-width:240px; } }

/* ============================================================
   p-why : WHY
   ============================================================ */
.p-why{ position:relative; }
.p-why__giant{ position:absolute; left:-0.06em; top:40px; font-family:var(--font-en-serif); font-weight:700; font-size:clamp(7rem,22vw,20rem); line-height:.8; color:rgba(255,255,255,.06); white-space:nowrap; z-index:0; pointer-events:none; }
.p-why__inner{ position:relative; z-index:1; margin-left:auto; width:70%; }
.p-why__lead{ font-size:var(--fs-h2); font-weight:700; color:#fff; margin:0 0 36px; }
.p-why__item:not(.wp-block-group){ border-top:1px solid rgba(255,255,255,.18); padding:24px 0; display:grid; grid-template-columns:64px 1fr; gap:18px; }
.p-why__num{ font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-weight:700; font-size:2rem; color:var(--color-accent); line-height:1; }
.p-why__ttl{ color:#fff; font-size:var(--fs-h4); margin:0 0 6px; font-weight:700; }
.p-why__text{ color:var(--color-text-on-dark-muted); font-size:var(--fs-sm); margin:0; }
@media(max-width:900px){ .p-why__inner{ width:100%; } }
@media(max-width:600px){
  .p-top .p-why__item.wp-block-group > .wp-block-group__inner-container{ grid-template-columns:32px 1fr; gap:12px; }
  .p-why__num{ font-size:1.5rem; line-height:1.1; }
}

/* ============================================================
   p-flow : FLOW
   ============================================================ */
.p-flow__steps{ grid-column:1/13; display:flex; flex-wrap:wrap; align-items:stretch; gap:14px; margin-top:44px; }
.p-flow__steps .p-card{ flex:1 1 0; min-width:190px; padding:26px 24px; cursor:default; }
.p-flow__steps .p-card:hover{ transform:none; box-shadow:none; border-color:var(--color-border); }
.p-flow__arrow{ flex:0 0 auto; align-self:center; display:flex; align-items:center; color:var(--color-accent); font-size:1.5rem; font-weight:700; }
@media(max-width:900px){ .p-flow__arrow{ display:none; } .p-flow__steps .p-card{ flex:1 1 42%; } }
@media(max-width:600px){ .p-flow__steps .p-card{ flex:1 1 100%; } }

/* ============================================================
   p-company : COMPANY
   ============================================================ */
.p-company__grid{ grid-column:1/13; display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start; margin-top:44px; }
.p-company__stats{ display:grid; grid-template-columns:1fr; gap:0; }
.p-company__stat{ border-top:1px solid var(--color-border); padding:18px 0; display:grid; grid-template-columns:200px 1fr; align-items:baseline; gap:20px; }
.p-company__stat:last-child{ border-bottom:1px solid var(--color-border); }
.p-company__lab{ font-family:var(--font-en-serif); font-size:.8rem; letter-spacing:.14em; color:var(--color-text-muted); text-transform:uppercase; }
.p-company__val{ font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-weight:700; font-size:clamp(1rem,1.4vw,1.2rem); color:var(--color-brand); line-height:1.5; }
.p-company__media .p-ph{ aspect-ratio:3/4; height:100%; }
.p-company__more{ margin-top:28px; }
@media(max-width:900px){ .p-company__grid{ grid-template-columns:1fr; gap:28px; } }

/* ============================================================
   p-message : MESSAGE
   ============================================================ */
.p-message__grid{ align-items:center; }
.p-message__inner{ grid-column:1/6; text-align:left; }
.p-message__label{ font-family:var(--font-en-serif); font-size:1rem; letter-spacing:.2em; color:var(--color-accent); }
.p-message__lead{ font-size:var(--fs-h2); font-weight:700; color:var(--color-brand); line-height:1.7; margin:16px 0 24px; }
.p-message__text{ color:var(--color-text-muted); margin:0 0 12px; }
.p-message__sign{ margin-top:28px; }
.p-message__sign small{ color:var(--color-text-muted); font-size:var(--fs-sm); }
.p-message__sign strong{ display:block; font-size:var(--fs-h4); font-weight:700; color:var(--color-text); margin-top:6px; }
.p-message__visuals{ grid-column:6/13; position:relative; min-height:540px; }
.p-message__v1{ position:absolute; left:0; top:72px; width:58%; z-index:1; }
.p-message__v2{ position:absolute; right:0; top:0; width:56%; z-index:2; box-shadow:0 26px 54px rgba(27,42,74,.22); }
.p-message__visuals .p-ph{ aspect-ratio:3/4; }
@media(max-width:900px){
  .p-message__inner{ grid-column:1/13; }
  .p-message__visuals{ grid-column:1/13; position:static; display:flex; gap:14px; margin-top:32px; }
  .p-message__v1,.p-message__v2{ position:static; width:auto; flex:1; box-shadow:none; }
}

/* ============================================================
   p-faq : FAQ（アコーディオン）
   ============================================================ */
.p-faq{ position:relative; }
.p-faq__giant{ position:absolute; right:calc(50% - 50vw); top:64px; font-family:var(--font-en-serif); font-weight:700; font-size:clamp(6rem,18vw,16rem); line-height:.8; color:rgba(27,42,74,.06); z-index:0; pointer-events:none; }
.p-faq__head{ grid-column:1/4; position:relative; z-index:1; }
.p-faq__list{ grid-column:4/12; position:relative; z-index:1; }
.p-faq__item{ border-top:1px solid var(--color-border); }
.p-faq__item:last-child{ border-bottom:1px solid var(--color-border); }
.p-faq__q{ cursor:pointer; font-weight:700; color:var(--color-brand); display:flex; gap:14px; align-items:center; padding:22px 0; }
.p-faq__qmark{ font-family:var(--font-en-serif); color:var(--color-accent); font-size:1.3rem; line-height:1; }
.p-faq__toggle{ margin-left:auto; width:30px; height:30px; border:1px solid var(--color-border); border-radius:50%; display:grid; place-items:center; color:var(--color-brand); transition:.4s var(--ease-soft); flex:0 0 auto; }
.p-faq__item.is-open .p-faq__toggle{ background:var(--color-accent); border-color:var(--color-accent); color:#fff; transform:rotate(45deg); }
.p-faq__a{ overflow:hidden; max-height:0; transition:max-height .55s var(--ease-soft); }
.p-faq__item.is-open .p-faq__a{ max-height:240px; }
.p-faq__a dd{ margin:0 0 22px 34px; color:var(--color-text-muted); font-size:var(--fs-sm); }
@media(max-width:900px){ .p-faq__head,.p-faq__list{ grid-column:1/13; } .p-faq__list{ margin-top:20px; } }

/* ============================================================
   p-contact : CONTACT
   ============================================================ */
.p-contact{ text-align:center; }
.p-contact__bg{ position:absolute; inset:-8% 0; z-index:0; }
.p-contact__bg img{ width:100%; height:116%; object-fit:cover; will-change:transform; }
.p-contact__bg::after{ content:""; position:absolute; inset:0; background:rgba(18,29,52,.76); }
.p-contact__inner{ position:relative; z-index:2; grid-column:1/13; }
.p-contact__label{ font-family:var(--font-en-serif); font-size:1rem; letter-spacing:.2em; color:var(--color-accent); }
.p-contact__ttl{ font-size:var(--fs-h2); font-weight:700; color:#fff; margin:12px 0 14px; }
.p-contact__text{ color:var(--color-text-on-dark-muted); margin:0 auto 28px; max-width:520px; }
.p-contact__actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; align-items:center; }
.p-contact__tel{ color:#fff; font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; font-size:1.8rem; letter-spacing:.05em; }
.p-contact__tel small{ display:block; font-size:var(--fs-xs); color:var(--color-accent); letter-spacing:.1em; }

/* ============================================================
   レスポンシブ：画像・ボックス（ボタン等）を中央寄せ（テキストは元のまま）
   ============================================================ */
@media(max-width:900px){
  /* 画像を中央寄せ */
  .home .wp-block-image{ margin-inline:auto; text-align:center; }
  /* ボタン（ボックス）を中央寄せ（FVヒーローは元のまま） */
  .home .wp-block-buttons{ justify-content:center; }
  .p-company__more{ text-align:center; }
  /* 代表挨拶ボタンは左寄せ */
  .p-message__cols .wp-block-buttons{ justify-content:flex-start; }
}

/* ============================================================
   スクロールリビール（控えめ）／FV導入／スクロール誘導
   - .has-reveal は <head> のインラインJSで付与（JS有効時のみ＝チラつき防止）
   - 対象は estate-anim.js が IntersectionObserver で .is-in を付与
   ============================================================ */
/* リビール対象（home）：初期非表示 → .is-in でフェード＋スライドアップ */
.has-reveal .p-secTtl,
.has-reveal .p-concept__img,
.has-reveal .p-concept__panel,
.has-reveal .p-message__cols > .wp-block-column:not(.p-message__visuals),
.has-reveal .p-message__v1,
.has-reveal .p-message__v2,
.has-reveal .p-why__item,
.has-reveal .p-company__grid,
.has-reveal .p-faq__list2,
.has-reveal .p-contact__label,
.has-reveal .p-contact__ttl,
.has-reveal .p-contact__text,
.has-reveal .p-contact .p-goldBtn,
.has-reveal .p-contact__tel2,
.has-reveal .p-strength__items > .wp-block-column,
.has-reveal .p-flow__steps2 > .wp-block-column,
.has-reveal .p-biz__cell,
.has-reveal .p-prop__card2{
  opacity:0; transform:translateY(18px);
  transition:opacity 1.4s var(--ease-soft), transform 1.4s var(--ease-soft);
  will-change:opacity, transform;
}
.has-reveal .is-in{ opacity:1 !important; transform:none !important; }

/* FV導入：ロード時にFVテキストを順次フェードアップ（has-revealで初期非表示→mv-inで表示） */
.has-reveal .home .p-mainVisual__slideTitle,
.has-reveal .home .p-mainVisual__slideText,
.has-reveal .home .p-mainVisual__slideBtn{
  opacity:0; transform:translateY(20px);
  transition:opacity 1.5s var(--ease-soft), transform 1.5s var(--ease-soft);
}
.has-reveal .home .p-mainVisual__slideTitle{ transition-delay:.30s; }
.has-reveal .home .p-mainVisual__slideText{ transition-delay:.70s; }
.has-reveal .home .p-mainVisual__slideBtn{ transition-delay:1.1s; }
.mv-in .home .p-mainVisual__slideTitle,
.mv-in .home .p-mainVisual__slideText,
.mv-in .home .p-mainVisual__slideBtn{ opacity:1; transform:none; }

/* FVスクロール誘導（PCのみ）：縦ラインをゴールドのバーが流れる */
.p-fvScroll{ position:absolute; left:50%; bottom:22px; transform:translateX(-50%); z-index:5;
  display:flex; flex-direction:column; align-items:center; gap:8px; pointer-events:none; }
.p-fvScroll__label{ font-family:var(--font-en-sans); font-size:.62rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--color-brand); }
.p-fvScroll__line{ position:relative; width:1px; height:46px; background:rgba(27,42,74,.18); overflow:hidden; }
.p-fvScroll__bar{ position:absolute; left:0; top:0; width:100%; height:45%; background:var(--color-accent);
  animation:fvScrollBar 1.9s var(--ease-soft) infinite; }
@keyframes fvScrollBar{ 0%{ transform:translateY(-110%); } 60%,100%{ transform:translateY(240%); } }
@media(max-width:959px){ .p-fvScroll{ display:none; } }

/* モーション抑制：大きな動き（スライド）は抑えつつ、フェードのみ残す（出現感を維持） */
@media (prefers-reduced-motion: reduce){
  .has-reveal .p-secTtl,
  .has-reveal .p-concept__img,
  .has-reveal .p-concept__panel,
  .has-reveal .p-message__cols > .wp-block-column:not(.p-message__visuals),
  .has-reveal .p-message__v1,
  .has-reveal .p-message__v2,
  .has-reveal .p-why__item,
  .has-reveal .p-company__grid,
  .has-reveal .p-faq__list2,
  .has-reveal .p-contact__label,
  .has-reveal .p-contact__ttl,
  .has-reveal .p-contact__text,
  .has-reveal .p-contact .p-goldBtn,
  .has-reveal .p-contact__tel2,
  .has-reveal .p-strength__items > .wp-block-column,
  .has-reveal .p-flow__steps2 > .wp-block-column,
  .has-reveal .p-biz__cell,
  .has-reveal .p-prop__card2{
    transform:none !important;
    transition:opacity .8s var(--ease-soft) !important;
  }
  /* FV導入は従来どおり即時表示（チラつき防止） */
  .has-reveal .home .p-mainVisual__slideTitle,
  .has-reveal .home .p-mainVisual__slideText,
  .has-reveal .home .p-mainVisual__slideBtn{ opacity:1 !important; transform:none !important; transition:none !important; }
  .p-fvScroll__bar{ animation:none; }
}
