/* ============================================================
   【ベイクルーズ案件共通の教訓】
   BAYCREW'SのCMSには本文の貼り方が「フリー」と「テンプレ（商品クレジット）」の
   2パターンある。
   ・フリー：自由記述エリアにそのまま貼るだけ。CMS側が勝手にラッパーclassを
     付けたりしない（LE TALONはこちら、と思われる。要本番URLで確認）。
   ・テンプレ：sec01, sec02...という番号付きスロットに貼ることで、商品登録した
     クレジット情報がsecXX単位でHTMLに自動注入される仕組み（本ページはこちら）。
     この場合、貼った時点でCMSが「記事用2カラム」クラス(col--02--Y等・
     max-width約789px、レスポンシブ非対応)を自動付与してくるため、ローカルでは
     絶対に再現できない幅崩れが本番だけで発生する。商品クレジットのプレース
     ホルダー(<div class="product">)も本番でだけ実データに置き換わるため、
     モーダル内の余白・行間もローカルでは検証しきれない。
     → テンプレ側を使う案件では、幅系のCSSはvw(ビューポート基準)ではなく
       cqw(コンテナクエリ)か固定pxを使い、本番アップ後に必ずCMS上のDOMを
       直接確認すること。
   ============================================================ */

/* ============================================================
   VERMEIL par iena feature page
   ・スマホデザインを基準に実装（393px幅）
   ・PCはLE TALON方式（KV固定＋右カラムがスマホをミラーリング）ではなく、
     Figma「Desktop」フレーム(1440px幅)通りの1カラム縦積みレイアウト：
     KV(フルワイド) → リード文 → LOOK1 → …(以降のLOOKも同様) → フッター
   ・LOOK内は物撮り1枚→スタイル1・2は横並び（スマホは縦積み）
   ・PC変換比率：100vw ÷ 1440px = 0.069444vw / 1px（Figmaの実測値を使用）
   ・PC KVはFigma「Desktop」フレームの正式デザイン(1440x720)に合わせて実装済み。
     SPとは配置が異なる（左に縦長2枚d/e、右上下に3枚ずつa/b/c・f/g/h）。
   ============================================================ */

:root {
  --vm-black: #1a1a1a;
  --vm-white: #fff;
  --vm-gray: #999;
  --vm-line: rgba(26,26,26,0.2);
  --vm-serif: "Instrument Serif", "Times New Roman", serif;
  --vm-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  --vm-condensed: "Roboto Condensed", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif; /* クレジット行を1行に収めるためのコンデンスド書体(ユーザー指定) */
}

html, body { margin: 0; padding: 0; }

/* サイト共通のヘッダー／セールバナー／breadcrumb／フッター／その他新着特集／
   チェックしたアイテム を非表示にする（参照ページ 18252 と同じルール） */
.c-banner, .c-header, .c-breadcrumb, #contentEnd, .l-separator,
.c-footerWrapper, .c-footer-navigation, .ss-feature {
  display: none !important;
}

/* CMSにアップロードすると、本文を貼り付けた#sec01にBAYCREW'S標準テンプレートの
   「2カラム記事」クラス(col--02--Y)が自動付与され、max-width:789pxで幅が
   固定されてしまう（PC/SP共通・レスポンシブ対応なし）。これがPCで画面いっぱいに
   ならない・中身が実際のコンテナ幅を無視して大きく見える・SPで右側が画面外に
   はみ出して左右に白場ができる、の共通原因だったため、このページ専用に幅制限を
   解除する */
#sec01.article {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  /* col--02--Yテンプレのデフォルトpadding-bottom:60pxが、ページ最後の要素(フッター)の
     さらに下に本文とは無関係な余白を作っていた（本番のみ。ローカルは#sec01自体が
     存在しないため発生しない）。フッターは自前で余白を作っているためこちらは0にする */
  padding: 0 !important;
}

/* 本番実機で計測：<main>直下から#sec01/.vm-wrapに至るまでのBAYCREW'S標準テンプレート
   階層(main > .l-inner > article > .ftool-wrapper > #sec01 > .mb60 > ...)がいずれも
   display:blockのままでBFCを持たず、内部のどこかのmargin-topがこの一帯を素通りして
   <main>の外まで伝播し、KVの上に12px相当の謎の余白を作っていた（.vm-wrap自身への
   flow-root指定だけでは、vm-wrapより外側で起きるこの伝播は防げなかった）。
   関係する階層すべてにflow-rootを指定し、二重三重に遮断する */
main, .l-inner, article, .ftool-wrapper {
  display: flow-root;
}
/* 本番実機で再計測して判明：#sec01の直下にBAYCREW'S標準テンプレートの汎用スペーサー
   クラス「.mb60」(名前の通りmargin-bottom:60px想定のユーティリティ)がCMSによって
   自動的に2つ挿入されており(1つ目は空・高さ0、2つ目が実際の本文を内包)、
   1つ目のmargin-bottomがKVの上に12px相当の余白として残っていた。
   flow-rootだけでは「要素自身の外側マージン」は打ち消せないため、marginそのものを
   0にする。#sec01.article／ul.item_reference_b--tpl-Y／li.descriptionも同様に
   保険として margin/padding を0にし、二重三重に遮断する */
.mb60,
#sec01.article,
ul.item_reference_b--tpl-Y,
li.description {
  display: flow-root !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 本番CMS上だけ<body>の上（<html>との間）に謎の余白ができる問題への対処。
   .vm-wrapにdisplay:flow-rootを設定してもこの余白は消えなかった（原因はvm-wrapより
   さらに外側、<body>直下の#sec01/.mb60等CMS標準マークアップ側のどこかのマージンが
   <body>自身にはpadding/borderがないせいで<html>方向へ突き抜けていたため。本番の
   実DOMで検証済み：<body>にdisplay:flow-rootを当てると解消することを確認）。
   このCSSファイルは本ページ専用に読み込まれるため、bodyへの指定も安全 */
body {
  display: flow-root !important;
}

.vm-wrap {
  font-family: var(--vm-sans);
  color: var(--vm-black);
  -webkit-font-smoothing: antialiased;
  font-size: 13px;
  line-height: 1.7;
  /* 本番CMS上だけKVの上に謎の余白ができる問題への対処。ローカルでは<body>直下に
     .vm-wrapを置いているため発生しないが、本番は.vm-wrapがCMS標準のli/ul/div等
     複数階層でラップされる（#sec01の中の.item_reference_b--tpl-Y等）。それらの
     どこかに残っているマージンが、.vm-wrap自身にはpadding/borderがないせいで
     子（.vm-kv）のマージンだと誤認されて祖先方向へ突き抜け(margin collapse)、
     htmlの直下まで伝播して見えない余白を作っていた。flow-rootで新しいブロック
     整形コンテキストを作り、この突き抜けをここで完全に遮断する
     （overflow:hiddenと違い中身のはみ出し表示への影響はない） */
  display: flow-root;
  position: relative; /* SPロゴをvm-wrap基準で絶対配置するための基準ボックス */
}
.vm-wrap * { box-sizing: border-box; }
.vm-wrap img { max-width: 100%; display: block; }
.vm-wrap a { color: inherit; }

.vm-layout { position: relative; width: 100%; }

/* ---------- ヘッダー（左上ロゴ＋右上メニュー） ----------
   Figma実測(SP)：ロゴ 10,10,85x26／ハンバーガー 右0,50x50角丸なし三本線
   Figma実測(PC)：ロゴ 11,19,160.19x49／メニューは常時表示のテキストリンク
   （右端から41px、Instrument Serif 16px、下線あり）
   ユーザー指定：SPはロゴをスクロール追従させず、ページ先頭のみに固定表示（下にスクロール
   すると流れて消える）。ハンバーガーメニューは引き続きスクロール追従（常時表示）。
   PCはロゴ・メニューとも従来通りスクロール追従のまま。
   → ロゴをHTML側で.vm-headerの外に独立して配置し、SPでは.vm-wrap基準のposition:absolute
     （通常のドキュメントフローと一緒にスクロールして流れる）、PCではposition:fixedに
     出し分ける。 */
.vm-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  pointer-events: none;
}
.vm-header__logo {
  position: absolute; /* SP：vm-wrap基準、ページ先頭付近に固定表示されスクロールで流れる */
  top: 10px;
  left: 10px;
  width: 85px;
  z-index: 1000;
  pointer-events: auto;
}
.vm-header__logo img { width: 100%; height: auto; display: block; }
.vm-header__nav { display: none; }
.vm-header__hamburger {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  background: none;
  border: none;
  cursor: pointer;
  pointer-events: auto;
  padding: 0;
}
.vm-header__hamburger span {
  position: absolute;
  left: 25%;
  width: 50%;
  height: 1px;
  background: var(--vm-black);
  transition: 0.2s linear;
}
.vm-header__hamburger span:nth-child(1) { top: 32%; }
.vm-header__hamburger span:nth-child(2) { top: 50%; }
.vm-header__hamburger span:nth-child(3) { bottom: 33%; }
.vm-header__hamburger.is-open span:nth-child(1) { top: 50%; transform: rotate(45deg); }
.vm-header__hamburger.is-open span:nth-child(2) { opacity: 0; }
.vm-header__hamburger.is-open span:nth-child(3) { bottom: 50%; transform: rotate(-45deg); }

/* SPのハンバーガー展開メニュー（参照ページ18252のsp-menuと同じ4項目を踏襲） */
.vm-header__spmenu {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(255,255,255,0.98);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.vm-header__spmenu.is-open { opacity: 1; pointer-events: auto; }
.vm-header__spmenu ul { list-style: none; margin: 0; padding: 0; text-align: center; }
.vm-header__spmenu li { margin: 0 0 28px; }
.vm-header__spmenu li:last-child { margin-bottom: 0; }
.vm-header__spmenu a {
  font-family: var(--vm-serif);
  font-size: 20px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media only screen and (min-width: 740px) {
  .vm-header__logo {
    position: fixed; /* PCは従来通りスクロール追従（常時表示） */
    top: 19px; left: 11px; width: clamp(85px, 8.33vw, 120px);
  } /* PCで大きすぎたため縮小 */
  .vm-header__hamburger { display: none; }
  .vm-header__spmenu { display: none; }
  .vm-header__nav {
    display: block;
    position: absolute;
    top: 34px;
    right: 41px;
    pointer-events: auto;
  }
  .vm-header__nav ul { list-style: none; margin: 0; padding: 0; text-align: right; }
  .vm-header__nav li { margin: 0 0 8px; }
  .vm-header__nav li:last-child { margin-bottom: 0; }
  .vm-header__nav a {
    font-family: var(--vm-serif);
    font-size: clamp(13px, 1.111vw, 16px);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

/* ---------- KV（8枚コラージュ・静止画） ---------- */
.vm-kv {
  position: relative;
  width: 100vw; /* Figma実測：KVだけは記事コンテナの幅を無視してブラウザ画面いっぱい
                   に広がるフルブリード。#sec01のカラム幅制限の影響を受けないよう、
                   ビューポート基準の100vw＋負のマージンで中央の親要素から外へ
                   はみ出させる（キャプションや本文など他の要素は通常通りコンテナ内） */
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  background: #fff; /* Figma実測：背景はベージュではなく白 */
}
/* 初回表示時、画像をa→b→c→f→g→h→(タイトル下のd・eは同時、最後から2番目)→
   最後にタイトルの順にフェードインする演出。
   スクロール起点ではなくページ読み込み起点のため、IntersectionObserverではなく
   CSSアニメーション＋animation-delayの段違いで実現している */
@keyframes vm-kv-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.vm-kv__img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: vm-kv-fade-in 0.8s ease forwards;
}
.vm-kv__img--a { left: 3.817%;  top: 2.206%;  width: 28.522%; height: 24.412%; animation-delay: 0.1s; }
.vm-kv__img--b { left: 35.750%; top: 2.206%;  width: 28.522%; height: 24.412%; animation-delay: 0.4s; }
.vm-kv__img--c { left: 67.684%; top: 2.206%;  width: 28.522%; height: 24.412%; animation-delay: 0.7s; }
.vm-kv__img--f { left: 0%;      top: 73.676%; width: 33.333%; height: 26.324%; animation-delay: 1.0s; }
.vm-kv__img--g { left: 33.333%; top: 73.676%; width: 33.333%; height: 26.324%; animation-delay: 1.3s; }
.vm-kv__img--h { left: 66.667%; top: 73.676%; width: 33.333%; height: 26.324%; animation-delay: 1.6s; }
/* タイトルの下にある2枚（d・e）は最後から2番目に同時フェードイン */
.vm-kv__img--d { left: 0%;      top: 28.676%; width: 50.127%; height: 42.941%; animation-delay: 1.9s; }
.vm-kv__img--e { left: 49.873%; top: 28.676%; width: 50.127%; height: 42.941%; animation-delay: 1.9s; }

/* タイトルはFigma書き出しのSVG画像(title.svg, 319x155)をそのまま配置。
   幅80.98%はSVGの原寸(155px)がKVの高さ22.794%(680px×22.794%=155px)と
   厳密に一致することを確認済みのため、height:autoで自然な縦横比のまま表示 */
.vm-kv__title {
  position: absolute;
  left: 9.415%;
  top: 38.671%;
  width: 80.980%;
  height: auto;
  pointer-events: none;
  opacity: 0;
  animation: vm-kv-fade-in 0.8s ease forwards;
  animation-delay: 2.3s;
}

@media only screen and (min-width: 740px) {
  /* Figma「Desktop」フレームのKVが正式デザインされたため実測値に更新
     （1440x720。SPと違い左に縦長2枚(d/e)、右上下に3枚ずつ(a/b/c, f/g/h)の配置） */
  .vm-kv {
    position: relative;
    left: 50%;
    right: 50%;
    width: 100vw;
    margin-left: -50vw;
    margin-right: -50vw;
    height: auto;
    aspect-ratio: 1440 / 720;
  }
  .vm-kv__img--a { left: 2.428%;  top: 5%;       width: 11.597%; height: 41.111%; }
  .vm-kv__img--b { left: 15.483%; top: 5%;       width: 11.597%; height: 41.111%; }
  .vm-kv__img--c { left: 28.469%; top: 5%;       width: 11.667%; height: 41.111%; }
  .vm-kv__img--d { left: 42.636%; top: 0%;       width: 28.819%; height: 100%; }
  .vm-kv__img--e { left: 71.317%; top: 0%;       width: 28.75%;  height: 100%; }
  .vm-kv__img--f { left: 0%;      top: 51.111%;  width: 14.167%; height: 49.306%; }
  .vm-kv__img--g { left: 14.164%; top: 51.111%;  width: 14.236%; height: 49.306%; }
  .vm-kv__img--h { left: 28.400%; top: 51.111%;  width: 14.236%; height: 49.306%; }
  .vm-kv__title {
    left: 55.64%;
    top: 29.93%;
    width: 31.42%;
    height: auto;
  }
}

/* ---------- 本文 ----------
   PCはKV固定＋右カラムではなく、Figma通りKVの下にフルワイドで縦積み。 */
.vm-main { width: 100%; }
@media only screen and (min-width: 740px) {
  .vm-main {
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
  }
}

/* スクロールフェード（JSでis-inを付与。JSはサーバーへ直接アップロードした
   assets/js/script.js を <script src> で読み込む方式に変更したため復活） */
.vm-fade {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.vm-fade.is-in { opacity: 1; transform: translateY(0); }

/* ---------- リード文 ---------- */
.vm-lead {
  padding: 60px 24px 50px;
  text-align: center;
}
/* 本番CMSは#sec01を包む.article自身が「.article p { margin: ... }」のような
   デフォルトの段落マージン(約1em、ブラウザ標準に近い値)を持っており、これが
   クラス単体セレクタ(специfic 0,1,0)より詳細度で勝ってしまい、こちらのmarginを
   無視して上書きしてくる（EMOTIONAL MODE等の見出しの上下が意図せず広くなる
   原因）。以下、pタグに実際に使っている見出し・本文系クラスは全てp要素を
   セレクタに含め(詳細度0,1,1)、確実にこちらが勝つようにしている */
p.vm-lead__text {
  margin: 0 0 40px;
  font-size: 11px; /* Figma実測(SP)10pxから+1px(ユーザー指定) */
  line-height: 2;
}
p.vm-lead__heading {
  /* Figma実測：Instrument Serif Regular・斜体ではなく通常体 */
  margin: 0 0 8px;
  font-family: var(--vm-serif);
  font-style: normal;
  font-size: 40px;
  line-height: 1;
}
p.vm-lead__subheading {
  margin: 0 0 28px;
  font-size: 14px; /* Figma実測(SP) */
  line-height: 1.4286;
  color: var(--vm-black); /* Figma実測：グレーではなく黒 */
}
.vm-lead__arrow {
  margin: 8px auto 32px;
  width: 60px;
  height: 12px;
  color: var(--vm-black);
}
.vm-lead__arrow svg { display: block; width: 100%; height: 100%; }
p.vm-lead__key-items {
  /* Figma実測：Instrument Serif Regular・通常体。罫線はなし、
     マージンは上下均等 */
  margin: 20px 0;
  font-family: var(--vm-serif);
  font-style: normal;
  font-size: 20px;
  line-height: 1;
}
.vm-lead__ticker {
  /* Figma実測：罫線はなし（以前誤って追加していたのを削除） */
  overflow: hidden;
  white-space: nowrap;
  padding: 10px 0;
}
.vm-lead__ticker p {
  /* Figma実測：Noto Sans JPではなくInstrument Serif */
  margin: 0 0 8px; /* ユーザー指定：行間が狭かったので開ける */
  font-family: var(--vm-serif);
  font-size: 12px;
  line-height: 1;
}
.vm-lead__ticker p:last-child { margin-bottom: 0; }

@media only screen and (min-width: 740px) {
  /* Figma実測：KV下122pxの余白、readフレーム幅538px（中央寄せ）。
     .vm-leadは538px固定幅のボックス（ビューポートが広がっても538pxのまま
     伸びない）なので、中の文字サイズもvw基準のfluidにせず、Figmaで実測した
     PC本来の値をそのまま固定値として使う。以前はvw基準のclampだったため、
     実際のコンテナ幅(538px)を無視してブラウザの画面幅に応じて際限なく
     大きくなり続け、「PCのリード文が大きすぎる」原因になっていた */
  .vm-lead {
    max-width: 538px;
    margin: 0 auto;
    padding: 122px 0 63px;
  }
  p.vm-lead__text { font-size: 13.795px; margin-bottom: 50px; }
  p.vm-lead__heading { font-size: 55.179px; }
  p.vm-lead__subheading { font-size: 19.313px; margin-bottom: 35px; }
  p.vm-lead__key-items { font-size: 27.59px; }
  .vm-lead__ticker p { font-size: 16.554px; margin-bottom: 10px; }
}

/* ---------- LOOK ---------- */
/* ユーザー指定：LOOKの切り替わりが分かりやすいよう、従来の下余白(40px)から+100pxして140pxに */
.vm-look { position: relative; padding: 0 0 140px; }

.vm-look__hero {
  /* overflow:hiddenは物撮り写真専用の.vm-look__hero-photoに移動。
     ここに付けたままだと、写真の左端からはみ出す位置にあるThe Outerラベルまで
     クリップされて「サイズ・位置がおかしい」状態になってしまうため分離した */
  position: relative;
  width: 82.63%;
  aspect-ratio: 324.734 / 407;
  margin: 73px auto 0; /* Figma実測(SP, LOOK1フレーム先頭から)：73px */
}
.vm-look__hero-photo {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.vm-look__hero-photo img { width: 100%; height: 100%; object-fit: cover; }
/* 手描き風「The Outer」ロゴはFigma書き出しのSVG(look01-hero-label.svg)を使用。
   ベクターパス自体がすでに回転済みの形状で書き出されているため、CSS側で
   さらにrotateをかけると二重回転になる。フォント再現ではなくSVGそのものなので
   フォント指定は不要（幅のみ指定し、SVG自体の縦横比を保つ）。
   ※位置について：get_metadataが返す座標は回転ノードの単純なAABB原点で、
   実装用の正しい原点とはズレがあった（get_design_contextで実装用の
   left/top/width/heightを取得し直して判明）。物撮り写真の「上」に大きくはみ出す
   位置が正しく、top はマイナス値になる */
.vm-look__hero-label {
  position: absolute;
  top: -13.76%; /* Figma実測(SP)：物撮りの上端よりさらに上 */
  left: -2.71%;
  width: 58.83%; /* Figma実測(SP)：物撮り幅に対する比率 */
  margin: 0;
  pointer-events: none;
}

/* ---------- LOOK2〜13 個別調整(SPのみ) ----------
   PCレイアウトはLOOK1のテンプレをそのまま流用する方針(ユーザー確認済み。
   LOOK2〜13のPC個別デザインは未着手のため)。よってPC版の.vm-look__hero-labelは
   LOOK1の値を全LOOK共通で使い続け、ここでは上書きしない。
   SPのみ、Figma get_design_context実測に基づき、hero-labelの位置をLOOKごとに
   個別指定する（.vm-look--NNの修飾クラスで上書き。index.html側の<section>に
   付与している）。 */
@media (max-width: 739px) {
  /* LOOK2〜8：「The Outer」ラベル（look01-hero-label.svgを共通再利用。
     ユーザー確認済み：「The Outerはダミーじゃなくて正しいもの」）。
     物撮り(Frame10)の上端よりさらに上にはみ出す配置(LOOK1と同じ考え方)で、
     位置のみLOOKごとに微妙に異なる。 */
  .vm-look--02 .vm-look__hero-label { top: -15.72%; left: -6.05%; width: 60.83%; }
  .vm-look--03 .vm-look__hero-label { top: -17.94%; left: -6.05%; width: 60.83%; }
  .vm-look--04 .vm-look__hero-label { top: -17.94%; left: -6.05%; width: 60.83%; }
  .vm-look--05 .vm-look__hero-label { top: -15.72%; left: -6.05%; width: 60.83%; }
  .vm-look--06 .vm-look__hero-label { top: -14.99%; left: -5.74%; width: 60.83%; }
  .vm-look--07 .vm-look__hero-label { top: -15.97%; left: -5.74%; width: 60.83%; }
  .vm-look--08 .vm-look__hero-label { top: -15.72%; left: -4.82%; width: 60.83%; }

  /* LOOK9〜13：固有の手書きラベル(New Blouse.../Dramatic Black等)を使用。
     Figma実測では物撮りの「下」にはみ出す配置になり(LOOK1〜8の「上」はみ出しとは逆)、
     かつ物撮り(Frame10)自体がLOOKフレーム先頭から余白なしで始まる
     (margin-top:73px→0px)点もLOOK1〜8と異なる。 */
  .vm-look--09 .vm-look__hero,
  .vm-look--10 .vm-look__hero,
  .vm-look--11 .vm-look__hero,
  .vm-look--13 .vm-look__hero { margin-top: 0; }

  .vm-look--09 .vm-look__hero-label { top: 82.48%; left: -4.40%; width: 109.41%; }
  .vm-look--10 .vm-look__hero-label { top: 94.59%; left: 21.67%; width: 83.74%; }
  .vm-look--11 .vm-look__hero-label { top: 94.15%; left: 18.03%; width: 90.72%; }
  .vm-look--13 .vm-look__hero-label { top: 96.5%; left: 13.54%; width: 100%; z-index: 1; } /* ユーザー指定のスクショで指定された位置に合わせ再調整。hero(834px)の下端から.vm-look__stylesまでの余白(80px、キャプション非表示のため実質の間隔)の中央に、ラベルの中心が来るように計算(上の物撮りにも下のスタイル画像にも少しかかるように) */

  /* LOOK9〜13の手書きラベルは物撮りの「下」にはみ出す配置のため、そのままだと
     ラベル自体の見た目の高さがキャプション文（ダミーです。名品ファージレの…）に
     重なってしまう(get_design_contextでFigma実測：Frame10終端407pxからキャプション
     開始500pxまで93px、LOOK13は2枚重ねの終端834pxからキャプション開始948pxまで
     114pxの間隔がFigma上でも確保されている)。同じ間隔をキャプション側の上余白として
     確保し、ラベルとキャプション文が重ならないようにする */
  .vm-look--09 .vm-look__caption,
  .vm-look--10 .vm-look__caption,
  .vm-look--11 .vm-look__caption { padding-top: 93px; }
  .vm-look--13 .vm-look__caption { padding-top: 114px; }

  /* LOOK13のみ、物撮りが縦に2枚連続する(Figma実測：1枚目0〜407px、
     20pxの間隔をはさみ2枚目427〜834px、合計834px)。.vm-look__heroの縦横比を
     2枚分に拡張し、1枚目をheight 48.8%(407/834)に制限、2枚目を専用クラスで
     下側51.2%(427/834)の位置に重ねて配置する。 */
  /* SPでフッター直前だけ余白が目立って残っていた原因：.vm-lookの下余白140px
     （LOOK同士の区切り用）がLOOK13にもそのままかかっており、フッター自身の
     margin-topを0にしても、LOOK13自体の下パディングが余白として見えていた。
     最後のLOOKだけは次がフッターなので下余白は不要にする */
  .vm-look--13 { padding-bottom: 0; }
  /* 手書き文字ラベルがheroの下端をはみ出して.vm-look__styles側に重なる配置のため、
     hero側に z-index を明示してスタッキングコンテキストごと前面に出す。
     ラベル単体にz-indexを付けるだけでは、DOM順で後にくる.vm-look__styles
     (スタイル画像)の方が上に描画されてしまい、ラベルが画像の下に隠れてしまっていた */
  .vm-look--13 .vm-look__hero { aspect-ratio: 324.734 / 834; position: relative; z-index: 2; }
  .vm-look--13 .vm-look__hero-photo {
    inset: auto;
    top: 0;
    left: 0;
    width: 100%;
    height: 48.8%;
  }
  .vm-look--13 .vm-look__hero-photo--2 {
    position: absolute;
    top: 51.2%;
    left: 0;
    width: 100%;
    height: 48.8%;
    overflow: hidden;
  }
  .vm-look--13 .vm-look__hero-photo--2 img { width: 100%; height: 100%; object-fit: cover; }
}

.vm-look__caption {
  padding: 20px 50px 0; /* Figma実測(SP)：左右50px、物撮り下から約20px */
  text-align: center; /* Figma実測：SPも中央揃え */
}
/* LOOK13は商品データ未登録のため、ユーザー指定により手書き文字下の
   見出しテキスト(vm-look__caption-text)とクレジット行を両方非表示にする。
   HTMLの中身はダミーのまま残し、品番が確定したらこのルールを外せば復活する */
.vm-look--13 .vm-look__caption { display: none; }
p.vm-look__caption-text {
  margin: 0 0 10px;
  font-size: 14px; /* Figma実測20px→-4px→さらに-2px(ユーザー指定：改行を減らすため) */
  line-height: 1.35;
}
p.vm-look__credit-line {
  position: relative;
  margin: 0;
  font-size: 11px; /* さらに-1px(ユーザー指定) */
  letter-spacing: -0.04em; /* ユーザー指定：文字間を-4%程度に */
  line-height: 2.25; /* Figma実測(SP) */
  font-family: var(--vm-condensed); /* ユーザー指定：1行に収めるためコンデンスド書体に変更 */
}
/* Figma実測：[ BUY ]は右寄せではなく、価格の直後に続くインラインテキスト
   （SPで右寄せになっていたのは誤り） */
.vm-look__buy {
  font-weight: 700;
}
.vm-look__buy a { text-decoration: underline; } /* Figma実測：BUYには下線 */

.vm-look__styles {
  display: flex;
  flex-direction: column;
  gap: 0; /* Figma実測(SP)：style1/style2は隙間なく連続 */
  margin-top: 80px; /* Figma実測(SP)：キャプション下から80px */
  /* Figma実測：SPのスタイル1/2はKVと同じく画面幅いっぱいのフルブリード。
     本番CMSの記事コンテナは実機の画面幅より広い場合があり、%指定だけでは
     追従しないケースがあったため、KVと同じ手法でビューポート基準の100vwに
     逃がして確実に画面端まで届かせる */
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
@media only screen and (min-width: 740px) {
  /* Figma実測（1440px幅Desktopフレーム, LOOK01基準）：
     ・物撮り(Frame10) 幅452.81px、中央寄せ、LOOK先頭から上余白105.69px
     ・キャプション 幅412.74px、中央寄せ、物撮りの下 約28px
     ・スタイル1+2(Frame11/12) 合計幅1130px(各548px、間34px)、中央寄せ
     いずれも実際のコンテナ(#sec01・記事エリア)の上限は982px程度で、1440pxの
     ビューポートを基準にしたvw fluidにする意味がない（コンテナが伸びない以上、
     画面幅だけに反応するvwは実寸を無視して際限なく拡大してしまう）ため、
     Figma実測値をそのまま固定pxとして使用する */
  /* ユーザー指定：LOOKの切り替わりが分かりやすいよう+100pxの下余白を追加 */
  .vm-look { max-width: 1440px; margin: 0 auto; padding: 0 40px 100px; }

  .vm-look__hero {
    width: 452.81px;
    aspect-ratio: 452.81 / 567.52;
    margin-top: 105.69px;
  }
  .vm-look__hero-label {
    /* Figma実測(PC Desktopフレーム, Frame10基準)：top -11.63%・left -6.18%・幅60.51% */
    top: -11.63%;
    left: -6.18%;
    width: 60.51%;
  }

  /* LOOK9・10・11：PC個別デザイン未着手のため、PCではLOOK1のテンプレ(1枚物撮り)に
     揃える。 */
  .vm-look--09 .vm-look__hero,
  .vm-look--10 .vm-look__hero,
  .vm-look--11 .vm-look__hero {
    margin-top: 105.69px;
    aspect-ratio: 452.81 / 567.52;
  }
  /* LOOK9・10・11・13：手書きラベルは物撮りの「下」にはみ出す配置(SPと同じ考え方)。
     PC個別のFigma実測値は無いが、hero幅がSP(324.734px)→PC(452.81px)へ均一倍率で
     拡大されているだけなので、SPと同じ%値がそのまま使える。無指定のままだと
     LOOK1〜8共通の「上」はみ出し用の値が効いてしまい、ラベルが上に来てしまうバグが
     あったため、SPと同じ値でLOOK単位に上書きする */
  .vm-look--09 .vm-look__hero-label { top: 82.48%; left: -4.40%; width: 109.41%; }
  .vm-look--10 .vm-look__hero-label { top: 94.59%; left: 21.67%; width: 83.74%; }
  .vm-look--11 .vm-look__hero-label { top: 94.15%; left: 18.03%; width: 90.72%; }
  .vm-look--13 .vm-look__hero-label { top: 96.5%; left: 13.54%; width: 100%; z-index: 1; } /* ユーザー指定のスクショで指定された位置に合わせ再調整。hero(1163px)の下端から.vm-look__styles(margin-top:111.2px、キャプション非表示のため実質の間隔)までの中央にラベル中心が来るよう計算 */
  /* LOOK9・10・11：ラベルがキャプション文に重なるバグをSPと同じ考え方で解消
     （hero幅と同じ倍率でSPの93px間隔をスケール：93px÷407px×567.52px≒129.7px） */
  .vm-look--09 .vm-look__caption,
  .vm-look--10 .vm-look__caption,
  .vm-look--11 .vm-look__caption {
    margin-top: 129.7px;
  }

  /* LOOK13：ユーザー指定によりPCも物撮り2枚重ねをSPと同じレイアウトで維持する
     （以前はPC個別デザイン未着手を理由に1枚に統合していたが、2枚のままにしてほしい
     という指示のため撤回）。SPのアスペクト比(324.734/834)をhero幅の拡大率
     (452.81÷324.734＝1.3944倍)でそのままスケールして高さを算出。 */
  .vm-look--13 .vm-look__hero {
    width: 452.81px;
    aspect-ratio: 452.81 / 1163.0;
    margin-top: 105.69px;
    position: relative;
    z-index: 2; /* SPと同じ理由：ラベルが.vm-look__styles(スタイル画像)の下に隠れるのを防ぐ */
  }
  .vm-look--13 .vm-look__hero-photo {
    position: absolute;
    inset: auto;
    top: 0;
    left: 0;
    width: 100%;
    height: 48.8%;
    overflow: hidden;
  }
  .vm-look--13 .vm-look__hero-photo img { width: 100%; height: 100%; object-fit: cover; }
  .vm-look--13 .vm-look__hero-photo--2 {
    display: block;
    position: absolute;
    top: 51.2%;
    left: 0;
    width: 100%;
    height: 48.8%;
    overflow: hidden;
  }
  .vm-look--13 .vm-look__hero-photo--2 img { width: 100%; height: 100%; object-fit: cover; }
  /* LOOK13：SPと同じ考え方でキャプション文との重なりを解消
     （SPの114px間隔をhero拡大率でスケール：114px÷834px×1163.0px≒158.9px） */
  .vm-look--13 .vm-look__caption {
    margin-top: 158.9px;
  }

  .vm-look__caption {
    max-width: 412.74px;
    margin: 28px auto 0;
    padding: 0;
    text-align: center;
  }
  p.vm-look__caption-text { font-size: 19.888px; line-height: 1.35; } /* ユーザー指定：PCではまだ大きすぎるためさらに-4px(27.888→23.888→19.888) */
  p.vm-look__credit-line {
    font-size: 16.733px;
    line-height: 2.25;
  }

  .vm-look__styles {
    /* PCではフルブリードせず、通常通り.vm-look内で中央寄せ表示に戻す */
    width: auto;
    position: static;
    left: auto;
    right: auto;
    flex-direction: row;
    gap: 34px;
    max-width: 1130px;
    margin: 111.2px auto 0;
  }
  .vm-look__style { width: auto; flex: 1 1 0; }
}

/* ---------- LOOK12 専用（Figma実測：他のLOOKと違い「物撮り1枚+style1/2」ではなく
   「2×2の4コーデ紹介グリッド＋4つのスタイルブロック(各スライダー+CREDIT＋)」という
   特殊構成。ユーザー確認済み：4コーデ全部を掲載する。
   グリッド4枚(左上→右上→左下→右下の順)＝style1〜4(4ブロック)の対応する4コーデと同じ順。
   PC個別デザインはFigma未着手のため、SPと同じグリッド比率のまま幅だけ広げて流用。 ---------- */
.vm-look--12 .vm-look__hero { display: none; }

.vm-look--12 .vm-look__grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  /* Figma実測：行間55.135px（4つの画像の外側には余白はなく、上2枚と下2枚の間だけに
     余白があり、そこに手書きラベルが重なるデザイン。以前はrow-gap指定がなく
     画像が隙間なく敷き詰められてラベルと完全に重なってしまっていた） */
  row-gap: 10.03%;
  width: 100%;
  aspect-ratio: 393 / 549.64; /* Figma実測：2行×247.252px+行間(合計549.64px) */
}
.vm-look--12 .vm-look__grid-item { position: relative; overflow: hidden; }
.vm-look--12 .vm-look__grid-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vm-look--12 .vm-look__hero-label {
  /* Figma実測(グリッド全体基準)：top 38.94%・left 26.21%・幅69.44%。
     SP/PCで比率を変えず、幅がそのまま伸縮する形でグリッドと一緒にスケールさせる */
  position: absolute;
  top: 38.94%;
  left: 26.21%;
  width: 69.44%;
  margin: 0;
  pointer-events: none;
  z-index: 1;
}
@media only screen and (min-width: 740px) {
  .vm-look--12 .vm-look__grid { max-width: 700px; margin: 60px auto 0; }
  .vm-look--12 .vm-look__styles { flex-wrap: wrap; }
  .vm-look--12 .vm-look__style { flex: 1 1 calc(50% - 17px); }
}

/* ---------- スタイリング画像 ＋ CREDIT＋モーダル ----------
   JSをサーバーへ直接アップロード(script src読み込み)する方式にしたため、
   BAYCREW'S本番(参照: 18252)と同じクリックトグルの挙動に戻した。
   .vm-popup をクリック → .on をトグル → .vm-pop-con が表示され、
   :before の文言も CREDIT＋ ⇄ CREDITー に切り替わる（リンク上のクリックは無効）。
   トグル処理は assets/js/script.js 側で実装。 ---------- */
.vm-look__style {
  position: relative;
  overflow: hidden;
  /* モーダル内の文字・余白をコンテナクエリ(cqw)で実寸連動にするための基準。
     PCではこのボックスの実際の幅がflexレイアウトで決まり、Figmaの548px基準
     どおりにはならない（記事コンテナの上限幅の影響を受けて縮む）ため、
     ビューポート基準のvwでは実際の箱のサイズを無視して文字が大きくなりすぎる
     バグがあった。cqwならこの.vm-look__style自身の実測幅に対する比率になるので、
     箱がどんな幅になっても常にFigma通りの比率を保てる */
  container-type: inline-size;
}
.vm-look__style-img { display: block; }
.vm-look__style-img img { width: 100%; }

/* style1・style2 とも Figma上「スライダーあり」指定のため、3枚をクロスフェードで
   自動切り替え（KVスライダーと同じ構造）。Frame11/Frame12実測は393x524(SP)/
   548x730.667(PC)でどちらも縦横比が約393:524(≒3:4)で共通のため、aspect-ratioで
   固定してスライドを重ねる */
.vm-style-slider {
  position: relative;
  aspect-ratio: 393 / 524;
  overflow: hidden;
}
.vm-style-slide {
  opacity: 0;
  transition: opacity 1s ease;
}
.vm-style-slide.is-active {
  opacity: 1;
  position: relative;
}
.vm-style-slide:not(.is-active) {
  position: absolute;
  inset: 0;
}
.vm-style-slide,
.vm-style-slide img {
  width: 100%;
  height: 100%;
}
.vm-style-slide img { object-fit: cover; display: block; }

.vm-popup {
  cursor: pointer;
}
/* ---- モーダル内のサイズ・余白はすべてコンテナクエリ単位(cqw)で指定 ----
   基準は.vm-look__style（＝.vm-popupの親、container-type:inline-size指定済み）の
   実測幅。Figma実測(393x524のモーダル実寸フレーム基準)のpx値を
   「px ÷ 393 × 100cqw」で換算している。SP・PCで別のブレークポイントを作らず
   単一のルールで済ませられるうえ、実際のボックス幅がFigmaの想定(393px/548px)と
   ズレても常に正しい比率を保てる。
   以前はSP＝固定px、PC＝ビューポート基準のvw clampという2本立てだったが、
   PC側は「.vm-popupの実際の幅」ではなく「ブラウザの画面幅」に反応していたため、
   本番CMS上でモーダルが記事コンテナの制約で548pxより狭くなった際に文字が
   実寸を無視して大きくなりすぎるバグがあった。 */
.vm-popup::before {
  /* Figma実測：Instrument Serif Regular・イタリックではなく通常体、12px(393px幅基準) */
  content: "CREDIT＋";
  font-family: var(--vm-serif);
  font-style: normal;
  font-size: 3.0534cqw;
  position: absolute;
  z-index: 4;
  right: 2.0356cqw;
  bottom: 2.0356cqw;
  color: var(--vm-white);
}
.vm-popup.on::before {
  content: "CLOSEー"; /* ユーザー指定：閉じるボタンのテキストをCREDITからCLOSEに変更 */
}

/* Figma実測（393x524のモーダル実寸フレーム基準。バリアント2＝CREDIT展開状態）：
   左右パディング30px、上パディング19px、見出しは上揃え、見出し14px・太字・
   行送り40px、本文12px・行間1.5、本文の実際に見えている文字の下からhrまで12px、
   hr色は白ではなく#d9d9d9、hrから商品テンプレまで12px */
.vm-pop-con {
  position: absolute;
  inset: 0;
  z-index: 3;
  padding: 4.8346cqw 7.6336cqw 6.1069cqw;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: rgba(26,26,26,0.82);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  overflow-y: auto;
}
.vm-popup.on .vm-pop-con {
  opacity: 1;
  pointer-events: auto;
}
.vm-pop-con * { color: var(--vm-white); }
p.vm-pop-con__title {
  margin: 0;
  font-size: 3.5623cqw;
  font-weight: 700;
  line-height: 10.1781cqw;
}
p.vm-pop-con__text {
  margin: 0 0 3.0534cqw;
  font-size: 3.0534cqw;
  line-height: 1.5;
}
.vm-pop-con hr {
  margin: 0 0 1.5267cqw; /* Figma実測は3.0534cqwだが、本番では実際に注入される商品テンプレ
    自身がさらに独自の上余白を持っており合算されると開きすぎるため、半分に詰めている */
  border: none;
  border-top: 1px solid #d9d9d9; /* Figma実測：白の半透明ではなく#d9d9d9 */
}
/* 本番でCMSが商品テンプレ(.product > .ref-item)を自動注入する際、そのテンプレ自身が
   独自の上余白(padding/margin-top)を持っており、上のhrのmargin-bottomと合算されて
   罫線とクレジットの間が開きすぎて見える原因になっていた。テンプレ側の余白を
   強制的に0にし、間隔はこちら側(hrのmargin-bottom)だけで一元管理する */
.vm-pop-con .product {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.vm-pop-con .product .ref-item:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* #pcon-lookXX-Y は本番と同じく空のプレースホルダー。CMSで品番登録後、secXXブロックが
   ここにappendToされてBAYCREW'S標準の商品テンプレ構造(.product > .ref-item >
   .thumb/.brand/.name/.price)が自動的に表示される。以前は存在しない#bc-tmplという
   IDを起点にセレクタを組んでいたため、本番では一切上書きが効いていなかった
   （サムネが正方形にならない・行間が本来より広い、の直接の原因）。実際のDOM構造に
   合わせてID指定なしのセレクタに修正し、cqwで実寸連動にした */
.vm-pop-con .product .ref-item {
  margin-bottom: 2.5445cqw !important; /* Figma実測：行間70px(サムネ60px+余白10px) */
  min-height: 15.2672cqw !important;
}
.vm-pop-con .product .ref-item .thumb {
  width: 15.2672cqw !important;
  height: 15.2672cqw !important;
}
.vm-pop-con .product .ref-item .thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.vm-pop-con .product .ref-item .brand,
.vm-pop-con .product .ref-item .name,
.vm-pop-con .product .ref-item .price {
  width: calc(100% - 19.3384cqw) !important;
  margin-left: 19.3384cqw !important;
  font-family: var(--vm-sans) !important;
}

/* 商品テンプレートの下に入る英語／日本語混在のダミーテキスト。Figma上、商品テンプレの
   行数分（3行）繰り返して入るため.vm-pop-con__noteをHTML側で3つ配置している */
p.vm-pop-con__note {
  margin: 0 0 1.2723cqw; /* Figma実測：各行の間隔5px */
  font-size: 3.0534cqw;
  line-height: 1.5;
}
p.vm-pop-con__note:first-of-type {
  margin-top: 2.5445cqw; /* Figma実測：商品テンプレ最終行からの間隔 */
}
p.vm-pop-con__note:last-of-type {
  margin-bottom: 0;
}

/* ---------- フッター ----------
   Figma実測：SP(node 2052:456, 510×680・背景写真は左右にはみ出すフルブリード)、
   PC(node 2052:501, 1440×940・写真は左側大きく、テキスト類は右寄せ)。
   背景写真(footer-sp.jpg/footer-pc.jpg)は既に可視領域と同じ縦横比で書き出し済みのため
   そのままobject-fit:coverで敷くだけでよい。グレーの半透明オーバーレイ(#d9d9d9・
   mix-blend-mode:multiply)を上に重ねてFigma通りのトーンに合わせている。
   SP側のテキスト類はほぼ中央揃えのため、フルブリードの写真とは別に通常の中央寄せで
   実装(写真だけ100vwブレイクアウト、テキストは.vm-footer__innerで393px基準に配置)。 ---------- */
.vm-footer {
  /* overflow:hiddenを付けていたせいで、下の.vm-footer__bgが100vwブレイクアウトで
     意図的にはみ出させている部分まで一緒にクリップされ、本番の記事コンテナ幅(982px)
     の内側で背景写真が切れて見えていた（画面端まで届かない不具合の原因）。
     KV・style1/2と同じブレイクアウト手法なのでここも overflow:hidden を外す */
  position: relative;
  /* ユーザー指定：LOOK最後尾の下余白(140px)だけで十分なため、フッター自身の
     上マージンは廃止（以前は80px追加していたが、直前のLOOK下余白と合わさって
     不要に大きな空白になっていた） */
  margin-top: 0;
}
.vm-footer__bg {
  position: relative;
  overflow: hidden; /* クロップは自分自身の箱の中だけで完結させる（親には付けない） */
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  /* 実機で確認：本番CDNに実際にデプロイされているfooter-sp.jpg(assets26)の
     naturalWidth/naturalHeightをブラウザで直接計測したところ1179×2040(比率0.578)だった。
     これまでCSSでは510/680(比率0.75)と仮定しており、実ファイルとズレていたため
     object-fit:coverで上下が約23%も余分にクロップされていた
     （ユーザー指摘「スマホ実機で上下が少しトリミングされて見える」の原因はこれ）。
     ローカルのassets/img/footer-sp.jpgは別の解像度(2044×2720)の古い/別バージョンの
     ファイルで、実際にはCDNへ反映されていなかった。実際にデプロイされている
     1179/2040に合わせて修正 */
  aspect-ratio: 1179 / 2040;
}
.vm-footer__bg img {
  width: 100%; height: 100%; object-fit: contain; display: block;
  object-position: top; /* 万一比率がズレても上下が切れないようcontainに変更(ユーザー指定) */
}
.vm-footer__inner {
  /* 本番実機で判明：本番の記事コンテナは#sec01のmax-width解除後も実際には約982px
     までしか広がらない（BAYCREW'S共通テーマ側の制約）。.vm-footer__bg（背景写真）は
     100vwブレイクアウトでビューポート全幅まで広がっているのに対し、
     .vm-footer__innerはmax-width:393px/1440px＋margin:0 autoで「.vm-footer(982px)の
     中で中央寄せ」されていたため、実際には写真とテキスト類の中心がズレて
     「センターで揃っていない」ように見えていた。.vm-footer__bgと同じ
     100vwブレイクアウトに変更し、常に写真と同じ基準（ビューポート幅）で
     中央揃えされるようにする */
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  /* .vm-footer__bgと同じ比率で高さを確定させる。中の要素はすべてposition:absoluteで
     top:XX%指定のため、高さが決まらないと(auto→0扱い)全要素が上端に潰れてしまう
     （実機で発生した「フッターの情報が崩れる」不具合の直接原因）。
     .vm-footer__bgの比率修正(実機計測1179/2040)に合わせてこちらも同じ値にする */
  aspect-ratio: 1179 / 2040;
  transform: translateX(-50%);
}
.vm-footer__logo {
  position: absolute;
  top: 46.76%; /* Figma実測(SP)：318/680 */
  left: 50%;
  transform: translateX(-50%);
  width: 36.39%; /* Figma実測(SP)：143/393 */
  height: auto;
}
p.vm-footer__credit {
  position: absolute;
  top: 58.82%; /* Figma実測(SP)：400/680 */
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  width: 100%;
  text-align: center;
  color: #fff;
  font-family: var(--vm-serif); /* Figma実測：Instrument Serif（無指定だと.vm-wrap既定のNoto Sans JPになってしまっていた） */
  font-size: 12px;
  line-height: 1.78;
  white-space: nowrap;
}
.vm-footer__top {
  position: absolute;
  top: 76%; /* Figma実測489/680=71.91%から、ユーザー指定で上下マージンを広げるため下げた */
  left: 50%;
  transform: translateX(-50%);
  width: 10.18%; /* Figma実測(SP)：40/393 */
}
.vm-footer__top img { width: 100%; height: auto; display: block; }
.vm-footer__nav {
  position: absolute;
  top: 86%; /* Figma実測543/680=79.85%から、ユーザー指定でTOPリンクとの間を広げるため下げた */
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
.vm-footer__nav ul {
  display: flex;
  justify-content: center;
  gap: 0 12px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* PCでBRAND SITEの後だけ改行させるための専用スペーサー要素(HTML側でBRAND SITEと
   INSTAGRAMの間に追加)。SPでは不要なので非表示、PCのみflex-basis:100%で改行させる */
.vm-footer__nav-break { display: none; }
.vm-footer__nav a {
  color: #fff;
  font-family: var(--vm-serif); /* Figma実測：Instrument Serif（フォント未指定でNoto Sans JPになっていたバグを修正） */
  font-size: 14px;
  text-decoration: underline;
  white-space: nowrap;
}
p.vm-footer__copyright {
  position: absolute;
  top: 93.53%; /* Figma実測(SP)：636/680 */
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  width: 100%;
  text-align: center;
  color: #fff;
  font-family: var(--vm-serif); /* Figma実測：Instrument Serif */
  font-size: 10px;
  white-space: nowrap;
}

@media only screen and (min-width: 740px) {
  /* PCはFigma実測(node 2052:501, 1440×940)通り、写真が左側に大きく、
     テキスト類は右寄せ配置になる（SPの中央揃えとはレイアウトが異なる） */
  .vm-footer { margin-top: 0; }
  .vm-footer__bg { aspect-ratio: 1440 / 940; }
  /* .vm-footer__innerはSPと同じ100vwブレイクアウトのままでよい（max-width指定は撤去）。
     中の要素は%指定のため、ビューポート幅が変わっても写真と同じ基準で追従する */
  .vm-footer__inner { aspect-ratio: 1440 / 940; }
  .vm-footer__logo {
    top: 28.62%; left: 72.45%; width: 11.65%; transform: none;
  }
  p.vm-footer__credit {
    top: 38.85%; left: 78.31%; width: auto; transform: translateX(-50%);
    font-size: 14.082px;
  }
  .vm-footer__top {
    /* Figma実測やり直し：TOPリンク(矢印+文字)の中心は1127.76/1440=78.31%で、
       ロゴ・クレジット・ナビ(すべて約78.3%)と同じ中心線上にある。以前は76.68%になっており
       この1要素だけ約1.6%(23px)左にズレていたため「センターで揃っていない」ように見えていた。
       topはユーザー指定で上下マージンを広げるため49.97%→54%に変更 */
    top: 54%; left: 78.31%; width: 3.26%; transform: translateX(-50%);
  }
  .vm-footer__nav {
    /* ユーザー指定でTOPリンクとの間を広げるため56.71%→63%に変更 */
    top: 63%; left: 78.33%; width: auto; transform: translateX(-50%);
  }
  .vm-footer__nav a { font-size: 16.429px; }
  /* ユーザー指定：PCのフッターナビはBRAND SITEの後で改行
     (1行目 ONLINE STORE/BRAND SITE、2行目 INSTAGRAM/SHOP LIST)。
     前回、li(INSTAGRAM)自体をdisplay:blockにする方法を試したが、インライン/ブロックの
     アノニマスボックス分割により「INSTAGRAM」と「SHOP LIST」の間にも改行が入ってしまい
     3行になるバグがあった。flexレイアウトのまま、BRAND SITEとINSTAGRAMの間に挿入した
     専用スペーサー(.vm-footer__nav-break、HTML側でaria-hidden="true"のliとして追加)に
     flex-basis:100%を与えて改行を作る方式に変更(SPでは非表示のまま) */
  .vm-footer__nav-break { display: block; flex-basis: 100%; height: 0; }
  p.vm-footer__copyright {
    top: 93.09%; left: 91.28%; width: auto; transform: translateX(-50%);
    font-size: 11.735px;
  }
}
