:root {
  --font-en: "Geist", sans-serif;
  --font-ja: "Noto Sans JP", "Hiragino Sans", sans-serif;
  --ink: #262626;            /* ブランド黒 */
  --ink-60: #7c7c7c;
  --ink-40: #a8a8a8;
  --line: #e8e8e8;
  --gray: #f4f4f4;
  --brand: #ea4003;          /* ブランドオレンジ */
  --brand-light: #ff6b2c;
  --line-green: #06c755;
  --ease: cubic-bezier(.25,1,.5,1);
  --bounce: linear(0,.0036,.0146,.0322,.0555,.0838,.1165,.1529,.1926,.235,.2798,.3266,.375,.4248,.4756,.5272,.5793,.6317,.6841,.7364,.7882,.8395,.8901,.9398,.9884,1.0358,1.0817,1.126,1.1235,1.1131,1.0967,1.0766,1.0547,1.0327,1.0119,.9932,.977,.9637,.9533,.9459,.9413,.9393,.9396,.9419,.9458,.951,.9572,.964,.9712,.9784,.9856,.9924,.9986,1.0041,1.0087,1.0124,1.0151,1.0168,1.0176,1.0169,1.0139,1.0097,1.0053,1.0015,.9988,.9974,.9971,.9977,.9988,1);
  --gap: clamp(4.5rem, 6vw + 1.5rem, 7.5rem);
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23n)'/%3E%3C/svg%3E");
  /* 2026-07-15赤ペンFB13: FV下端の波カット高さ。.mvのmask-sizeと.page-cardの
     負のmargin-topで同じ値を共有し、両者が常に完全一致するようにする
     （どちらかだけ変えると波の境界にズレ/隙間が生まれるため必ずこの変数経由で揃える）。 */
  --wave-h: clamp(46px, 6.5vw, 92px);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-ja); color: var(--ink); background: var(--gray);
  line-height: 1.9; font-size: 1rem; font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
a { color: inherit; }

/* ===== ページ背景＝若干グレー・コンテンツは白カードで浮かせる（2026-07-14 FB反映） =====
   MV(オレンジ)〜COMPANYの本文セクション群を1枚の白い角丸カードにまとめて
   グレー地面から浮き上がらせる。.page-cardでラップした範囲だけに適用、他ページの
   .wrap単体使用（幅制御のみ）には影響しない。
   2026-07-15赤ペン#56: NEWS以降は.tail-white（全幅フルブリード白）へ切り出したため
   page-card は COMPANY で終わる。末尾のpadding-bottomは.co-band自身の
   padding-bottomと二重になるため撤去（角丸の内側余白はco-bandが担う）。 */
.page-card {
  background: #fff;
  border-radius: 28px;
  /* 2026-07-15赤ペンFB13: 波SVGオーバーレイ方式（グレー地に格子だけでグレインが
     乗らず色が合わない問題）を廃止し、CSSマスクで.mv自体の下端を波形にくり抜く方式へ。
     マスクで透ける部分に本物の.svc-band背景（格子+グレイン）を見せるため、
     .page-card（=.svc-bandの親）を波の高さぶん負のmargin-topでFVの下へ
     潜り込ませる。.mvはposition:relativeで積み順が常に.page-card（static）より
     手前になるため、オレンジの不透明部分はそのまま.page-cardの上に被さって隠し、
     マスクで透けた波形部分だけ.page-cardの本物の背景が見える。 */
  margin: calc(-1 * var(--wave-h)) 12px 0;
}
/* 画面幅に応じた自然な改行（対応ブラウザでは文節単位で折り返す） */
h1, h2, h3 { text-wrap: balance; word-break: auto-phrase; }
.hero-head .sub, .about-body p { word-break: auto-phrase; }
.wrap { width: min(92%, 1200px); margin: 0 auto; }
.logo-svg { height: 1.05em; width: auto; display: block; }

/* ===== グレイン共通 ===== */
.grained { position: relative; }
.grained::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain);
  opacity: .08; mix-blend-mode: overlay;
}
.grained > * { position: relative; z-index: 2; }

/* ===== Header（2026-07-15赤ペンFB4: DMJ採用ページ型の「浮いた白い四角バー」に刷新）
   常時ロゴ＋テキストナビ全部＋右端CTAを並べた白バーを、画面上端/左右から
   少し離して浮かせる。影は使わず背景差＋ごく薄いシャドウのみ。MV上でも
   透明化せず常時同じ見た目（スクロール挙動をシンプルにするため.scrolledで
   スタイルは変えない）。PCはハンバーガー不要（テキストナビを全部並べるため）、
   スマホのみハンバーガー表示。 ===== */
header {
  position: fixed; z-index: 100;
  top: clamp(12px, 2vw, 20px); left: clamp(14px, 3vw, 26px); right: clamp(14px, 3vw, 26px);
  display: flex; justify-content: space-between; align-items: center;
  /* 2026-07-15赤ペン#6: 縦幅に余裕を持たせる（9px→16px）。ロゴの見切れ対策も兼ねる */
  padding: 16px clamp(16px, 2.4vw, 24px);
  background: #fff; border-radius: 2px; /* 2026-07-15赤ペン#6: 角丸12px→ほぼ角張り */
  box-shadow: 0 1px 2px rgba(38,38,38,.05), 0 10px 28px -18px rgba(38,38,38,.22);
}
.brand { display: flex; align-items: center; line-height: 1; font-size: 1.25rem; text-decoration: none; color: var(--ink); }
/* ヘッダーのロゴだけ一回り大きく（footerの.brandには影響させないようheaderにスコープ） */
header .brand { font-size: 1.48rem; }
header nav { display: flex; gap: clamp(18px, 2.2vw, 30px); align-items: center; }
/* 2026-07-17赤ペンFB24 #1c: メニュー文字を少し大きく・太く（.8125rem/700→1.0625rem/800）。
   お問い合わせ.ctaは独自ルール(下記)で別途上書きされるためここでは影響しない。 */
header nav a { text-decoration: none; font-family: var(--font-ja); font-weight: 800; font-size: 1.0625rem; letter-spacing: .04em; line-height: 1; transition: opacity .3s; white-space: nowrap; color: var(--ink); }
header nav a:not(.cta):hover { opacity: .5; }
/* PCテキストナビ（ロゴとCTAボタンの間を埋める・DMJ採用ページ参考）。モバイルはハンバーガーのみ */
.hnav-links { display: flex; gap: clamp(18px, 2.2vw, 32px); align-items: center; }
@media (max-width: 900px) { .hnav-links { display: none; } }
/* CTAボタン: 2026-07-17赤ペンFB24 #1b: 枠をもう少し広く+完全な四角に（border-radius: 8px→0） */
header nav a.cta { background: var(--ink); color: #fff; padding: 14px 24px; border-radius: 0; font-weight: 800; font-size: .9375rem; transition: background .3s; display: inline-flex; align-items: center; gap: 8px; }
header nav a.cta::after { content: "→"; font-family: var(--font-en); transition: transform .3s var(--ease); }
header nav a.cta:hover { background: var(--brand); }
header nav a.cta:hover::after { transform: translateX(3px); }

/* ===== Hero（hacomono方式：1枚カード＋傾き作品マーキー） ===== */
.hero {
  position: relative; margin: 12px 12px 0; border-radius: 0 0 22px 22px;
  overflow: hidden;
  background: #edf0f3;
  min-height: min(92svh, 940px);
  display: flex; flex-direction: column; justify-content: space-between;
}
/* スクリム：背景マーキーの上にグレーグラデで h1 可読性を確保 */
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(135deg, rgba(237,240,243,.92) 0%, rgba(237,240,243,.55) 40%, rgba(237,240,243,.15) 70%);
}
/* 左上の白タブ（hacomonoの「ピュッ」）＝固定ヘッダーのロゴの台座になる */
.hero-notch {
  position: absolute; top: 0; left: 0; z-index: 4;
  background: #fff; width: clamp(190px, 22vw, 300px); height: clamp(52px, 7vh, 64px);
  border-bottom-right-radius: 22px;
}
.hero-notch::before, .hero-notch::after {
  content: ""; position: absolute; width: 22px; height: 22px;
  background: radial-gradient(circle at 100% 100%, transparent 22px, #fff 22.5px);
}
.hero-notch::before { top: 0; right: -22px; }
.hero-notch::after { left: 0; bottom: -22px; }

/* 右上の白タブ（ヘッダーCTAボタン台座・左上ノッチと対） */
.hero-notch-r {
  position: absolute; top: 0; right: 0; z-index: 4;
  background: #fff; width: clamp(200px, 17vw, 240px); height: clamp(68px, 9vh, 80px);
  border-bottom-left-radius: 22px;
}
/* タブ左外側上の逆R */
.hero-notch-r::before {
  content: ""; position: absolute; width: 22px; height: 22px;
  background: radial-gradient(circle at 0 100%, transparent 22px, #fff 22.5px);
  top: 0; left: -22px;
}

.hero-head { position: relative; z-index: 4; padding: clamp(96px,13vh,140px) clamp(20px,3.5vw,48px) 0; }
/* コピー優先：1文ずつ文字ギリギリの白箱に載せ、スマホモックより手前に */
.hero-head h1 {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  font-weight: 900; font-size: clamp(1.35rem, 2.2vw, 1.8rem); line-height: 1.5; letter-spacing: -.02em;
  font-feature-settings: "palt" 1;
}
/* 右パディングは「。」の後の空きぶん詰めて左右の見た目を揃える */
.hero-head h1 .hl { display: inline-block; background: #fff; padding: 2px 6px 4px 12px; }
.hero-head h1 .ph { display: inline-block; } /* 文節単位で折り返す */
/* FVコピー: 1行目=小さいラベル調、2行目=極太の主役見出し（DMJ再現v2） */
.hero-head h1 .fv-label { font-size: .58em; font-weight: 700; }
.hero-head h1 .fv-main { font-size: 1.7em; font-weight: 900; }
.mk { background: linear-gradient(transparent 70%, rgba(234,64,3,.22) 70%); padding: 0 .04em; }

/* ===== 白ベタ強調プレート（DMJ移植・汎用）=====
   質感帯/写真帯など「白背景ではない」箇所限定で使う。
   改行ごとに矩形が分かれて見えるよう box-decoration-break: clone を使用。
   白背景セクションでは意味がないため使用しないこと。 */
.plate {
  display: inline;
  background: #fff;
  color: var(--ink);
  padding: .12em .3em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* ===== 背景マーキー（全面・3バンド） ===== */
.hero-bg {
  position: absolute;
  inset: -15% -10%; z-index: 1; pointer-events: none;
  transform: rotate(-6deg);
  display: flex; flex-direction: column; justify-content: space-between; gap: 16px;
  /* 背景はあくまでサブ：薄くグレー地に馴染ませる */
  opacity: .32; filter: saturate(.6);
}
/* 3バンドが均等にhero-bgの全高を分け合い、カードはバンドの高さいっぱいに
   拡大表示する（2026-07-15: 全面表示化。以前はバンドが中央に集まり
   上下に空白ができていた） */
.hb { overflow: hidden; flex: 1 1 0; display: flex; align-items: center; min-height: 0; }
.hb-track { display: flex; align-items: center; gap: 18px; width: max-content; height: 100%; will-change: transform; }
.hb-track-1 { animation: scHalf2 36s linear infinite; }
.hb-track-2 { animation: scHalf2 44s linear infinite reverse; }
.hb-track-3 { animation: scHalf2 52s linear infinite; }
@keyframes scHalf2 { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.hb-card { width: auto; height: 100%; aspect-ratio: 3/4; border-radius: 14px; background-size: cover; background-position: center; flex: none; }
.hb-card.i1 { background-image: url("../assets/hero-1.webp"); }
.hb-card.i2 { background-image: url("../assets/hero-2.webp"); }
.hb-card.i3 { background-image: url("../assets/hero-3.webp"); }
.hb-card.i4 { background-image: url("../assets/hero-4.webp"); }
.hb-card.i5 { background-image: url("../assets/hero-5.webp"); }
.hb-card.i6 { background-image: url("../assets/hero-6.webp"); }
.hb-card.i7 { background-image: url("../assets/hero-7.webp"); }
.hb-card.i8 { background-image: url("../assets/hero-8.webp"); }
.hb-card.i9 { background-image: url("../assets/hero-9.webp"); }
.hb-card.i10 { background-image: url("../assets/hero-10.webp"); }
.hb-card.i11 { background-image: url("../assets/hero-11.webp"); }
.hb-card.i12 { background-image: url("../assets/hero-12.webp"); }
.hb-card.i13 { background-image: url("../assets/hero-13.webp"); }
.hb-card.i14 { background-image: url("../assets/hero-14.webp"); }
.hb-card.i15 { background-image: url("../assets/hero-15.webp"); }
.hb-card.i16 { background-image: url("../assets/hero-16.webp"); }
.hb-card.i17 { background-image: url("../assets/hero-17.webp"); }
.hb-card.i18 { background-image: url("../assets/hero-18.webp"); }
.hb-card.i19 { background-image: url("../assets/hero-19.webp"); }
.hb-card.i20 { background-image: url("../assets/hero-20.webp"); }
.hb-card.i21 { background-image: url("../assets/hero-21.webp"); }
.hb-card.i22 { background-image: url("../assets/hero-22.webp"); }
.hb-card.i23 { background-image: url("../assets/hero-23.webp"); }
.hb-card.i24 { background-image: url("../assets/hero-24.webp"); }
.hb-card.i25 { background-image: url("../assets/hero-25.webp"); }
.hb-card.i26 { background-image: url("../assets/hero-26.webp"); }
.hb-card.i27 { background-image: url("../assets/hero-27.webp"); }
.hb-card.i28 { background-image: url("../assets/hero-28.webp"); }
.hb-card.i29 { background-image: url("../assets/hero-29.webp"); }
.hb-card.i30 { background-image: url("../assets/hero-30.webp"); }
.hb-card.i31 { background-image: url("../assets/hero-31.webp"); }
.hb-card.i32 { background-image: url("../assets/hero-32.webp"); }
.hb-card.i33 { background-image: url("../assets/hero-33.webp"); }
.hb-card.i34 { background-image: url("../assets/hero-34.webp"); }
.hb-card.i35 { background-image: url("../assets/hero-35.webp"); }
.hb-card.i36 { background-image: url("../assets/hero-36.webp"); }

/* ===== スマホモック（中央主役配置・1台） ===== */
.hero-phone {
  position: absolute; z-index: 3;
  left: 50%; top: 53%;
  width: clamp(225px, 18.5vw, 285px); aspect-ratio: 9 / 17.5;
  perspective: 1200px;
  /* 中央配置トランスフォーム（translateのみ。回転は .phone-tilt が持つ） */
  transform: translate(-50%, -50%);
}

/* 傾き＋マウスチルト担当ラッパー */
.phone-tilt {
  width: 100%; height: 100%;
  background: #101010; border-radius: 34px; padding: 9px;
  box-shadow: 0 10px 24px -8px rgba(0,0,0,.3), 0 44px 90px -30px rgba(0,0,0,.45), inset 0 0 0 2px #2c2c2c;
  position: relative;
  transform: rotate(6deg);
  transform-style: preserve-3d;
  /* 登場アニメはここ */
  opacity: 0; animation: phoneFade 1s var(--ease) .5s forwards;
}
/* ダイナミックアイランド */
.phone-tilt::before {
  content: ""; position: absolute; top: 18px; left: 50%; transform: translateX(-50%);
  width: 26%; height: 13px; background: #000; border-radius: 9999px; z-index: 3;
}
@keyframes phoneFade { from { opacity: 0; transform: rotate(6deg) scale(.96); } to { opacity: 1; transform: rotate(6deg) scale(1); } }

.hero-phone .screen, .mv-phone .screen {
  width: 100%; height: 100%; border-radius: 26px; overflow: hidden; background: #000; position: relative;
}
.hero-phone video, .mv-phone video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 下部：実績＋脚注＝右下に白が切れ込むカットアウト（左上ノッチと対） */
.hero-proof {
  position: absolute; right: 0; bottom: 0; z-index: 4;
  background: #fff; border-top-left-radius: 22px;
  padding: 20px 26px 0 34px;
}
.hero-proof::before, .hero-proof::after {
  content: ""; position: absolute; width: 22px; height: 22px;
  background: radial-gradient(circle at 0 0, transparent 22px, #fff 22.5px);
}
.hero-proof::before { top: -22px; right: 0; }
.hero-proof::after { left: -22px; bottom: 0; }
.proof-box { text-align: right; }
.hero-stats { display: flex; justify-content: flex-end; gap: clamp(20px,3vw,44px); }
.stat .num { display: block; font-family: var(--font-en); font-weight: 900; color: var(--ink); line-height: 1; font-size: clamp(1.5rem,2.6vw,2.1rem); letter-spacing: -.02em; }
.stat .num .unit { font-family: var(--font-ja); font-weight: 700; font-size: .45em; color: var(--ink-60); margin-left: 2px; }
.stat .cap { display: block; font-size: .6875rem; letter-spacing: .06em; color: var(--ink-60); margin-top: 5px; }
.hero-note { font-size: .625rem; color: var(--ink-40); line-height: 1.7; margin-top: 10px; }
/* 登場ステージング */
.hero-head, .hero-proof { opacity: 0; transform: translateY(26px); animation: heroRise 1s var(--ease) forwards; }
.hero-head { animation-delay: .1s; }
.hero-proof { animation-delay: .62s; }
@keyframes heroRise { to { opacity: 1; transform: translateY(0); } }

/* ============================================================
   MV（DMJ-JAPAN 実物スクリーンショット忠実再現・2026-07-14）
   支給スクショの構図: 左＝特大ロゴ+英字サービス列+動画枠／
   右＝特大テロップ+罫線+WHO WE ARE+白帯オレンジ見出し+本文+
   パンチライン+締めの特大テロップ／下端＝白の波形カーブ。
   ============================================================ */
/* 2026-07-15赤ペンFB4: ヘッダーはMV上でも常時「浮いた白バー」（透明化しない）
   のため、ロゴ/ナビを白文字にする特殊対応は廃止（ヘッダーは常に白バー＋黒文字で統一）。 */

.mv {
  /* z-index:2 必須: .svc-band等の後続 position:relative 要素(z-index auto)は
     ツリー順で.mvより後に描画され、負マージンで重なる波帯を覆ってしまう
     （直線化事故の原因その2）。 */
  position: relative; z-index: 2; overflow: hidden;
  margin: 0;
  padding-bottom: clamp(50px, 7vw, 90px); /* 波形カーブぶんの余白 */
  background:
    linear-gradient(148deg, #ff8145 0%, #ea4003 34%, #b8330a 72%, #7a2200 100%);
  display: flex; flex-direction: column;
  /* 2026-07-15赤ペンFB13: 下端の波を「グレーの波SVGを上に被せる」から
     「.mv自体をCSSマスクで波形にくり抜く」方式へ変更（青木さん指摘: 波の帯だけ
     色が違って見える問題の根絶）。マスクレイヤーは加算合成(union)なので
     「見せたい領域」だけを不透明で描く2枚構成:
     1枚目=下端の波帯(高さ--wave-h)のうちカーブより上だけ塗った黒シェイプ、
     2枚目=それより上の全面(高さ100%---wave-h+1px、継ぎ目1px重ね)の黒ベタ。
     カーブより下はどのレイヤーにも塗りが無い=透明になり、.page-card
     (=.svc-bandの本物の格子+グレイン背景)がそのまま透けて見える。
     ※「くり抜きたい形を黒で描いて重ねる」方式はmask-composite:subtractが
     必要になり互換性が低いので使わないこと(一度直線化事故あり)。 */
  -webkit-mask-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,40 C1220,4 1040,48 760,26 C420,0 280,100 0,46 Z' fill='%23000'/%3E%3C/svg%3E"),
    linear-gradient(#000, #000);
  mask-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,40 C1220,4 1040,48 760,26 C420,0 280,100 0,46 Z' fill='%23000'/%3E%3C/svg%3E"),
    linear-gradient(#000, #000);
  -webkit-mask-size: 100% var(--wave-h), 100% calc(100% - var(--wave-h) + 1px);
  mask-size: 100% var(--wave-h), 100% calc(100% - var(--wave-h) + 1px);
  -webkit-mask-position: left bottom, left top;
  mask-position: left bottom, left top;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-composite: source-over, source-over;
  mask-composite: add, add;
}
/* 質感: 右上のハイライト＋左下の濃いムラ＋斜めの淡い光条を重ねてDMJの
   「画像っぽい」質感に寄せる（写真ではなくCSSグラデのみ） */
.mv::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background:
    radial-gradient(ellipse 60% 50% at 88% -4%, rgba(255,255,255,.4), transparent 58%),
    radial-gradient(ellipse 55% 45% at 6% 108%, rgba(0,0,0,.4), transparent 62%),
    linear-gradient(115deg, transparent 38%, rgba(255,255,255,.1) 48%, transparent 58%),
    linear-gradient(58deg, transparent 60%, rgba(0,0,0,.14) 72%, transparent 84%);
}
.mv::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain); opacity: .26; mix-blend-mode: overlay;
}
.mv > * { position: relative; z-index: 2; }

/* 背景全面マーキー（旧FVデザインの.hero-bgを流用）: オレンジグラデの下層に
   薄く敷く写真の流れ。グラデ(::before)+グレイン(::after)は写真の上に重なる
   よう、.mv > * の既定z-index:2をここだけ1に落として最背面に固定する。 */
.mv > .hero-bg {
  /* .mv > * が position:relative を後勝ちで上書きしてしまうため、
     絶対配置をここで明示的に取り戻す（さもないと通常フローの子要素になり
     MV全体の高さが暴走する）。 */
  position: absolute;
  z-index: 1;
  opacity: .11; /* 薄く流れている程度に抑える（0.10〜0.16の指定範囲） */
  mix-blend-mode: multiply; /* luminosityより輪郭が沈み、影のように馴染む（試して自然だった方） */
  filter: saturate(.5) brightness(1.3);
}

/* ===== 2カラム本体（2026-07-15赤ペン: シンプル化） =====
   左＝大型スマホ動画のみ／右＝メインテロップのみ。ロゴ・罫線・WHO WE ARE・
   白帯2行・本文3行・パンチライン3行・サブテロップは削除（コピーはSERVICE以降の
   既存セクションでカバー済みのためFVからは撤去）。 */
.mv-body {
  flex: 1; display: flex; flex-direction: row; align-items: center;
  gap: clamp(28px, 4vw, 64px);
  /* 2026-07-15赤ペンFB4: ヘッダーが上端から浮くようになった分、上部の余白を追加確保 */
  padding: clamp(132px, 16vh, 180px) clamp(22px, 3.6vw, 48px) clamp(30px, 4vh, 48px);
}
.mv-left {
  flex: 0 0 auto;
  display: flex; flex-direction: column; justify-content: center;
}
.mv-right {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; justify-content: center;
}
/* 2026-07-15赤ペン#6: スマホモックをもう少し右（中央寄り）に。左の余白を増やす
   2026-07-16 FB20: PCでスマホ筐体と右のテキスト群の間に大きな空白が見える件。
   右ブロックのflex:1(横いっぱい伸長→中身が右端寄せ)をやめてfit-content化し、
   .mv-body全体をjustify-content:centerで「お互いをギュッと中央に寄せる」。
   モバイル(≤900px)はベスト評価のため一切触らない。
   ※このブロックは.mv-right基本ルール(flex:1)より後に置くこと(後勝ち)。 */
@media (min-width: 901px) {
  .mv-left { margin-left: clamp(8px, 2vw, 40px); }
  .mv-body { justify-content: center; }
  .mv-right { flex: 0 1 auto; }
}

/* ---- 左: 縦型スマホモック（大型化・存在感を最優先）----
   旧.hero-phone/.phone-tilt(iPhoneモック・角丸黒フレーム)の見た目を
   そのまま流用し、画面高70%程度のサイズに拡大。
   マウス追従チルトは既存JS（#top内の.phone-tilt を対象）がそのまま効く。 */
.mv-phone {
  align-self: center;
  /* 高さ70vh相当を幅から逆算して指定（flexのクロス軸でheight+aspect-ratioだけだと
     幅が正しく決まらない実装依存の挙動があったため、幅駆動のaspect-ratioに変更） */
  width: calc(70vh * 9 / 17.5); max-width: calc(760px * 9 / 17.5); min-width: calc(420px * 9 / 17.5);
  aspect-ratio: 9 / 17.5;
  perspective: 1200px; /* マウス追従チルト(rotateX/Y)の3D土台。無いとキーストーン状に歪む */
}

/* ---- 右: 特大テロップ（主役・唯一の要素）
   ＝赤ペン指示で縦中央よりやや下へ ---- */
.mv-telop-main {
  width: min(46vw, 660px); max-width: 108%; height: auto; display: block;
  align-self: flex-end;
  margin-top: clamp(24px, 6vh, 72px);
}

/* ---- テロップ下の控えめな英字あしらい（PCのスカスカ対策・過剰装飾は禁止のため細く小さく）
   2026-07-15赤ペン#6: 線をメインコピー（.mv-telop-main）の左端まで伸ばし、
   ラベルを右端（テロップと同じ右端）に完全に寄せる。テロップと同じ
   width/align-selfにすることで左右端をぴったり揃える。 ---- */
.mv-eng-accent {
  display: flex; align-items: center; gap: 14px; margin-top: clamp(18px, 2.4vw, 28px);
  align-self: flex-end; width: min(46vw, 660px); max-width: 108%;
}
.mv-eng-rule { display: block; flex: 1 1 auto; height: 1px; background: rgba(255,255,255,.5); }
.mv-eng-text { font-family: var(--font-en); font-weight: 500; font-size: .75rem; letter-spacing: .28em; color: rgba(255,255,255,.62); white-space: nowrap; flex: none; }

/* ---- 勝ち方宣言プレート（2026-07-15赤ペンFB4: STRENGTH-Voice間の帯から移設）
   赤ペンの四角＝テロップ右下・波形の上。角丸ゼロの白ベタ＋黒900文字、
   「勝ち方宣言」帯（.win-plate）の小型版として同じ質感で。
   2026-07-15赤ペン#6: PCは改行なしの横一行にし、メインコピーと同じくらいの
   横幅になるまで拡大（clampはテロップの width:min(46vw,660px) を
   1行22文字換算で割った値に合わせている）。
   2026-07-15赤ペン#9-3: モバイルは2段のfit-contentボックスに変更
   （.mv-win-plate-l1/-l2、下記@media内）。PC(このデフォルトルール)は
   単一ボックス+一行のまま変更なし。 ---- */
.mv-win-plate {
  display: inline-block; align-self: flex-end; text-align: right;
  margin-top: clamp(16px, 2.6vw, 26px);
  background: #fff; color: var(--brand); font-feature-settings: "palt" 1;
  font-weight: 900; letter-spacing: -.02em; line-height: 1.2;
  font-size: clamp(1.1875rem, 2.09vw, 1.875rem);
  padding: .12em .18em; border-radius: 0;
}
@media (min-width: 901px) {
  .mv-win-plate { white-space: nowrap; }
}

/* 2026-07-15赤ペンFB13: 下端の波はSVGオーバーレイ(.mv-wave)を廃止し.mv自体の
   mask-imageで実現（上のmask-image定義を参照）。旧.mv-wave要素・ルールは削除済み。 */

/* FV高さは100svh前後を維持（PCのみ。モバイルはコンテンツに合わせて自然な高さ） */
@media (min-width: 901px) {
  .mv { min-height: 100svh; }
}

@media (max-width: 900px) {
  /* 2026-07-15赤ペンR7 #1: padding-bottomを拡大し、スマホ動画がFV内に
     収まる余地を確保する（.mvのoverflow:hiddenは背景マーキーのクリッピングに
     必要なため維持）。 */
  .mv { padding-bottom: clamp(78px, 19vw, 108px); }
  .mv-body {
    flex-direction: column; align-items: center; gap: 0;
    /* 2026-07-15赤ペン#9-1: 白バーヘッダーが無くなり右上ハンバーガーのみのため、
       上部余白を大幅縮小（ハンバーガー下端 clamp(14,3vw,20)+46px ≈ 60-66px の
       クリアランスのみ確保）。 */
    padding: 72px 18px 12px;
  }
  .mv-left, .mv-right { display: contents; }

  /* モバイル縦順（2026-07-15赤ペンR7 #1）:
     ①メインコピーテロップ＋線＋DOHO VIDEO MARKETINGラベル → ②勝ち方プレート → ③スマホ動画 */
  .mv-telop-main { order: 1; width: min(84vw, 460px); max-width: 100%; margin: 0 0 10px; align-self: flex-start; }
  .mv-eng-accent {
    display: flex; order: 2; align-self: flex-start;
    width: min(84vw, 460px); max-width: 100%; margin: 0 0 22px;
  }
  /* ②勝ち方プレート（2026-07-15赤ペンFB14 #2: 「〜運用会社は、」で改行して
     2行構成に戻す。ただしFB9版と違い【2行とも同じフォントサイズ】で、
     1行のとき(FB11-12)より大きく。各行がそれぞれ文字キワキワの白ボックス
     （fit-content）になる段積み。親は透明でボックス感を持たせない。
     PC(.mv-win-plate本体のデフォルトスタイル・白地オレンジ文字・一行)は
     ここでは上書きしないので変更なし。 */
  .mv-win-plate {
    order: 3; display: flex; flex-direction: column; align-items: flex-start;
    gap: 5px; align-self: flex-start;
    width: fit-content; max-width: 100%;
    margin: 0 0 24px; background: none; color: var(--brand);
    font-feature-settings: "palt" 1; font-weight: 900; letter-spacing: -.03em;
    line-height: 1.15; white-space: nowrap; text-align: left;
    /* 2026-07-15赤ペンFB15: レスポンシブで収まる最大サイズ指定。
       実測: 左右余白18px+ボックスpadding込みで1行目が収まる上限は約6.3〜6.5vw
       → 描画ブレの安全マージンを見て6.2vw(320pxで19.8px/390pxで24.2px) */
    font-size: 6.2vw;
    padding: 0;
  }
  .mv-win-plate-l1, .mv-win-plate-l2 {
    display: inline-block; width: fit-content; background: #fff; color: inherit;
    padding: 2px 4px;
    font-size: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit;
  }
  /* ③スマホ動画: サイズは維持。2026-07-15赤ペンFB13: 波SVGオーバーレイ廃止＋
     .mvをCSSマスクで波形にくり抜く方式に変更したため、以前のように動画を
     負のmargin-bottomで波の下（.mvの下端）へオーバーラップさせるのは廃止。
     マスクは.mv全体（内部の動画も含む）に均等にかかるため、動画がマスクの
     波形カット帯（下端var(--wave-h)ぶん）に重なると動画自体が波形に欠けて
     見えてしまう。そのため動画はオーバーラップさせずFV内（マスクの外＝
     不透明領域）に収める。 */
  .mv-phone {
    /* 2026-07-15赤ペンFB14 #2: プレート2行化で文字が大きくなったぶん
       動画を下げ、FVオレンジ領域を少し広げる（margin-top 8→26px） */
    order: 4; align-self: center; margin: 26px 0 0;
    width: 70vw; max-width: 320px; min-width: 0;
  }
}

/* ============================================================
   SERVICE（NEUTRAL WORKS型・2026-07-15改修）
   左＝position:stickyで固定されるコピーブロック（見出しテロップ+本文3行+
   キーワードにベタ塗りチップのサブコピー3本）／右＝SERVICE01-05が縦に
   積まれてスクロールするDMJ型の端正な表組み（前回実装の.svc-row2系を流用・
   よりコンパクトに詰めている）。スクロールジャックではなくネイティブスクロール
   ＋sticky（PCのみ）。
   ・数字ラベル共通: .svc-tag（オレンジの短いダッシュ＋黒文字）
   ・見出しは全てソリッドのブランドオレンジ（グラデ廃止・端正に統一）
   ============================================================ */
.svc-tag {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-ja); font-weight: 700; font-size: .8125rem; letter-spacing: .04em; color: var(--ink);
}
.svc-tag-dash { display: inline-block; width: 14px; height: 2px; background: var(--brand); flex: none; }
.svc-tag-link { display: block; text-decoration: none; color: inherit; }
.svc-tag-link:hover .svc-word { opacity: .78; }

/* ---- 2カラム土台（左sticky・右スクロール）
   2026-07-15赤ペンFB4: 左カラムを広く（目安45%→55%）。%指定のminmaxで
   コンテナ幅に対して相対的に55%を上限確保し、残りを右カラムのfrに渡す。 ---- */
.svc2-grid {
  display: grid; grid-template-columns: minmax(260px, 55%) 1fr;
  gap: clamp(30px, 4.5vw, 72px); align-items: start;
}
.svc2-left {
  /* 2026-07-15赤ペンFB13: ヘッダー直下に近すぎたsticky位置を下げ、
     スクロール中も画面の中段あたりに見え続けるように調整（目安top:25〜30vh）。
     短いビューポートでもヘッダーに近づきすぎない/長いビューポートで
     下がりすぎないよう下限・上限をclampで確保。 */
  position: sticky; top: clamp(96px, 28vh, 300px);
  display: flex; flex-direction: column; gap: clamp(22px, 2.8vw, 32px);
  padding-bottom: 40px;
}
/* 2026-07-15赤ペンFB13 #2: PCのテロップをもう一段大きく（従来比 約1.175倍） */
.svc2-head { width: clamp(235px, 26vw, 315px); height: auto; display: block; }
/* サブコピー3行: グレー→黒文字に・「毎月500本以上」行と同等感のサイズへ・行間/段落間を詰める
   2026-07-15赤ペンFB4: 本文（svc2-lead）を1段階、サブコピー（svc2-points/チップ）を2段階拡大 */
.svc2-lead { display: flex; flex-direction: column; gap: 4px; }
.svc2-lead p { font-size: clamp(1.0625rem, 1.3vw, 1.1875rem); line-height: 1.7; font-weight: 600; color: var(--ink); }
.svc2-points { list-style: none; display: flex; flex-direction: column; gap: 18px; }
.svc2-points li { font-size: clamp(1.25rem, 1.9vw, 1.625rem); font-weight: 800; line-height: 1.6; color: var(--ink); }
/* ベタ塗りキーワードチップ: 角丸禁止（尖らせる）・paddingは枠ギリギリまで詰めてタイトに
   2026-07-15赤ペン#6: white-space:nowrapでチップ内テキストの途中折り返しを禁止。
   幅に入り切らない場合はチップ全体が丸ごと次の行へ送られるため、
   「PDCAの」/「速さ。」のような不自然な分割が起きなくなる（区切り位置＝チップ境界で改行）。 */
.svc2-chip {
  display: inline; background: var(--brand); color: #fff; font-weight: 900;
  border-radius: 0; padding: .02em .16em; box-decoration-break: clone; -webkit-box-decoration-break: clone;
  white-space: nowrap;
}

.svc2-right { min-width: 0; }

/* ---- SERVICE 01-05: 縦積み表組み（コンパクト） ---- */
.svc-row2-list { list-style: none; }
.svc-row2 { border-bottom: 1px solid var(--line); padding: clamp(18px, 2.4vw, 26px) 0; }
.svc-row2:first-child { padding-top: 0; }
.svc-row2:last-child { border-bottom: none; padding-bottom: 0; }
.svc-row2-body {
  display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap;
  gap: clamp(16px, 2.6vw, 32px);
}
.svc-row2-body > .svc-tag-link { flex: 1 1 220px; max-width: 340px; }
/* 2026-07-15赤ペン#9-7a: サービス見出しをもう一段大きく */
.svc-word {
  font-weight: 900; font-size: clamp(1.5rem, 2.4vw, 2.125rem); line-height: 1.2; letter-spacing: -.02em;
  color: var(--brand); margin-top: 8px; word-break: keep-all;
}
.svc-word-en {
  font-family: var(--font-en); font-weight: 700; font-size: .6875rem; letter-spacing: .14em;
  color: var(--brand); margin-top: 6px; text-transform: uppercase;
}
.svc-row2-right { flex: 1 1 280px; max-width: 460px; }
/* 2026-07-15赤ペン#9-7b: 見出し下の説明文（リード文・詳細文とも）をもう一段大きく */
.svc-row2-msg { font-weight: 800; font-size: 1.0625rem; line-height: 1.7; color: var(--ink); }
/* 2026-07-15赤ペンFB4: 02-05の説明文もグレー→黒(#262626)に統一（01と揃える） */
/* 2026-07-17赤ペンFB24 #4: 本文が細すぎるとの指摘でSERVICE左カラムのリード文
   (.svc2-lead、weight 600)に近い太さへ（400→500） */
.svc-row2-desc { font-size: .9375rem; color: var(--ink); font-weight: 500; line-height: 1.85; margin-top: 8px; }

.svc-more--row { margin-top: clamp(16px, 2vw, 22px); }

/* ---- SERVICE01 / SERVICE02-05 を白のワンブロックずつに分離（2026-07-15赤ペン）
   セクション自体はグレー帯(.svc-band)にして、01ブロックと02-05ブロックの
   2枚の白カードが浮かぶ構成に。他の白カード（.story-card/.co-card）と
   角丸14pxで統一。 ---- */
/* 2026-07-15赤ペンFB10 #2: 「ノート風 格子×紙質感」背景（preview_texture_demo.htmlの
   B+C複合レシピを移植）。方眼線はCSSのみ（画像なし）でボケない。グレインは
   既存--grain(feTurbulence)資産を流用。白ブロック(.svc-block)より下に敷くため
   ::afterはz-index:1、直下の.wrapをz-index:2で持ち上げる（.strength-card等と同じ手法）。
   FV波・STRENGTH帯との境界は背景色(var(--gray))自体は変えていないため破綻しない。 */
/* 2026-07-15赤ペンFB11 #3: 縦方向の格子線は元々0deg(=起点が要素の「下端」)
   指定だったため、要素の高さ次第で天面の位相がずれ、FVの波直後に格子線の
   入らない無地の帯（最大32px弱）ができていた。180degにして起点を「上端」に
   固定し、波の直下（帯の先頭）で必ず格子線が現れるようにする。 */
.svc-band {
  position: relative; background: var(--gray);
  background-image:
    repeating-linear-gradient(180deg, rgba(38,38,38,.05) 0 1px, transparent 1px 32px),
    repeating-linear-gradient(90deg, rgba(38,38,38,.05) 0 1px, transparent 1px 32px);
  padding-top: var(--gap); padding-bottom: clamp(56px, 7vw, 88px);
}
.svc-band::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain); opacity: .14; mix-blend-mode: multiply;
}
.svc-band > .wrap { position: relative; z-index: 2; }
.svc-block {
  background: #fff; border-radius: 14px;
  padding: clamp(24px, 3vw, 34px) clamp(22px, 3vw, 30px);
}
.svc-block + .svc-block { margin-top: clamp(18px, 2.4vw, 26px); }

@media (max-width: 900px) {
  .svc2-grid { grid-template-columns: 1fr; gap: 34px; }
  .svc2-left { position: static; top: auto; padding-bottom: 0; }
  /* 2026-07-15赤ペンFB4: テロップ画像を画面幅ほぼいっぱいに拡大 */
  .svc2-head { width: 100%; max-width: 480px; }
  /* サブコピー3本: 行間・段落間を詰めて太く */
  .svc2-lead { gap: 2px; }
  .svc2-lead p { line-height: 1.5; font-weight: 700; }
  /* 2026-07-15赤ペン#6: 3トピック（毎月500本〜／勝ちパターン〜／広告費〜）間の余白をもう少し詰める */
  .svc2-points { gap: 12px; }
  .svc-row2 { padding: 20px 0; }
  .svc-row2-body { flex-direction: column; align-items: stretch; gap: 14px; }
  /* flex-basis:220pxがcolumn方向では高さに作用し縦の空白ができるためautoに戻す */
  .svc-row2-body > .svc-tag-link, .svc-row2-right { max-width: none; width: 100%; flex: 0 0 auto; }
  .svc-block { padding: 22px 18px; }
}

/* ---- 「サービス内容を見る」導線 ---- */
.svc-more { display: flex; justify-content: flex-end; margin-top: clamp(28px, 3.6vw, 46px); }
.svc-more-link { display: inline-flex; align-items: center; gap: 14px; font-weight: 700; font-size: .9375rem; color: var(--ink); text-decoration: none; }
.svc-more-arrow {
  width: 34px; height: 34px; border-radius: 50%; background: var(--brand); color: #fff; flex: none;
  display: flex; align-items: center; justify-content: center; transition: transform .3s var(--ease);
}
.svc-more-link:hover .svc-more-arrow { transform: translate(3px, -3px); }

/* ============================================================
   見出し共通：大きい英字（p-topCompany/p-topNews相当の巨大英字ラベル）
   ============================================================ */
.sec-head-mega { margin-bottom: clamp(36px, 4.5vw, 56px); text-align: left; }
/* 2026-07-17赤ペンFB24 #7: グラデ文字が安っぽいとの指摘でベタ塗り#ea4003に変更
   （background-clipのグラデ演出を廃止しcolorのみで塗る）。 */
.mega-en {
  display: block; font-family: var(--font-en); font-weight: 700; font-style: italic;
  letter-spacing: -.02em; line-height: .82;
  color: var(--brand);
}
/* 2026-07-17赤ペンFB24 #6: WORKS/VOICE/COMPANY/NEWSでバラバラだったサイズを
   このmega-en--lg 1本に統一（COMPANY側の.mega-en--xl使用・co-band内上書きは廃止）。
   中間〜大きめのサイズへ調整（旧5.6rem上限→6.4rem上限）。 */
.mega-en--lg { font-size: clamp(2.4rem, 7.8vw, 6.4rem); }
.mega-en--split { display: flex; flex-direction: column; gap: 2px; }
.mega-en--split span { display: block; font-size: clamp(2.4rem, 8.4vw, 7rem); }
.mega-en--split span:last-child {
  align-self: flex-end;
}
.sec-head-mega .ja { display: block; font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 900; color: var(--ink); margin-top: 16px; letter-spacing: -.02em; font-feature-settings: "palt" 1; }

/* ============================================================
   GROWTH RESULTS（c-story相当）／id="works" で旧 #works アンカーを踏襲
   2026-07-15 赤ペン: セクション背景=グレーの帯（.voice-band）／中のカード=白 に反転
   （.co-band と同じ質感ルール）。文字はメリハリ強化: 推薦文を主役に大きく、
   CLIENT/SERVICE行は縮小、氏名は拡大。
   2026-07-15赤ペン#53: 見出しをCOMPANY/NEWSと同じ.sec-head-mega+.mega-en構成に統一
   （リード文は削除）。CLIENT名・SERVICE内容の文字を拡大、推薦文本文はやや縮小、
   行間を詰め、人物写真+氏名ブロックを拡大。
   ============================================================ */
/* 2026-07-15赤ペンFB11 #1: #9-6で帯をオレンジ化したのは誤解釈だったため、
   グレー帯(元のmega-en系スタイル)に戻す。青木さんの本来の指示は「ストーリー
   カードの黒枠の後ろの影の色を変更」だったため、影(box-shadow)側をオレンジに
   変更して対応する（下記.story-card参照）。 */
.voice-band { background: var(--gray); padding-top: var(--gap); padding-bottom: clamp(56px, 7vw, 88px); }
.voice-band .num-card { background: #fff; }
.story-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: clamp(30px, 3.6vw, 46px); }
/* 2026-07-15赤ペンR7 #6: ブルータリズム調（高コントラスト・極太ボーダーの
   ソリッドなダイアログ）へ刷新。角丸ゼロ＋太枠＋ぼかし無しのハードシャドウ。
   上部の「STORY 01」はヘッダー帯化するため、カード自体はpadding-topを0にし
   帯側で天面・左右へネガティブマージンでフルブリードさせる。
   2026-07-15赤ペンFB14 #1: 影の色をオレンジ→グレーに変更（青木さん指示:
   オレンジはおかしい、グレーとか黒っぽい系に。真っ黒は枠と同化した過去が
   あるため中間グレー）。黒枠3px・黒帯ヘッダーは維持。 */
.story-card {
  background: #fff; border: 3px solid var(--ink); border-radius: 0;
  box-shadow: 6px 6px 0 #b7b5b0;
  padding: 0 26px 30px; display: flex; flex-direction: column; gap: 12px;
}
/* 2026-07-15赤ペンFB18: 黒帯ヘッダーが「微妙」との指摘で廃止。白地のまま
   イタリック英字ラベル(STORYは黒・番号オレンジ)+薄い区切り線のみの軽い頭に。
   黒枠3px+グレー影のカード本体は直近で承認済みのため維持。 */
.story-num {
  display: block; margin: 0 -26px; padding: 16px 26px 12px;
  background: none; color: var(--ink);
  border-bottom: 1px solid rgba(38,38,38,.14);
  font-family: var(--font-en); font-weight: 800; font-style: italic; font-size: 1.0625rem; letter-spacing: .02em;
}
.story-num-n { color: var(--brand); }
/* CLIENT/SERVICE行はまとめて1ブロックにし、本文(story-quote)との間隔を詰める。
   会社名・サービス内容(strong)は拡大、ラベル(span)は小さいまま。行間も詰める。 */
.story-meta { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.story-table { display: flex; gap: 8px; font-size: .6875rem; line-height: 1.3; flex-wrap: wrap; align-items: baseline; }
.story-table span { color: var(--ink-60); font-family: var(--font-en); letter-spacing: .02em; }
.story-table strong { font-weight: 800; font-size: .9375rem; color: var(--ink); letter-spacing: -.01em; }
.story-quote { font-size: 1rem; line-height: 1.75; color: var(--ink); font-weight: 500; flex: 1; }
.story-person { display: flex; align-items: center; gap: 14px; padding-top: 14px; border-top: 1px solid rgba(38,38,38,.1); }
.story-person .avatar { width: 56px; height: 56px; border-radius: 50%; background: #dcdcdc center/cover no-repeat; flex: none; }
.story-person .vp-meta { font-size: .75rem; line-height: 1.3; color: var(--ink-60); display: block; }
.story-person .vp-name { font-weight: 900; font-size: 1.25rem; line-height: 1.3; display: block; margin-top: 2px; letter-spacing: .01em; }
@media (max-width: 900px) { .story-list { grid-template-columns: 1fr; } }

/* ============================================================
   STRENGTH（ワンストップ・SERVICE直後の新設セクション）
   2026-07-15赤ペン: 色をオレンジ→黒・白・グレー系に変更し、n-worksの
   STRENGTH図（1本の細線が円を貫通し右端で矢印/番号バッジは円の右上で
   線に乗る小円/アイコン+ラベルは円の内側）をより忠実に再現。
   2026-07-15赤ペンFB4: 「勝ち方宣言」帯(.win-band)をFVへ移設・削除したため、
   STRENGTHセクション自体をグレー帯(.strength-band)にしてVoice(.voice-band)と
   隙間なく連続させる（section同士は margin:0 のため背景色が同じなら継ぎ目なし）。
   ============================================================ */
.strength-band { background: var(--gray); padding-top: var(--gap); padding-bottom: clamp(40px, 5vw, 64px); }
.strength-card {
  --sf-d: clamp(148px, 15vw, 194px);
  position: relative; overflow: hidden; border-radius: 24px; color: #fff;
  padding: clamp(40px, 5.5vw, 68px) clamp(24px, 4.5vw, 60px);
  background: linear-gradient(160deg, #333331 0%, #262624 46%, #1a1a19 100%);
}
.strength-card::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background:
    radial-gradient(ellipse 60% 50% at 88% -4%, rgba(255,255,255,.10), transparent 58%),
    radial-gradient(ellipse 55% 45% at 6% 108%, rgba(0,0,0,.45), transparent 62%),
    linear-gradient(115deg, transparent 38%, rgba(255,255,255,.05) 48%, transparent 58%);
}
.strength-card::after {
  /* 2026-07-16 FB19: サイト全体グレイン統一に合わせて.16→.09に調整（暗部で
     黒が濁らない範囲・.06〜.10のレンジ内）。blendはoverlayのまま維持。 */
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain); opacity: .09; mix-blend-mode: overlay;
}
.strength-card > * { position: relative; z-index: 2; }
.strength-en { display: block; font-family: var(--font-en); font-style: italic; font-weight: 700; font-size: .8125rem; letter-spacing: .2em; color: rgba(255,255,255,.5); }
.strength-head {
  font-weight: 900; font-size: clamp(1.5rem, 3.2vw, 2.5rem); line-height: 1.55; margin-top: 16px;
  letter-spacing: -.02em; font-feature-settings: "palt" 1; max-width: 18em;
}
/* 2026-07-15赤ペン#6: 「戦略設計から広告運用改善まで、」がモバイル幅では
   1行に収まらずさらに自動折返しし3行になってしまうため、モバイルのみ
   読みやすい2行（「戦略設計から広告運用改善まで、」/「ワンストップでご対応。」）に
   収まるようフォントサイズを詰める。HTML側の<br>はレスポンシブ制御せず
   このbrがそのまま両サイズで効く想定（PC側は元々1行に収まるため無害）。 */
@media (max-width: 900px) {
  .strength-head { font-size: 1.3125rem; }
}
.strength-lead { margin-top: 20px; font-size: .9375rem; line-height: 2; color: rgba(255,255,255,.85); max-width: 34em; }
.strength-flow { display: flex; align-items: flex-start; margin-top: clamp(40px, 5.5vw, 66px); }
/* 2026-07-16赤ペンFB21: /strength への誘導ボタン（黒カード内・フロー図の下） */
.strength-more { margin-top: clamp(32px, 4.5vw, 48px); }
.sf-node { display: flex; flex-direction: column; align-items: center; flex: 0 0 auto; width: var(--sf-d); }
/* 円: アイコン+ラベルの両方を内側に収める（n-works方式）。線は円の垂直中央を貫通 */
.sf-circle {
  width: 100%; aspect-ratio: 1; border-radius: 50%; position: relative;
  border: 1px solid rgba(255,255,255,.6); background: rgba(255,255,255,.03);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  padding: 10%;
}
/* 2026-07-15赤ペン#9-5: バッジ（円右上の01〜04）を一回り拡大
   （直径・フォント両方。PC/モバイル共通のパーセント指定のため両対応） */
.sf-badge {
  position: absolute; top: -5%; right: -1%; width: 25%; height: 25%; min-width: 32px; min-height: 32px; max-width: 46px; max-height: 46px;
  border-radius: 50%; box-shadow: 0 0 0 8px rgba(255,255,255,.05);
  background: #fff; color: var(--ink); font-family: var(--font-en); font-weight: 800; font-size: .875rem;
  display: flex; align-items: center; justify-content: center; letter-spacing: -.02em;
}
.sf-ic { width: 30%; height: 30%; flex: none; }
.sf-label { font-weight: 700; font-size: clamp(.625rem, .95vw, .75rem); text-align: center; line-height: 1.35; word-break: keep-all; max-width: 94%; }
.sf-connector { flex: 1 1 auto; min-width: 14px; height: 1px; background: rgba(255,255,255,.4); margin-top: calc(var(--sf-d) / 2); }
/* sf-arrow-ic: PC（1本の細線が④で完結する構成）では非表示。
   モバイル2x2レイアウトでのみ各矢印セグメントの実体として表示する（下記参照） */
.sf-arrow-ic { display: none; }
@media (max-width: 900px) {
  /* 2026-07-15赤ペン#6: 黒カードを画面ギリギリ（ほぼ全幅）まで拡大。
     .wrap の左右余白(92%制限)をこのセクションだけ解除し、.page-card の
     内側いっぱいまでカードを広げる（page-card自体の12pxマージンのみ残る）。 */
  .strength-band .wrap { width: 100%; }
  /* 2026-07-15赤ペンFB8: 縦一列フローを廃止し2x2グリッドに変更（n-works参考）。
     DOM順（①・矢印h・②・矢印diag・③・矢印h・④）はそのままに、
     grid-column/grid-rowで明示配置する。①→②・③→④は水平矢印、
     ②→③は右上→左下の斜め矢印（間の行=ガター行に配置）。④の先の矢印は無し（終点）。 */
  .strength-card { border-radius: 16px; --sf-d: clamp(112px, 32vw, 148px); }
  .strength-flow {
    display: grid;
    grid-template-columns: auto auto auto;
    grid-template-rows: auto auto auto;
    justify-content: center;
    align-items: start;
    column-gap: clamp(6px, 2.4vw, 16px);
    row-gap: 0;
    margin-top: clamp(30px, 7vw, 44px);
  }
  .sf-node { width: var(--sf-d); }
  .strength-flow > :nth-child(1) { grid-column: 1; grid-row: 1; }
  .strength-flow > :nth-child(2) { grid-column: 2; grid-row: 1; }
  .strength-flow > :nth-child(3) { grid-column: 3; grid-row: 1; }
  .strength-flow > :nth-child(4) { grid-column: 1 / 4; grid-row: 2; }
  .strength-flow > :nth-child(5) { grid-column: 1; grid-row: 3; }
  .strength-flow > :nth-child(6) { grid-column: 2; grid-row: 3; }
  .strength-flow > :nth-child(7) { grid-column: 3; grid-row: 3; }

  /* 矢印セグメント本体（PCの1px線は使わず、線+矢尻を1本のSVGにまとめて表示） */
  .sf-connector { background: none; height: auto; min-width: 0; margin: 0; display: flex; }
  .sf-connector .sf-arrow-ic { display: block; }
  .sf-connector.sf-h {
    align-items: center; justify-content: center;
    margin-top: calc(var(--sf-d) / 2 - 7px);
  }
  .sf-connector.sf-h .sf-arrow-ic { width: clamp(24px, 7vw, 32px); height: auto; }
  .sf-connector.sf-diag {
    justify-self: center; align-items: center; justify-content: center;
    margin: clamp(6px, 3vw, 14px) 0;
  }
  .sf-connector.sf-diag .sf-arrow-ic { width: clamp(30px, 9vw, 40px); height: auto; }
}


/* ============================================================
   COMPANY（p-topCompany相当・リンクカード2枚）
   2026-07-14 青木さん赤ペン指示: セクション背景=グレーの帯／中のカード=白 に反転
   .co-band は .page-card（白の角丸コンテナ）の内側いっぱいまで背景色を敷く
   （.page-card自体には左右paddingが無いため、子要素は自然に縁まで届く）
   ============================================================ */
.co-band { background: var(--gray); padding-top: var(--gap); padding-bottom: clamp(56px, 7vw, 88px); }
/* 2026-07-17赤ペンFB24 #6: COMPANY見出しをmega-en--xlからmega-en--lgに変更した
   （WORKS/VOICE/NEWSとサイズ統一）ため、専用サイズ上書きは不要になり削除。 */
.co-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: clamp(28px, 3.5vw, 44px); }
.co-card {
  display: block; background: #fff; border-radius: 16px; padding: 36px 34px 88px;
  text-decoration: none; color: inherit; position: relative; min-height: 250px;
  transition: background .25s;
}
.co-card:hover { background: #fbfbfa; }
.co-card h3 { font-size: 1.3rem; font-weight: 800; }
.co-card p { font-size: .8125rem; color: var(--ink-60); margin-top: 10px; max-width: 26em; line-height: 1.8; }
.co-card .co-en {
  position: absolute; right: 30px; bottom: 24px; font-family: var(--font-en); font-weight: 700; font-style: italic;
  font-size: clamp(2.2rem, 4.6vw, 3.8rem); letter-spacing: -.02em; color: rgba(38,38,38,.14);
  transition: color .3s; line-height: 1;
}
.co-card:hover .co-en { color: rgba(234,64,3,.3); }
.co-card .co-arrow {
  position: absolute; left: 30px; bottom: 24px; width: 50px; height: 50px; border-radius: 12px;
  background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center;
  transition: transform .3s var(--ease), background .3s;
}
.co-card:hover .co-arrow { background: var(--brand); transform: translate(3px, -3px); }
.co-card .co-arrow svg { width: 15px; height: 15px; }
@media (max-width: 900px) {
  .co-cards { grid-template-columns: 1fr; }
  .co-card { padding: 28px 24px 78px; min-height: 0; }
}

/* ============================================================
   グレイン: グレー帯共通（WORKS / VOICE / COMPANY）2026-07-16 FB19
   青木さん指示「グレイン背景をサイト全体に統一展開」。SERVICE帯(.svc-band)
   と同じ--grain(feTurbulence)を敷くが、格子線はSERVICE帯だけの個性として
   残すためここでは敷かない（グレインのみ）。
   実装は.svc-band等と同じ「::afterをz-index:1、直下の実体子要素を
   z-index:2で持ち上げる」パターン。これにより白カード(.story-card/.co-card)
   や文字の表面には描画順で乗らず、帯の地（グレーの余白部分）にだけ
   グレインが透けて見える。.works はカルーセルが実質フルブリードのため、
   グレインが視認できるのは見出し上下の余白帯のみになる（写真/動画の上には
   乗らない＝仕様どおり）。 */
.works, .voice-band, .co-band { position: relative; }
.works::after, .voice-band::after, .co-band::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain); opacity: .13; mix-blend-mode: multiply;
}
.works > .wrap, .works > .carousel-viewport,
.voice-band > .wrap,
.co-band > .wrap { position: relative; z-index: 2; }

/* ============================================================
   NEWS〜CTA帯を包む全幅フルブリード白帯（2026-07-15赤ペン#56）
   .page-card（12px inset・角丸28px）の外に出すことで、NEWSの白背景と
   石肌CTAカード周囲の背景を「隙間なく100%幅の白」にする。
   footer側の既存 margin-top はこの帯のpadding-bottomに置き換える
   （このクラスの直後に続く場合だけ上書き。他ページのfooterには影響しない）。
   ============================================================ */
.tail-white { background: #fff; padding-bottom: var(--gap); position: relative; }
.tail-white + footer { margin-top: 0; }
/* 2026-07-16 FB19: 白エリアはグレインの粒が目立ちやすいため最弱(.06)で。
   直下のNEWS/CONTACT2セクションをz-index:2で持ち上げ、石肌CTA帯（自前で
   不透明背景＋独自グレインを持つ）や本文の上には乗らないようにする。 */
.tail-white::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain); opacity: .06; mix-blend-mode: multiply;
}
.tail-white > section { position: relative; z-index: 2; }

/* ============================================================
   CONTACT内 資料請求ミニ枠（c-contact下段PARTNER相当）
   ============================================================ */
.doc-mini {
  margin-top: 16px; background: var(--gray); border-radius: 16px;
  padding: clamp(22px, 3vw, 32px) clamp(22px, 3.5vw, 38px);
  display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap;
}
.doc-mini-tag { display: inline-block; background: var(--brand); color: #fff; font-size: .6875rem; font-weight: 700; padding: 4px 12px; border-radius: 999px; margin-bottom: 10px; }
.doc-mini h3 { font-size: 1.2rem; font-weight: 800; }
.doc-mini p { font-size: .8125rem; color: var(--ink-60); margin-top: 6px; max-width: 32em; line-height: 1.8; }
.doc-mini .svc-link { flex: none; }
@media (max-width: 640px) { .doc-mini { flex-direction: column; align-items: flex-start; } }

/* ===== 矢印ボックス（Tsuklio方式） ===== */
.sq-arrow { width: 44px; height: 44px; border-radius: 12px; background: var(--ink); overflow: hidden; flex: none; display: flex; align-items: center; justify-content: center; }
.sq-arrow svg path { fill: #fff; }
.sq-arrow .arrows { display: flex; width: 200%; gap: 13px; transition: transform .5s var(--bounce); }
.sq-arrow .arrows svg { width: 14px; height: 14px; flex: none; }
.sq-arrow .arrows .a { width: 50%; display: flex; align-items: center; justify-content: center; }
.btn-fx { position: relative; display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-ja); font-weight: 700; font-size: 1rem; padding: 14px 14px 14px 28px; border-radius: 14px; overflow: hidden; cursor: pointer; text-decoration: none; }
.btn-fx .bg { position: absolute; inset: 0; z-index: 0; border-radius: 14px; transition: transform .35s var(--bounce); }
.btn-fx .bg-base { background: var(--line-green); }
.btn-fx .bg-hover { background: var(--ink); transform: scale(0); }
.btn-fx:hover .bg-base { transform: scale(.96); }
.btn-fx:hover .bg-hover { transform: scale(1); }
.btn-fx > * { position: relative; z-index: 1; }
.btn-fx span.t { color: #fff; }
.btn-fx:hover .sq-arrow .arrows { transform: translateX(calc(50% + 6.5px)); }

/* ===== 見出し ===== */
.sec-head { margin-bottom: clamp(36px, 4.5vw, 56px); text-align: left; }
/* 日本語見出しを主役に・英語は小さなラベル（DMJ移植: 英字ラベルはGeist italicで書体だけ変更） */
.sec-head .en { display: block; font-family: var(--font-en); font-style: italic; font-weight: 700; font-size: .8125rem; line-height: 1; letter-spacing: .2em; color: var(--brand); }
.sec-head .ja { display: block; font-size: clamp(1.5rem, 2.6vw, 2.1rem); letter-spacing: -.02em; color: var(--ink); margin-top: 12px; font-weight: 900; line-height: 1.5; font-feature-settings: "palt" 1; }
section { padding-top: var(--gap); }

/* ===== About ===== */
.about-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; }
/* 左カラムは「撮影→制作・配信→検証」の動く線画イラスト */
.about-illust { grid-column: 1 / 7; align-self: center; }
.about-illust svg { width: 100%; max-width: 560px; height: auto; display: block; }
.about-illust .dash { stroke: #b5b5b5; stroke-width: 2; stroke-dasharray: 5 9; animation: dashMove 1.5s linear infinite; }
.about-illust .arr { stroke: #b5b5b5; stroke-width: 2; }
@keyframes dashMove { to { stroke-dashoffset: -14; } }
.about-illust .fl { animation: illFloat 4.5s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.about-illust .f2 { animation-delay: .7s; }
.about-illust .f3 { animation-delay: 1.4s; }
@keyframes illFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
.about-illust .rec { animation: blink 1.6s ease infinite; }
.about-illust .pulse { animation: pulseDot 2.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes pulseDot { 0%,100% { transform: scale(1); } 50% { transform: scale(1.4); } }
.about-illust .pl { animation: pulseDot 3s ease-in-out .5s infinite; transform-box: fill-box; transform-origin: center; }
.about-illust .line { stroke-dasharray: 130; stroke-dashoffset: 130; animation: chartDraw 1.6s var(--ease) .6s forwards; }
@keyframes chartDraw { to { stroke-dashoffset: 0; } }
.about-illust .lbl { font-family: var(--font-ja); font-size: 14px; font-weight: 700; fill: var(--ink-60); stroke: none; }
.about-illust .lbl.small { font-size: 12px; fill: var(--ink-40); letter-spacing: .08em; }
.about-body { grid-column: 8 / 13; color: var(--ink-60); font-size: .9375rem; line-height: 2.1; }
.about-shops { display: flex; gap: 10px; margin-top: 24px; flex-wrap: wrap; }
.shop-chip {
  border: 1px solid var(--line); border-radius: 9999px; padding: 7px 18px;
  font-size: .75rem; font-weight: 700; color: var(--ink-60);
  display: inline-flex; align-items: center; gap: 8px;
}
.shop-chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }

/* ===== Numbers（数字でみる：hacomono方式） ===== */
.numbers-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; max-width: 860px; margin-inline: auto; }
/* Voice上部の実績数字はコンパクトに（2026-07-14 FB反映・GROWTH/RESULTS大見出し廃止に伴い縮小） */
.numbers-grid--compact { max-width: 480px; gap: 14px; margin-inline: 0; }
.numbers-grid--compact .num-card { padding: 26px 24px 22px; }
.numbers-grid--compact .num-card .big { font-size: clamp(2.1rem, 3.6vw, 3rem); }
.numbers-grid--compact .num-card h3 { font-size: .875rem; margin-top: 10px; }
.num-card { background: #f6f4f2; border-radius: 14px; padding: 44px 34px 36px; }
.num-card .big { font-family: var(--font-en); font-weight: 900; font-size: clamp(3.2rem, 6.4vw, 5.4rem); line-height: 1; letter-spacing: -.05em; color: var(--ink); }
.num-card .big .accent { color: var(--brand); }
.num-card .big .unit { font-family: var(--font-ja); font-weight: 700; font-size: .3em; letter-spacing: 0; margin-left: 5px; color: var(--ink-60); }
.num-card h3 { font-weight: 700; font-size: 1rem; margin-top: 16px; }
.num-card .note { font-size: .6875rem; color: var(--ink-40); margin-top: 8px; line-height: 1.7; }

/* ===== Numbers: カウントアップ連動バー（F案） ===== */
.num-bar { height: 4px; background: var(--line); border-radius: 99px; margin-top: 16px; overflow: hidden; }
.num-bar-fill { height: 100%; width: 0%; background: var(--brand); border-radius: 99px; transition: width 2s cubic-bezier(.16,1,.3,1); }
@media (prefers-reduced-motion: reduce) {
  .num-bar-fill { transition: none; }
}

/* ===== Reason ===== */
/* グレー帯+白カード（hacomono作法・枠線影なし） */
.reason { background: var(--gray); padding-top: var(--gap); padding-bottom: var(--gap); margin-top: var(--gap); }
.reason-lead { font-size: 1.0625rem; line-height: 2.1; max-width: 720px; margin: -12px 0 clamp(28px, 3.5vw, 44px); }
.reason-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.reason-card {
  background: #fff; border-radius: 14px; padding: 40px 32px;
  display: flex; flex-direction: column; gap: 18px;
}
.reason-card .num { font-family: var(--font-en); font-weight: 900; font-size: 3rem; line-height: 1; color: var(--brand); letter-spacing: -.03em; }
.reason-card h3 { font-weight: 700; font-size: 1.125rem; line-height: 1.75; }
.reason-card p { font-size: .875rem; color: var(--ink-60); }

/* ===== Message（/company 代表メッセージ・2026-07-14新設） ===== */
.message-body { max-width: 720px; color: var(--ink-60); font-size: .9375rem; line-height: 2.1; }
.message-body p + p { margin-top: 1.4em; }
.message-sign { margin-top: 1.8em !important; font-weight: 700; color: var(--ink); text-align: right; }

/* ===== About内Reason統合（コンパクト版・白いAboutセクション上でグレーカードにして視認性確保） ===== */
.about-reason { margin-top: clamp(32px, 4vw, 52px); }
.about-reason .reason-grid { gap: 14px; }
.about-reason .reason-card { background: var(--gray); padding: 28px 26px; gap: 12px; }
.about-reason .reason-card .num { font-size: 2rem; }
.about-reason .reason-card h3 { font-size: 1rem; }
.about-reason .reason-card p { font-size: .8125rem; line-height: 1.8; }
.about-reason .r-ic { top: 26px; right: 22px; width: 44px; height: 44px; }

/* ===== Service（トグル開閉） ===== */
.svc-list { border-top: 1px solid var(--line); margin-top: 8px; }
.svc { border-bottom: 1px solid var(--line); }
.svc-head {
  width: 100%; display: grid; grid-template-columns: 80px 1fr auto; gap: 24px; align-items: center;
  padding: clamp(26px, 3.6vw, 42px) 0; background: none; border: none; cursor: pointer; text-align: left;
  font-family: inherit; color: inherit;
  transition: padding-left .4s var(--ease);
}
.svc-head:hover { padding-left: 14px; }
.svc-head .num { font-family: var(--font-en); font-weight: 300; font-size: 1.3rem; color: var(--ink-40); }
.svc-head h3 { font-family: var(--font-ja); font-weight: 700; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.15; }
.svc-head h3 .ja { display: block; font-family: var(--font-en); font-size: .8125rem; font-weight: 500; color: var(--ink-60); margin-top: 7px; letter-spacing: .08em; }
.svc-toggle {
  width: 52px; height: 52px; border: 1px solid var(--ink); border-radius: 50%;
  position: relative; flex: none; transition: background .3s, border-color .3s, transform .45s var(--ease);
}
.svc-toggle::before, .svc-toggle::after { content: ""; position: absolute; background: var(--ink); transition: background .3s, transform .3s; }
.svc-toggle::before { left: 16px; top: 25px; width: 18px; height: 2px; }
.svc-toggle::after { left: 25px; top: 16px; width: 2px; height: 18px; }
.svc.open .svc-toggle { background: var(--brand); border-color: var(--brand); transform: rotate(180deg); }
.svc.open .svc-toggle::before, .svc.open .svc-toggle::after { background: #fff; }
.svc.open .svc-toggle::after { transform: scaleY(0); }
.svc-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ease); }
.svc.open .svc-body { grid-template-rows: 1fr; }
.svc-body-in { min-height: 0; overflow: hidden; padding: 0 0 0 clamp(0px, 7vw, 104px); transition: padding .45s var(--ease); }
.svc.open .svc-body-in { padding: 4px 0 clamp(28px, 3.6vw, 44px) clamp(0px, 7vw, 104px); }
/* 縦積み: 説明 → 箇条書き → 金額 → 見積もりボタン（青木さん指定） */
.svc-body-in > .svc-body-cols { display: flex; flex-direction: column; gap: 26px; max-width: 720px; }
.svc-desc { font-size: .9375rem; color: var(--ink-60); line-height: 2.1; }
.svc-points { list-style: none; display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.svc-points li { font-size: .8125rem; font-weight: 500; display: flex; gap: 10px; align-items: baseline; }
.svc-points li::before { content: "—"; color: var(--brand); flex: none; }
.svc-meta { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.svc-price { font-family: var(--font-en); font-weight: 900; font-size: 1.5rem; color: var(--ink); }
.svc-price small { font-family: var(--font-ja); font-weight: 500; font-size: .75rem; color: var(--ink-60); display: block; margin-top: 6px; }
/* 2026-07-17赤ペンFB26: 単発メニュー（動画制作・動画撮影）であることを明示する小チップ。
   定額プランとの対比が伝わるよう、事実ベースの文言（1本から／1時間から）のみ。
   装飾を増やしすぎないよう、単色アウトラインのみでバッジ感を抑える。 */
.svc-price-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.svc-chip {
  display: inline-block; font-family: var(--font-ja); font-weight: 700; font-size: .6875rem;
  letter-spacing: .04em; color: var(--ink-60); border: 1px solid var(--line);
  border-radius: 20px; padding: 4px 12px; white-space: nowrap;
}
.svc-link {
  display: inline-flex; align-items: center; gap: 10px; text-decoration: none;
  font-weight: 700; font-size: .875rem; color: #fff; background: var(--ink);
  padding: 13px 26px; border-radius: 10px; transition: background .3s;
}
.svc-link:hover { background: var(--brand); }

/* ===== Service: DMJ型リスト（アコーディオン廃止・常時展開、2026-07-14再構築） =====
   番号+日本語見出し+英字小見出し+太字メッセージ+説明2行+リンク、を常時表示する静止リスト。
   旧 .svc/.svc-head/.svc-toggle/.svc-body系（トグル開閉）は他ページで未使用のため削除せず放置。 */
.svc-row { border-bottom: 1px solid var(--line); padding: clamp(28px, 3.6vw, 44px) 0; display: grid; grid-template-columns: 80px 1fr; gap: 24px; }
.svc-row .num { font-family: var(--font-en); font-weight: 300; font-size: 1.3rem; color: var(--ink-40); }
.svc-row-main h3 { font-family: var(--font-ja); font-weight: 700; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.15; }
.svc-row-main h3 .en { display: block; font-family: var(--font-en); font-size: .8125rem; font-weight: 500; color: var(--ink-60); margin-top: 7px; letter-spacing: .08em; }
.svc-row-msg { font-weight: 700; font-size: 1.0625rem; margin-top: 20px; max-width: 640px; }
.svc-row-desc { font-size: .875rem; color: var(--ink-60); line-height: 1.9; margin-top: 10px; max-width: 640px; }
.svc-row .svc-link { margin-top: 22px; }
@media (max-width: 900px) {
  .svc-row { grid-template-columns: 44px 1fr; gap: 14px; padding: 24px 0; }
  .svc-row .num { font-size: 1.1rem; }
  .svc-row-main h3 { font-size: 1.15rem; }
}

/* ===== 「他の事業内容」簡易リスト（2026-07-17赤ペンFB23で/serviceに新設。
   画像なし・1〜2行の説明+リンクのみの軽量版。.svc-rowと数字の表記は統一。） ===== */
.svc-brief-list { border-top: 1px solid var(--line); margin-top: 8px; }
.svc-brief-row { border-bottom: 1px solid var(--line); padding: clamp(22px, 2.8vw, 30px) 0; display: grid; grid-template-columns: 64px 1fr; gap: 20px; align-items: baseline; }
.svc-brief-row .num { font-family: var(--font-en); font-weight: 300; font-size: 1.1rem; color: var(--ink-40); }
.svc-brief-row h3 { font-family: var(--font-ja); font-weight: 700; font-size: 1.125rem; }
.svc-brief-row h3 .en { font-family: var(--font-en); font-weight: 500; font-size: .75rem; letter-spacing: .08em; color: var(--ink-60); margin-left: 12px; }
/* 2026-07-17赤ペンFB24 #4: 本文が細すぎるとの指摘で太さを上げる（400→500） */
.svc-brief-desc { font-size: .875rem; color: var(--ink); font-weight: 500; line-height: 1.85; margin-top: 8px; max-width: 640px; }
.svc-brief-row .svc-link { margin-top: 14px; }
@media (max-width: 640px) {
  .svc-brief-row { grid-template-columns: 1fr; gap: 6px; }
  .svc-brief-row .num { display: none; }
}

/* ===== Subscription（定額制動画制作サービス・強みの後に新設 / 2026-07-14） ===== */
.sub-plan { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-bottom: 4px; }
.sub-plan-logo { max-width: 260px; width: 55%; mix-blend-mode: multiply; display: block; }
/* 2026-07-17赤ペンFB24 #4: 定額説明のリード文が細すぎるとの指摘でweight 500を明示 */
.sub-plan-lead { font-size: 1.0625rem; line-height: 2; max-width: 520px; color: var(--ink); font-weight: 500; }
.sub-plan-cta { margin-top: 28px; }
@media (max-width: 640px) {
  .sub-plan { gap: 18px; }
  .sub-plan-logo { width: 46%; }
}

/* ===== Works カルーセル（ロボット方式：GSAPスクロール連動・横スクラブ） ===== */
.works { background: var(--gray); padding-top: var(--gap); padding-bottom: var(--gap); margin-top: var(--gap); }
.works + .flow { padding-top: 0; } /* Works(グレー)とFlow(グレー)を隙間なく連結 */
.works .sec-head { width: min(92%, 1230px); margin-inline: auto; }
/* 2026-07-15赤ペンFB10 #3: トップページの.works（実績ハイライト）は.page-card（白背景）の中で
   直前のSTRENGTH帯（グレー）と地続きにするため、margin-topを打ち消す
   （.page-card自体が#fffのため、margin-topの隙間があるとそこだけ白が覗いて色が破綻する）。 */
.page-card .works { margin-top: 0; }
.carousel-viewport { overflow: hidden; }
.carousel { display: flex; gap: 22px; width: max-content; padding: 0 11px; animation: scHalf 64s linear infinite; will-change: transform; }
@keyframes scHalf { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.carousel-viewport:hover .carousel { animation-play-state: paused; }
.card { width: clamp(200px, 19vw, 248px); flex: none; text-decoration: none; }
/* 実績サムネは 9:16（実際の縦型動画をそのまま入れられる枠） */
.card .ph { aspect-ratio: 9/16; border-radius: 16px; overflow: hidden; position: relative; }
.card .ph video, .card .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.card .ph .img { position: absolute; inset: 0; transition: transform 1s var(--ease); background-size: cover; background-position: center; }
.card:hover .ph .img { transform: scale(1.06); }
.card .meta { padding: 14px 2px 0; }
.card .cat { font-family: var(--font-en); font-size: .6875rem; letter-spacing: .1em; color: var(--brand); font-weight: 700; }
.card h4 { font-size: .9375rem; font-weight: 700; margin-top: 4px; }
.works-more { width: min(92%, 1230px); margin: 44px auto 0; display: flex; justify-content: center; }
.link-arrow { display: inline-flex; align-items: center; gap: 14px; font-weight: 700; font-size: 1rem; text-decoration: none; color: var(--ink); }
.link-arrow .arr { width: 40px; height: 40px; border-radius: 50%; background: var(--ink); display: flex; align-items: center; justify-content: center; transition: transform .3s var(--ease); flex: none; }
.link-arrow .arr svg { width: 13px; height: 13px; }
.link-arrow:hover .arr { transform: translateX(4px); }

/* ===== Voice（お客様の声）===== */
.voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.voice-card { background: var(--gray); border-radius: 14px; padding: 32px 28px; display: flex; flex-direction: column; gap: 22px; }
.voice-card .quote { font-size: .9375rem; line-height: 2; flex: 1; }
.voice-person { display: flex; align-items: center; gap: 16px; padding-top: 18px; border-top: 1px solid rgba(38,38,38,.1); }
.voice-person .avatar { width: 56px; height: 56px; border-radius: 50%; background: #dcdcdc center/cover no-repeat; flex: none; }
.voice-person .vp-meta { font-size: .75rem; color: var(--ink-60); display: block; letter-spacing: .02em; }
.voice-person .vp-name { font-weight: 900; font-size: 1.125rem; display: block; margin-top: 3px; letter-spacing: .04em; }
/* Voice公開時: 直後のグレー帯（Flow）と密着しないよう余白で切り分け */
#voice + .flow { margin-top: var(--gap); }

/* ===== Flow（5ステップ・ライト：hacomono方式の背景色差） ===== */
.flow { background: var(--gray); padding-bottom: var(--gap); }
.flow .sec-head { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.flow-badge {
  background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 22px;
  font-size: .8125rem; font-weight: 700; display: inline-flex; align-items: center; gap: 10px;
}
.flow-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); animation: blink 1.6s ease infinite; }
@keyframes blink { 50% { opacity: .2; } }
.flow-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.flow-step { background: #fff; border-radius: 14px; padding: 30px 24px; }
.flow-step .num { font-family: var(--font-en); font-weight: 900; font-size: 1.7rem; color: var(--brand); letter-spacing: -.03em; }
.flow-step h4 { font-weight: 700; font-size: 1rem; margin: 14px 0 8px; }
.flow-step p { font-size: .8125rem; color: var(--ink-60); }

/* ===== FAQ ===== */
.faq-list { border-top: 1px solid var(--line); max-width: 860px; margin-inline: auto; }
.faq { border-bottom: 1px solid var(--line); }
.faq-q {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 24px 4px; background: none; border: none; cursor: pointer; text-align: left;
  font-family: var(--font-ja); font-weight: 700; font-size: 1rem; color: var(--ink); line-height: 1.7;
}
.faq-icon { width: 20px; height: 20px; position: relative; flex: none; transition: transform .45s var(--ease); }
.faq-icon::before, .faq-icon::after { content: ""; position: absolute; background: var(--brand); }
.faq-icon::before { left: 0; top: 9px; width: 20px; height: 2px; }
.faq-icon::after { left: 9px; top: 0; width: 2px; height: 20px; transition: transform .3s; }
.faq.open .faq-icon { transform: rotate(180deg); }
.faq.open .faq-icon::after { transform: scaleY(0); }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ease); }
.faq.open .faq-a { grid-template-rows: 1fr; }
.faq-a p { min-height: 0; overflow: hidden; padding: 0 36px 0 4px; transition: padding-bottom .45s var(--ease); color: var(--ink-60); font-size: .9rem; }
.faq.open .faq-a p { padding-bottom: 24px; }

/* ===== CTA ===== */
/* 2026-07-14 FB反映: オレンジグラデ → 黒い石肌＋グレイン（preview_bg_demo4.html Nブロック移植）。
   全ページ共通の .cta-band が対象なので各ページの帯も自動で石肌化される。 */
.cta-band {
  background-image:
    linear-gradient(165deg, rgba(8,8,9,.66), rgba(20,21,23,.52) 45%, rgba(6,6,7,.72)),
    url("../assets/stone-texture.webp");
  background-size: cover; background-position: center; background-repeat: no-repeat;
  color: #fff; border-radius: 24px;
  padding: clamp(56px, 8vw, 100px) 24px; text-align: center;
  margin-top: var(--gap);
  position: relative; overflow: hidden;
}
.cta-band::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: var(--grain);
  opacity: .16; mix-blend-mode: overlay;
}
.cta-band > * { position: relative; z-index: 2; }
.cta-band h2, .cta-band p, .cta-band .small { text-shadow: 0 2px 10px rgba(0,0,0,.4); }
.cta-band .small { font-family: var(--font-en); font-style: italic; font-size: .75rem; letter-spacing: .24em; opacity: .5; font-weight: 700; }
.cta-band h2 {
  font-weight: 900; font-size: clamp(1.5rem, 3.2vw, 2.4rem); line-height: 1.6; letter-spacing: -.02em;
  font-feature-settings: "palt" 1;
  margin: 16px 0 12px;
}
.cta-band p { font-size: .9375rem; font-weight: 500; opacity: .8; line-height: 2; }
.cta-buttons { display: flex; gap: 14px; justify-content: center; margin-top: 34px; flex-wrap: wrap; }
.btn-w {
  display: inline-flex; align-items: center; gap: 10px;
  background: #fff; color: var(--ink); text-decoration: none;
  font-weight: 700; font-size: .9375rem; padding: 16px 34px; border-radius: 10px;
  transition: transform .3s var(--ease), opacity .3s;
}
.btn-w::after { content: "→"; font-family: var(--font-en); transition: transform .3s var(--ease); }
.btn-w:hover { transform: translateY(-2px); }
.btn-w:hover::after { transform: translateX(3px); }
.btn-outline { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.45); }
.btn-outline:hover { border-color: #fff; }
.btn-line-app { background: var(--line-green); color: #fff; }
.btn-line-app::after { content: none; }
.cta-note { margin-top: 20px; font-size: .75rem; opacity: .7; }

/* ===== Footer ===== */
footer { background: var(--ink); color: #fff; margin-top: var(--gap); padding: 90px 0 32px; position: relative; overflow: hidden; }
footer::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: var(--grain); opacity: .09; mix-blend-mode: overlay; }
.footer-mark {
  position: absolute; right: -6%; bottom: -4%; width: 72%; max-width: 980px;
  color: rgba(255,255,255,.045); pointer-events: none; z-index: 0;
}
.footer-mark svg { width: 100%; height: auto; display: block; }
footer .wrap { position: relative; z-index: 1; }
.foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.foot .brand { font-size: 1.55rem; color: #fff; }
.foot .mission { margin-top: 20px; font-weight: 700; font-size: 1.05rem; line-height: 2; }
.foot .addr { margin-top: 14px; font-size: .8125rem; color: rgba(255,255,255,.55); line-height: 2; }
.foot nav { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.foot nav a { color: rgba(255,255,255,.7); font-size: .8125rem; text-decoration: none; transition: color .25s; }
.foot nav a:hover { color: #fff; }
.foot .nav-title { font-family: var(--font-en); font-size: .6875rem; letter-spacing: .2em; color: rgba(255,255,255,.45); margin-bottom: 6px; }
.copyright { margin-top: 64px; font-family: var(--font-en); font-size: .6875rem; color: rgba(255,255,255,.4); letter-spacing: .08em; }

/* ===== News（お知らせ） ===== */
.news-list { list-style: none; border-top: 1px solid var(--line); max-width: 860px; margin-inline: auto; }
.news-list a {
  display: grid; grid-template-columns: 104px 90px 1fr auto; gap: 18px; align-items: center;
  padding: 20px 6px; border-bottom: 1px solid var(--line); text-decoration: none; transition: background .25s;
}
.news-list a:hover { background: var(--gray); }
.news-list .nd { font-family: var(--font-en); font-weight: 600; font-size: .8125rem; color: var(--ink-60); }
.news-list .nc { font-size: .6875rem; font-weight: 700; color: var(--brand); border: 1px solid rgba(234,64,3,.35); border-radius: 9999px; padding: 3px 10px; text-align: center; }
.news-list .nt { font-weight: 500; font-size: .9375rem; }
.news-list .na { font-family: var(--font-en); color: var(--ink-40); }

/* ===== ハンバーガーメニュー（PC/モバイル共通・全ページ）
   2026-07-15赤ペンR7 #3/#4: モバイルは白バーヘッダー自体を非表示にし、
   画面右上に固定追従のボタンのみを表示。アイコンは
   ハンバーガー.svgから抽出した3本バー（assets/hamburger-bars.svg、
   同じpolygon座標をここではボタン内にインラインSVGとして埋め込み、
   currentColorで発色。トグルで×へクロスフェード）。
   2026-07-15赤ペン#9-2: 黒い角チップ背景は廃止し、3本バーのみを少し
   大きめ（1.3倍）に配置。デフォルトは黒(var(--ink))＝グレー/白背景の
   全ページで視認できる色。ホーム(.mv オレンジFV)がある間だけ、
   JS(site.js)がボタンに.on-heroを付与し白に切り替える
   （全17ページ共通のCSS/JSのみで完結、.mvが無いページは常に黒のまま）。 ===== */
.menu-btn {
  display: flex; width: 42px; height: 42px; border: none; background: transparent; cursor: pointer;
  align-items: center; justify-content: center; position: relative;
}
/* PCはハンバーガー不要（テキストナビが全部並ぶため）。スマホのみ表示 */
@media (min-width: 901px) { .menu-btn { display: none; } }
.menu-btn-bars { width: 26px; height: auto; color: var(--ink); transition: opacity .3s var(--ease), transform .3s var(--ease), color .3s var(--ease); }
.menu-btn-x { position: absolute; inset: 0; opacity: 0; transform: rotate(-45deg) scale(.6); pointer-events: none; }
.menu-btn-x::before, .menu-btn-x::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 2px;
  background: var(--ink); border-radius: 2px; transform-origin: center;
}
.menu-btn-x::before { transform: translate(-50%, -50%) rotate(45deg); }
.menu-btn-x::after { transform: translate(-50%, -50%) rotate(-45deg); }
.menu-btn.open .menu-btn-bars { opacity: 0; transform: rotate(45deg) scale(.6); }
.menu-btn.open .menu-btn-x { opacity: 1; transform: rotate(0) scale(1); }

@media (max-width: 900px) {
  /* #3: 白バーヘッダー（ロゴ含む）は非表示。透明化のうえpointer-eventsも切って
     下のFVコンテンツのタップを妨げないようにする */
  header { background: transparent; box-shadow: none; padding: 0; pointer-events: none; }
  header .brand { display: none; }
  /* ハンバーガーは画面右上に固定追従。#9-2: 背景チップ無し・3本バーのみ表示 */
  .menu-btn {
    pointer-events: auto;
    position: fixed; top: clamp(14px, 3vw, 20px); right: clamp(14px, 3vw, 20px); z-index: 101;
    width: 46px; height: 46px; border-radius: 0;
    background: transparent; box-shadow: none;
  }
  /* デフォルト（.mvの無いページ＝グレー/白背景）は黒バー */
  .menu-btn-bars { color: var(--ink); }
  /* オレンジFV(.mv)の上にいる間だけJSが付与するクラス: 白バーに */
  .menu-btn.on-hero .menu-btn-bars { color: #fff; }
  /* メニュー展開中の×は黒背景オーバーレイ上のため常時白（on-heroの有無を問わない） */
  .menu-btn-x::before, .menu-btn-x::after { background: #fff; }
}

/* ===== フルスクリーンメニュー（モバイル・2026-07-15赤ペンR7 #5）
   ドロップダウンから全画面オーバーレイへ刷新。背景ほぼ黒＋白の極太リンクが
   上から順にわずかな時間差(stagger)でスライドイン。お問い合わせはオレンジ強調。 ===== */
.m-nav {
  position: fixed; inset: 0; z-index: 99;
  background: var(--ink); color: #fff;
  display: flex; flex-direction: column;
  padding: clamp(88px, 15vh, 120px) clamp(28px, 8vw, 40px) 40px;
  overflow-y: auto;
  visibility: hidden; opacity: 0;
  transition: opacity .4s var(--ease), visibility 0s .4s;
}
.m-nav.open { visibility: visible; opacity: 1; transition: opacity .4s var(--ease); }
.m-nav a.m-nav-logo { display: block; padding: 0; margin: 0 0 clamp(32px, 8vh, 56px); border-bottom: none; }
.m-nav a.m-nav-logo .logo-svg { width: 100px; height: auto; display: block; }
.m-nav a {
  text-decoration: none; color: #fff; font-weight: 800; letter-spacing: -.01em;
  font-size: clamp(1.5rem, 7vw, 2.125rem); line-height: 1.4;
  padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.16);
  opacity: 0; transform: translateY(18px);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.m-nav a:last-child { border-bottom: none; color: var(--brand); margin-top: 10px; }
/* 2026-07-17赤ペンFB24 #1a: 現在ページのマーカー（.mkのオレンジ蛍光マーカー背景/
   FB17で入れた下線）は見づらい・ダサいとの指摘で廃止。ヘッダー/フルスクリーン
   メニューでは現在ページ表示自体を行わない（class="mk"を各HTML側から除去済み）。
   本ルールは不要になったため削除。 */
.m-nav.open a { opacity: 1; transform: translateY(0); }
.m-nav.open a:nth-child(2) { transition-delay: .05s; }
.m-nav.open a:nth-child(3) { transition-delay: .1s; }
.m-nav.open a:nth-child(4) { transition-delay: .15s; }
.m-nav.open a:nth-child(5) { transition-delay: .2s; }
.m-nav.open a:nth-child(6) { transition-delay: .25s; }
.m-nav.open a:nth-child(7) { transition-delay: .3s; }
/* メニュー展開中はbodyスクロールをロック（JS側でbody.menu-openを付与） */
body.menu-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  /* リンクのスライドインは無効化しフェードのみに */
  .m-nav, .m-nav a, .menu-btn-bars, .menu-btn-x { transition-duration: .15s !important; }
  .m-nav a { transform: none !important; }
  .m-nav.open a:nth-child(n) { transition-delay: 0s !important; }
}

/* ===== LINEアイコン ===== */
.line-ic { width: 20px; height: 20px; flex: none; }

/* ===== 追従CTAカード（右下）
   2026-07-15赤ペンFB10 #1: 「最短即日返信・相談無料・営業なし」の一文を削除。
   行が減った分、padding/gap/フォントを一段詰めてカード自体をコンパクト化。 ===== */
.float-cta {
  position: fixed; right: 16px; bottom: 16px; z-index: 95;
  background: #fff; border-radius: 16px;
  box-shadow: 0 6px 16px -6px rgba(38,38,38,.14), 0 24px 56px -20px rgba(38,38,38,.3);
  padding: 13px; width: 236px;
  opacity: 0; transform: translateY(16px); pointer-events: none;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.float-cta.show { opacity: 1; transform: none; pointer-events: auto; }
.float-cta .fc-close {
  position: absolute; top: -9px; right: -9px; width: 26px; height: 26px;
  background: var(--ink); color: #fff; border: 2px solid #fff; border-radius: 50%;
  font-size: .8125rem; cursor: pointer; line-height: 1; display: flex; align-items: center; justify-content: center;
}
.float-cta .fc-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.float-cta .fc-head .line-ic { width: 32px; height: 32px; }
.float-cta .fc-t { font-weight: 700; font-size: .78125rem; line-height: 1.6; }
.float-cta .fc-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--line-green); color: #fff; text-decoration: none;
  font-weight: 700; font-size: .875rem; border-radius: 11px; padding: 12px;
  transition: transform .25s var(--ease), opacity .25s;
}
.float-cta .fc-btn:hover { transform: translateY(-2px); opacity: .92; }
.float-cta .fc-btn::after { content: "→"; font-family: var(--font-en); }

/* ===== 丸ごとパッケージ提案（見積もり内） ===== */
.pkg-suggest {
  display: none; background: rgba(255,183,41,.14); border: 1px solid rgba(255,183,41,.5);
  border-radius: 10px; padding: 14px 16px; margin-bottom: 18px; text-align: left;
  font-size: .8125rem; line-height: 1.8; color: #fff;
}
.pkg-suggest.show { display: block; }
.pkg-suggest p { margin: 0; }
.pkg-suggest-btn {
  margin-top: 10px; display: inline-flex; align-items: center; gap: 4px;
  background: #fff; color: var(--ink); font-weight: 700; font-size: .8125rem;
  padding: 9px 16px; border-radius: 8px; border: none; cursor: pointer;
  font-family: var(--font-ja); transition: transform .25s var(--ease), opacity .25s;
}
.pkg-suggest-btn:hover { transform: translateY(-1px); opacity: .9; }
.pkg-suggest-btn::after { content: "→"; font-family: var(--font-en); }
.pkg-suggest strong { color: #ffb729; }

/* ===== Reveal ===== */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.reveal-blur { opacity: 0; filter: blur(12px) brightness(1.3); transition: opacity 1.2s ease, filter 1.2s ease; }
.reveal-blur.in { opacity: 1; filter: none; }

/* ===== セクション見出し限定: 左からスライドイン（DMJ移植）
   既存の .reveal（IntersectionObserver）機構をそのまま流用し、
   .sec-head だけ演出を上書き。カード類は既存のフェードアップのまま。
   1回だけ発火（site.js側で observe 解除済み）。
   2026-07-17赤ペンFB24 #3b/#3c: 同じ「透明→左からslide+fade」の演出を
   トップSTRENGTHの見出し(.strength-head)と、各セクションのmega見出し
   (.sec-head-mega＝WORKS/VOICE/COMPANY/NEWS)にも展開。どちらも既存の
   class="reveal"にIO監視されているため、JS側の変更は不要。 ===== */
.sec-head.reveal,
.strength-head.reveal,
.sec-head-mega.reveal {
  transform: translateX(-48px);
  transition: opacity .7s cubic-bezier(.34,1.56,.64,1), transform .7s cubic-bezier(.34,1.56,.64,1);
}
.sec-head.reveal.in,
.strength-head.reveal.in,
.sec-head-mega.reveal.in { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .sec-head.reveal,
  .strength-head.reveal,
  .sec-head-mega.reveal { opacity: 1; transform: none; transition: none; }
}

/* ===== チップ／タグボックス限定: 左からワイプで出現（2026-07-16赤ペンFB21）
   既存の.reveal機構（IntersectionObserver）にそのまま乗せる新variant。
   注意: clip-pathは「観測対象そのもの」には付けない。完全にclipされた要素は
   IntersectionObserver的に交差率0（＝画面内に入っても発火しない）になり、
   .inが永久に付かないデッドロックに陥るため。そこで.reveal-wipeは
   クリップされない「コンテナ」に付けて観測し、実際にワイプする子要素は
   コンポーネント別のディセンダントセレクタで指定する。
   対象: SERVICE左カラムのオレンジチップ（.svc2-chip、コンテナ=li）、
        /strengthの白枠タグ（.gp-tag、コンテナ=.gp-phase-tags）。
   1要素ずつのstagger用 transition-delay は各chip/tag自身にinline styleで付与。 ===== */
.svc2-points li.reveal-wipe .svc2-chip,
.gp-phase-tags.reveal-wipe .gp-tag {
  clip-path: inset(0 100% 0 0);
  /* 2026-07-17赤ペンFB24 #3a: ワイプ速度を少し遅く（.55s→.7s） */
  transition: clip-path .7s var(--ease);
}
.svc2-points li.reveal-wipe.in .svc2-chip,
.gp-phase-tags.reveal-wipe.in .gp-tag {
  clip-path: inset(0 0 0 0);
}
@media (prefers-reduced-motion: reduce) {
  .svc2-points li.reveal-wipe .svc2-chip,
  .gp-phase-tags.reveal-wipe .gp-tag {
    clip-path: inset(0 0 0 0); transition: none;
  }
}

/* ===== 動く線画SVGアイコン（Reason / Service / Flow） ===== */

/* --- Reason: カード右上アイコン --- */
.reason-card { position: relative; }
.r-ic {
  position: absolute; top: 34px; right: 28px;
  width: 54px; height: 54px; color: var(--ink);
}
.r-ic svg { width: 100%; height: 100%; }

/* 01: ルート分岐 — オレンジ点は animateMotion でSVG内処理 */
/* 02: 値札タグ — ゆっくりスイング */
@keyframes tagSwing {
  0%,100% { transform: rotate(-4deg); }
  50%      { transform: rotate(4deg); }
}
.r-ic-02 { transform-origin: 22px 10px; animation: tagSwing 4.5s ease-in-out infinite; transform-box: fill-box; }

/* 03: 店舗ドット — blink 再利用 */

/* --- Service: アコーディオン行アイコン --- */
.svc-head { grid-template-columns: 80px 44px 1fr auto; }
.svc-ic { width: 44px; height: 44px; color: var(--ink); flex: none; }
.svc-ic svg { width: 100%; height: 100%; }

/* 01: カチンコ上バー 浮遊 */
.svc-ic-01-bar { animation: illFloat 4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
/* 02: 音波弧 交互点滅 */
@keyframes waveBlink1 { 0%,100% { opacity: 1; } 50% { opacity: .2; } }
@keyframes waveBlink2 { 0%,100% { opacity: .2; } 50% { opacity: 1; } }
.svc-ic-02-w1 { animation: waveBlink1 2.2s ease-in-out infinite; }
.svc-ic-02-w2 { animation: waveBlink2 2.2s ease-in-out infinite; }
/* 03: 録画点 — blinkキーフレーム再利用（元は.about-illust配下限定だったため.svc-ic配下にも適用） */
.svc-ic .rec { animation: blink 1.6s ease infinite; }
/* 04: 箱の中の矢印 上下 */
@keyframes arrowBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.svc-ic-04-arr { animation: arrowBob 3.5s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
/* 05: AI受託開発チップ 中央ドット点滅（2026-07-17赤ペンFB25「他の事業内容」トグル新設分・pulseDot再利用） */
.svc-ic-05-dot { animation: pulseDot 2.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }

/* --- Flow: ステップ上アイコン --- */
.f-ic { display: block; width: 34px; height: 34px; color: var(--ink); margin-bottom: 12px; }
.f-ic svg { width: 100%; height: 100%; }

/* 01: 吹き出し浮遊 */
.f-ic-01-b { animation: illFloat 4.5s ease-in-out .2s infinite; transform-box: fill-box; transform-origin: center; }
/* 02: ペン先オレンジ点 — pulseDot 再利用 */
/* 03: 録画点 — blink 再利用 */
/* 04: チェック(オレンジ)はSVG fill のみ */
/* 05: 循環弧 dashMove風 */
@keyframes arcFlow { to { stroke-dashoffset: -28; } }
.f-ic-05-arc { stroke-dasharray: 14 8; animation: arcFlow 1.8s linear infinite; }
/* 05: グラフ上下 */
.f-ic-05-graph { animation: arrowBob 3.8s ease-in-out 1s infinite; transform-box: fill-box; transform-origin: center; }

/* Flow: アニメ開始タイミングをずらす */
.flow-step:nth-child(1) .f-ic svg * { animation-delay: 0s; }
.flow-step:nth-child(2) .f-ic svg * { animation-delay: .2s; }
.flow-step:nth-child(3) .f-ic svg * { animation-delay: .4s; }
.flow-step:nth-child(4) .f-ic svg * { animation-delay: .6s; }
.flow-step:nth-child(5) .f-ic svg * { animation-delay: .8s; }

/* ===== Problem ===== */
.problem-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.problem-card {
  background: var(--gray); border-radius: 14px; padding: 28px 28px;
  font-size: .9375rem; line-height: 1.9; color: var(--ink);
  display: flex; flex-direction: column;
}
.problem-card img {
  width: 100%; height: 130px; object-fit: contain;
  mix-blend-mode: multiply;
  margin-bottom: 14px; flex-shrink: 0;
}
.problem-card h4 {
  font-size: 1rem; font-weight: 700; line-height: 1.5;
  margin-bottom: 10px; color: var(--ink);
}
.problem-card p { font-size: .875rem; line-height: 1.85; color: var(--ink); }
.problem-chevron { text-align: center; margin-top: clamp(20px, 2.5vw, 32px); }
.problem-chevron svg { display: inline-block; }
.problem-msg { margin-top: clamp(16px, 2vw, 24px); font-size: 1.0625rem; line-height: 2.1; }

/* ===== Use Cases ===== */
.use-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.use-card {
  background: var(--gray); border-radius: 14px; padding: 28px 28px;
  font-size: .9375rem; line-height: 1.9; color: var(--ink);
}
.use-card h4 {
  font-size: 1rem; font-weight: 700; line-height: 1.5;
  margin-bottom: 10px; color: var(--ink);
}
.use-card p { font-size: .875rem; line-height: 1.85; color: var(--ink); }

@media (max-width: 1120px) {
  /* 右上ノッチ：ヘッダー縮小に合わせて幅を縮める（旧FVデザインの参照用ファイルが使用） */
  .hero-notch-r { width: 250px; }
}
@media (max-width: 900px) {
  /* スマホの白バー内はロゴ＋ハンバーガーのみ（お問い合わせは開いたm-nav側に既にある） */
  header nav a.cta { display: none; }
  .news-list a { grid-template-columns: 88px 74px 1fr; }
  .news-list .na { display: none; }
  .about-illust, .about-body { grid-column: 1 / -1; }
  .about-illust svg { max-width: 340px; margin-inline: auto; }
  .reason-grid { grid-template-columns: 1fr; }
  .voice-grid { grid-template-columns: 1fr; }
  .works-grid { grid-template-columns: 1fr 1fr; }
  .work-line { grid-column: span 2; aspect-ratio: auto; }
  .flow-list { grid-template-columns: 1fr 1fr; }
  /* Reason アイコン モバイル */
  .r-ic { top: 28px; right: 22px; width: 46px; height: 46px; }
  /* Service モバイル: 日本語主役（h3が日本語・.jaが英語サブ） */
  .svc-head { grid-template-columns: 36px 1fr auto; gap: 12px; padding: 22px 0; }
  .svc-head:hover { padding-left: 0; }
  .svc-head .num { display: none; }
  .svc-ic { width: 36px; height: 36px; }
  .svc-head h3 { font-size: 1.15rem; font-weight: 700; color: var(--ink); letter-spacing: .04em; }
  .svc-head h3 .ja { font-size: .75rem; font-weight: 600; color: var(--ink-60); margin-top: 4px; letter-spacing: .12em; }
  .svc-toggle { width: 40px; height: 40px; }
  .svc-toggle::before { left: 11px; top: 19px; width: 18px; }
  .svc-toggle::after { left: 19px; top: 11px; height: 18px; }
  .svc-price { font-size: 1.3rem; }
  .svc-body-in, .svc.open .svc-body-in { padding-left: 0; }
  .svc-body-cols { grid-template-columns: 1fr; }
  .ceo-grid { grid-template-columns: 1fr; }
  .ceo-stat { right: 10px; }
  .est-grid { grid-template-columns: 1fr; }
  .est-result { position: static; }
  .numbers-grid { grid-template-columns: 1fr; }
  .problem-grid { grid-template-columns: 1fr; }
  .problem-card img { height: 110px; }
  .use-grid { grid-template-columns: 1fr; }
  .reason-card h3 br { display: none; } /* モバイルは自然折返し */
  /* --- Hero モバイル: ノッチをやめて上部を白帯に（ヘッダーとの被り解消） --- */
  .hero { margin: 66px 8px 0; border-radius: 22px; min-height: 82svh; padding-bottom: 96px; }
  .hero-notch, .hero-notch-r { display: none; }
  .hero-head { padding: 36px 8px 0; }
  /* モバイル：2文目も1行に収まる範囲で大きめに */
  .hero-head h1 { font-size: clamp(.75rem, 4.2vw, 1.3rem); letter-spacing: .01em; gap: 7px; }
  .hero-head h1 .hl { padding: 2px 4px 3px 8px; }
  /* モバイル：モックは中央・少し控えめサイズ */
  .hero-phone {
    left: 50%; top: 57.5%; width: min(50vw, 212px);
    perspective: none;
  }
  .phone-tilt {
    transform: rotate(6deg);
    /* モバイルはマウスチルト無効なので固定回転のみ */
  }
  .hero-proof { padding: 16px 18px 0 24px; border-top-left-radius: 16px; }
  .hero-proof::before, .hero-proof::after { width: 16px; height: 16px; background: radial-gradient(circle at 0 0, transparent 16px, #fff 16.5px); }
  .hero-proof::before { top: -16px; }
  .hero-proof::after { left: -16px; }
  .hero-stats { gap: 20px; }
}
/* ===== プラン比較表（Service04） ===== */
.plan-table-wrap {
  overflow-x: auto;
  background: var(--gray);
  border-radius: 14px;
  padding: 24px;
  margin-top: 28px;
  -webkit-overflow-scrolling: touch;
}
.plan-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
  min-width: 720px;
}
.plan-table th,
.plan-table td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: top;
  line-height: 1.7;
}
.plan-table thead th {
  font-weight: 700;
  font-family: var(--font-ja);
}
.plan-table thead th:first-child { color: var(--ink-60); font-weight: 500; }
.plan-table tbody th {
  font-weight: 700;
  font-size: .8125rem;
  color: var(--ink-60);
  white-space: nowrap;
}
.plan-table tbody tr:last-child th,
.plan-table tbody tr:last-child td { border-bottom: none; }
.plan-table-note {
  font-size: .75rem;
  color: var(--ink-60);
  margin-top: 12px;
  line-height: 1.7;
}
@media (max-width: 900px) {
  .plan-table th, .plan-table td { padding: 10px 10px; font-size: .8125rem; }
}

@media (max-width: 640px) {
  .sec-head .ja { font-size: 1.35rem; }
  .reason-lead { font-size: .9375rem; margin-top: -4px; }
  .hb-card { border-radius: 10px; }
  .card { width: 168px; }
  .num-card { padding: 32px 26px 28px; }
  .num-card .big { font-size: 2.7rem; }
  .cta-buttons { flex-direction: column; align-items: stretch; }
  .cta-buttons .btn-w { justify-content: center; }
  .float-cta { width: 216px; }
  /* フッター（2026-07-15赤ペンFB11 #4調査結果）: これまでflex-direction:columnで
     ブランド欄+SERVICE/MENU/SUPPORT/LEGALの4nav計5ブロックが完全に縦一列に
     並んでいたため、リンク数が多い分だけフッター全体が異常に縦長(~1150px、
     画面の1.4倍)になっていた。m-nav全画面化の副作用ではなく、単純にこの
     縦積みレイアウトが原因。4navを2×2グリッドに変更して高さを半分程度に圧縮する
     （ブランド欄だけは1行目に全幅で残す）。 */
  .foot { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 24px; row-gap: 32px; align-items: start; }
  .foot > div { grid-column: 1 / -1; }
  .footer-mark { right: 12px; bottom: 10px; width: min(88%, 340px); }
}

/* ============================================================
   事業ページ共通コンポーネント（Phase 2〜: /video 等の事業別ページで使用）
   既存ルールは変更せず、ここに追記のみ。
   ============================================================ */

/* ページFV（余白型・トップの.heroより控えめ。白背景+.mk下線のみ） */
.page-fv { padding: clamp(24px, 4vw, 48px) 0 clamp(8px, 2vw, 16px); }
.page-fv .sec-head { margin-bottom: 22px; }
/* 2026-07-17赤ペンFB24 #4: 各ページ共通のFVリード文が細すぎるとの指摘。
   グレー(ink-60)→黒に寄せ、weightも太くする */
.page-fv-lead { max-width: 600px; font-size: .9375rem; color: var(--ink); font-weight: 500; line-height: 2; }
.page-fv-price { margin-top: 30px; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.page-fv-price .price { font-family: var(--font-en); font-weight: 900; font-size: 1.9rem; color: var(--ink); }
.page-fv-price .price small { font-family: var(--font-ja); font-weight: 700; font-size: .5em; margin-left: 2px; }
.page-fv-price .price-note { font-size: .8125rem; color: var(--ink-60); font-weight: 500; }
.page-fv-cta { margin-top: 34px; }
.page-fv-doc-link { display: inline-block; margin-top: 10px; font-size: .8125rem; font-weight: 600; color: var(--ink-60); text-decoration: none; transition: color .3s; }
.page-fv-doc-link:hover { color: var(--ink); }

/* 提供内容（事業ページ③）: svc-desc/svc-points をアコーディオン外で単体使用 */
.content-body { max-width: 720px; display: flex; flex-direction: column; gap: 22px; }
.content-note { font-size: .8125rem; color: var(--ink-60); line-height: 1.9; }

/* 料金（事業ページ④）: 単価見出し＋plan-table を流用 */
.pricing-lead { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 28px; }
.pricing-lead .price-big { font-family: var(--font-en); font-weight: 900; font-size: clamp(2rem, 4vw, 2.6rem); color: var(--ink); }
.pricing-lead .price-big small { font-family: var(--font-ja); font-weight: 700; font-size: .4em; margin-left: 2px; }
.pricing-lead .price-big-note { font-size: .875rem; color: var(--ink-60); font-weight: 500; }

/* 制作事例（事業ページ⑤）: Worksカードを静的グリッドで表示 */
.works-static-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }

/* Numbers / Voice を1枚・2枚だけ抜粋するときのモディファイア */
.numbers-grid.single-stat { grid-template-columns: 1fr; max-width: 320px; margin-inline: auto; }
.voice-grid.two-col { grid-template-columns: repeat(2, 1fr); max-width: 820px; margin-inline: auto; }

@media (max-width: 900px) {
  .works-static-grid { grid-template-columns: repeat(2, 1fr); }
  .voice-grid.two-col { grid-template-columns: 1fr; max-width: 480px; }
}
@media (max-width: 640px) {
  .page-fv-price { gap: 8px; }
  .pricing-lead { gap: 8px; }
}

/* ============================================================
   トップ v1.2（newmo型）: Mission帯 + 事業カード2×2
   既存ルールは変更せず、ここに追記のみ。
   ============================================================ */

/* ===== Mission（黒ベタ帯） ===== */
.mission { background: var(--ink); color: #fff; padding-top: var(--gap); padding-bottom: var(--gap); margin-top: var(--gap); text-align: center; }
.mission .sec-head { text-align: center; }
.mission .sec-head .en { color: var(--brand); }
.mission .sec-head .ja { color: #fff; }
.mission-lead { color: #c9c9c9; font-size: .9375rem; max-width: 560px; margin: 0 auto 34px; line-height: 1.9; }
.mission-btn {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1.5px solid #fff; color: #fff; text-decoration: none;
  padding: 14px 30px; border-radius: 9999px; font-weight: 700; font-size: .9375rem;
  transition: background .2s, color .2s;
}
.mission-btn:hover { background: #fff; color: var(--ink); }

/* ===== Business（事業カード2×2・イラスト大きめ） ===== */
.biz-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.biz-card {
  background: var(--gray); border-radius: 20px; padding: 32px;
  display: flex; flex-direction: column; min-height: 320px;
  text-decoration: none; color: inherit; transition: background .25s;
}
.biz-card:hover { background: #ebebe9; }
.biz-illust { width: 100%; height: 150px; display: flex; align-items: center; justify-content: center; margin-bottom: 22px; }
.biz-illust svg { width: 140px; height: 140px; display: block; }
.biz-card-body h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 10px; line-height: 1.4; }
.biz-card-body p { font-size: .875rem; color: var(--ink-60); line-height: 1.8; max-width: 30em; }
.biz-card-bottom { margin-top: auto; padding-top: 20px; display: flex; justify-content: flex-end; }
.biz-arrow {
  width: 50px; height: 50px; border-radius: 50%; background: var(--brand); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 1.15rem;
  flex-shrink: 0; transition: transform .25s;
}
.biz-card:hover .biz-arrow { transform: translate(4px, -4px); }

@media (max-width: 900px) {
  .biz-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .mission-lead { font-size: .875rem; }
  .biz-card { padding: 26px; min-height: 0; }
  .biz-illust { height: 120px; margin-bottom: 16px; }
  .biz-illust svg { width: 110px; height: 110px; }
}

/* ============================================================
   /shooting 用: 静的な業種スチル・ショーケース（work-*.png流用）
   既存ルールは変更せず、ここに追記のみ。
   ============================================================ */
.works-static-grid .ws-item {
  position: relative; border-radius: 14px; overflow: hidden;
  aspect-ratio: 4 / 3; background: var(--gray);
}
.works-static-grid .ws-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.works-static-grid .ws-item .tag {
  position: absolute; left: 12px; bottom: 12px; background: #fff; color: var(--ink);
  font-size: .75rem; font-weight: 700; padding: 5px 10px; border-radius: 999px;
}
.shoot-note { font-size: .8125rem; color: var(--ink-60); line-height: 1.9; margin-top: 18px; }

/* ============================================================
   ノート方眼格子×紙質感ノイズ 複合背景（承認済みデモ preview_texture_demo.html
   の「B+C複合」ブロック .demo-bc をそのまま流用した再利用クラス）
   - 薄グレー地 #f4f4f4 ＋ 方眼線: repeating-linear-gradient
     （画像を使わないのでボケない）
   - 紙ノイズ: 既存 --grain（feTurbulence）を multiply で薄く重ねる
   - 適用先の直下の子要素は自動で前面（z-index:2）に来る
   既存ルールは変更せず、ここに追記のみ。
   ============================================================ */
.bg-grid-paper {
  position: relative;
  background-color: #f4f4f4;
  background-image:
    repeating-linear-gradient(0deg, rgba(38, 38, 38, .06) 0 1px, transparent 1px 32px),
    repeating-linear-gradient(90deg, rgba(38, 38, 38, .06) 0 1px, transparent 1px 32px);
}
.bg-grid-paper::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: var(--grain);
  opacity: .14; mix-blend-mode: multiply;
}
.bg-grid-paper > * { position: relative; z-index: 2; }

/* ---- トップ「こんなお悩みはありませんか」限定の適用スタイル（#problemスコープ付き） ----
   デモ同様「質感帯の上に白いカードが浮く」構図にするため、
   帯を全幅化した分の下パディングと、カード背景の白上書きのみ。
   カード内の文字・角丸は既存のまま。他ページ・他セクションの .problem-card には影響しない。 */
#problem.bg-grid-paper { padding-bottom: var(--gap); margin-top: var(--gap); }
#problem.bg-grid-paper .problem-card { background: #fff; }

/* ============================================================
   /service ページ（DMJ /service/ 型リビルド・2026-07-14新設）
   既存ルールは変更せず、ここに追記のみ。
   ============================================================ */

/* ----- 画像スペース（青木さん制作予定・差し替えは中身を<img>1枚に置き換えるだけ）-----
   .img-space が枠（背景色・破線・角丸・aspect-ratio）を持つので、
   後日 <span class="img-space-label"> を <img src="..." alt="..."> に差し替えるだけで完成する。 */
.img-space {
  background: var(--gray); border: 1px dashed var(--line); border-radius: 14px;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.img-space img { width: 100%; height: 100%; object-fit: cover; display: block; }
.img-space-label { font-size: .75rem; font-weight: 700; color: var(--ink-40); letter-spacing: .04em; text-align: center; line-height: 1.7; padding: 0 16px; }
.img-space--hero { aspect-ratio: 4 / 5; }
.img-space--sm { aspect-ratio: 4 / 3; }
.img-space--wide { aspect-ratio: 16 / 11; border-radius: 10px; } /* /service「3つの武器」図版スペース用（2026-07-16赤ペンFB21） */

/* ----- 2026-07-17 CVR改善#2: 「制作予定」の空グレーボックスは未完成に見えて
   離脱要因になるため、画像が入っていない間は非表示にする。
   [復活手順] .img-space の中身（<span class="img-space-label">…）を
   <img src="assets/xxx.webp" alt="…"> に置き換えるだけで、
   下の :not(:has(img)) が false になり自動的に元の画像ありレイアウトへ戻る。
   このCSSブロック・各レイアウトの1カラム化ルールは編集不要。 ----- */
.img-space:not(:has(img)) { display: none; }

/* ----- SERVICE 01（主役・左画像+右文字組）----- */
.svc-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.svc-hero-body { display: flex; flex-direction: column; }
.svc-hero-eyebrow { font-family: var(--font-en); font-weight: 700; font-size: .9375rem; letter-spacing: .1em; color: var(--ink-60); }
.svc-hero-title { font-weight: 900; font-size: clamp(2rem, 4.4vw, 3rem); line-height: 1.3; margin: 8px 0 4px; letter-spacing: -.02em; font-feature-settings: "palt" 1; }
.svc-hero-en { font-family: var(--font-en); font-style: italic; font-weight: 700; font-size: .8125rem; letter-spacing: .18em; color: var(--brand); }
.svc-hero-msg { font-weight: 700; font-size: 1.0625rem; line-height: 1.9; margin-top: 22px; max-width: 480px; }
.svc-hero-desc { font-size: .875rem; color: var(--ink-60); line-height: 1.9; margin-top: 12px; max-width: 480px; }
.svc-hero .svc-link { margin-top: 26px; align-self: flex-start; }

/* ----- SERVICE 02-04（番号+小さめ画像+文字組）----- */
.svc-row-body { display: grid; grid-template-columns: 132px 1fr; gap: 24px; align-items: start; }

/* ----- 対応業種グリッド（Works由来の6業種・.shop-chipと同素材で単独セクション用）----- */
.industry-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.industry-grid .shop-chip { font-size: .875rem; padding: 10px 22px; }

@media (max-width: 900px) {
  .svc-hero { grid-template-columns: 1fr; gap: 26px; }
  .img-space--hero { aspect-ratio: 16 / 10; }
  .svc-hero-title { font-size: 1.6rem; }
  .svc-row-body { grid-template-columns: 1fr; gap: 14px; }
  .svc-row-body .img-space--sm { aspect-ratio: 16 / 9; max-width: 260px; }
}

/* ============================================================
   /process ページ（DMJ /model/ 型リビルド・2026-07-14新設）
   既存ルールは変更せず、ここに追記のみ。
   ============================================================ */

/* ----- フェーズ間・ステップ間の余白は通常より大きく取る（DMJの空気）----- */
.phase-head { margin-bottom: clamp(44px, 6vw, 76px); }
.step-list { display: flex; flex-direction: column; gap: clamp(56px, 8vw, 100px); }

/* ----- 各ステップ: 左=番号+見出し+説明／右=画像スペース -----
   grid-template-areas で「head/desc」を左列、「img」を右列に2行分スパンさせる。
   モバイルは head → img → desc の縦積みに並び替え。 */
.step {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.15fr);
  grid-template-rows: max-content 1fr;
  grid-template-areas: "head img" "desc img";
  column-gap: clamp(32px, 5vw, 64px);
  row-gap: 22px;
  align-items: start;
}
.step-head { grid-area: head; }
.step-img { grid-area: img; align-self: stretch; }
/* 2026-07-17赤ペンFB24 #4: STEP説明が細すぎるとの指摘 */
.step-desc { grid-area: desc; font-size: .875rem; color: var(--ink); font-weight: 500; line-height: 1.9; max-width: 480px; }
/* 2026-07-17 CVR改善#2: 図版(.step-img)が空の間は.img-spaceごと非表示になるため、
   右列を畳んでhead/descを縦積み1カラムにする。画像を入れれば自動的に元の
   head/desc + img の2カラムレイアウトへ戻る。 */
.step:not(:has(.step-img img)) {
  grid-template-columns: 1fr;
  grid-template-areas: "head" "desc";
}

.step-num { display: block; font-family: var(--font-en); font-weight: 900; font-size: clamp(3.4rem, 6.2vw, 5.6rem); line-height: 1; letter-spacing: -.04em; color: var(--brand); }
.step-heading { font-weight: 900; font-size: clamp(1.4rem, 2.2vw, 1.75rem); line-height: 1.4; margin-top: 14px; letter-spacing: -.01em; font-feature-settings: "palt" 1; }

/* ----- 定額への導線1行 ----- */
.phase-outro-sec { text-align: center; }
/* 2026-07-17赤ペンFB24 #4: 本文が細すぎるとの指摘 */
.phase-outro { font-size: .9375rem; color: var(--ink); font-weight: 500; }
.phase-outro .svc-link { margin-left: 12px; }

@media (max-width: 900px) {
  .step-list { gap: 48px; }
  .step { grid-template-columns: 1fr; grid-template-rows: auto auto auto; grid-template-areas: "head" "img" "desc"; row-gap: 20px; }
  .step-num { font-size: 3rem; }
  .step-heading { font-size: 1.3rem; }
  .step-desc { max-width: none; }
}

/* ============================================================
   /strength ページ（DMJ /service/ 型「3つの武器」セクション忠実再現・2026-07-16赤ペンFB21新設）
   左＝position:stickyの縦書き大見出し／右＝PHASE 01-06のブロック列＋サイクル帯、
   別セクションで「3つの武器」（巨大数字＋図版スペース）。既存ルールは変更せず追記のみ。
   ============================================================ */

/* ----- 縦書き（tategaki）共通: 親はrow-reverseの横flex（DOM順=読み順で先頭が右）、
   子<p>だけwriting-mode:vertical-rlにする方式（親自体を縦書きにしない）。 ----- */
/* 2026-07-17 FB28: DMJの縦書き大見出し(参考スクショ)を再現。
   1文字ずつのボックスは不要——CSSの縦書き(writing-mode)+極太+
   字間を升目ギリギリまで詰める+列間も詰める、の組み合わせで組める。 */
.gp-vert, .gpw-vert {
  display: flex; flex-direction: row-reverse; align-items: flex-start;
  gap: clamp(4px, .7vw, 10px);
}
.gp-vert p, .gpw-vert p {
  writing-mode: vertical-rl; text-orientation: mixed; margin: 0;
  font-weight: 900; font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.08;
  letter-spacing: .01em; color: var(--ink); font-feature-settings: "palt" 1;
}
.gpw-accent { color: var(--brand); }
/* 縦書き中の数字: 縦中横(text-combine-upright)+位置補正のハックは
   ブラウザの描画癖でどうしてもセンターが揺れるため、2026-07-17に廃止。
   数字は全角(３など)で書く——全角数字は漢字と同じ正方形の升目で
   デザインされているため縦書きで原理的にズレない(FB27根本修正)。 */
/* 「成果改善の流れ」左見出し: 条件節(3つの武器が連動するから)は控えめ、
   結論(成果が動き続ける)はより大きく・太く・行間を詰めて強調する（2026-07-17赤ペンFB23）。
   2026-07-17赤ペンFB26: 「成果を生む、3つの武器」見出し（.gpw-vert、太字900/clamp(1.5rem,2.3vw,2.125rem)基準）
   と、この結論行のウェイト・サイズ感を統一。従来はここだけ最大2.875remまで拡大されていたため縮小。 */
/* 条件節は黒のまま一段細く・小さく(参考スクショの階層)。結論列は上の基準サイズ。 */
.gp-vert .gp-vert-sub { font-weight: 800; font-size: clamp(1.125rem, 1.8vw, 1.625rem); line-height: 1.5; letter-spacing: .08em; color: var(--ink); }
.gp-vert .gp-vert-main { line-height: 1.08; }

/* ----- PHASE列セクション（左sticky＋右ブロック列）
   2026-07-17赤ペンFB25: 左カラムの余白が広すぎるとの指摘で、確保する幅を大幅に縮小
   （24%→11%程度）。空いた分は右の図解・本文エリアに還元し、「3つの武器」(.gpw-grid)と
   左端の位置・比率を完全に揃える。 ----- */
.gp-grid, .gpw-grid { display: grid; grid-template-columns: minmax(72px, 11%) 1fr; gap: clamp(20px, 2.6vw, 40px); align-items: start; }
.gp-left, .gpw-left { position: sticky; top: clamp(96px, 26vh, 260px); padding-bottom: 40px; }
.gp-right { min-width: 0; }

/* 2026-07-17赤ペンFB23: 囲みを上下ボーダー(共有線)からL字枠(左+上のみ)に変更。
   隣接ブロックとの間隔はborder-bottomの代わりにmargin-topで確保する。
   2026-07-17赤ペンFB25: 枠線の色はオレンジ→黒(ink)に変更（線のデザイン自体は維持、
   ブランドオレンジは「点」だけに絞る全体方針に合わせる）。 */
.gp-phase {
  border-left: 2px solid var(--ink); border-top: 2px solid var(--ink);
  padding: clamp(24px, 3vw, 36px) 0 clamp(24px, 3vw, 36px) clamp(22px, 3vw, 34px);
  margin-top: clamp(22px, 2.8vw, 34px);
}
.gp-phase:first-of-type { margin-top: 0; }
.gp-phase-label { font-family: var(--font-en); font-weight: 700; font-size: .75rem; letter-spacing: .12em; color: var(--ink-40); text-transform: uppercase; }
.gp-phase-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: clamp(10px, 1.6vw, 20px); margin-top: 10px; }
.gp-phase-head { font-weight: 900; font-size: clamp(1.5rem, 2.6vw, 2.125rem); letter-spacing: -.02em; color: var(--ink); font-feature-settings: "palt" 1; }
.gp-phase-msg { font-size: .9375rem; color: var(--ink); font-weight: 500; line-height: 1.8; }
.gp-phase-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.gp-tag { display: inline-block; border: 1px solid var(--line); background: #fff; padding: 9px 16px; font-size: .8125rem; font-weight: 700; color: var(--ink); }

/* PHASE 06: オレンジ強調枠（DMJのハイライトブロックに相当。全周囲みのため他とは別扱い） */
.gp-phase.gp-phase--hi {
  border: 2px solid var(--brand); border-radius: 2px;
  padding: clamp(26px, 3.2vw, 40px) clamp(22px, 3vw, 34px);
}
.gp-phase--hi .gp-phase-label, .gp-phase--hi .gp-phase-head { color: var(--brand); }
.gp-phase--hi .gp-tag { border-color: rgba(234, 64, 3, .35); color: var(--brand); }

/* ----- サイクル帯（オレンジ→グレー×3→オレンジ太字の結論） ----- */
.gp-cycle { display: flex; align-items: stretch; flex-wrap: wrap; gap: clamp(10px, 1.6vw, 16px); margin-top: clamp(40px, 5vw, 64px); }
.gp-cycle-item {
  flex: 1 1 160px; background: #fff; border: 1px solid var(--line); border-radius: 2px;
  padding: clamp(16px, 2vw, 22px) clamp(14px, 2vw, 20px);
  font-weight: 800; font-size: .9375rem; line-height: 1.5; text-align: center;
  display: flex; align-items: center; justify-content: center;
}
.gp-cycle-item--main { flex: 1 1 200px; background: var(--brand); color: #fff; }
.gp-cycle-item--result { flex: 1 1 260px; background: transparent; color: var(--brand); font-weight: 900; }
.gp-cycle-arrow { flex: 0 0 auto; display: flex; align-items: center; font-family: var(--font-en); font-size: 1.25rem; color: var(--ink-40); }

/* ----- 「3つの武器」セクション（左sticky＋右に巨大数字+図版スペース+文字組）
   grid-template-columns / gap / position は上の .gp-grid, .gpw-grid 側に統合済み
   （成果改善の流れと左端・比率を揃えるため）。ここは .gpw-right 以下の固有スタイルのみ。 ----- */
.gpw-right { min-width: 0; display: flex; flex-direction: column; gap: clamp(56px, 7vw, 96px); }
.gpw-item { display: grid; grid-template-columns: minmax(0, 52%) 1fr; gap: clamp(28px, 3.6vw, 52px); align-items: stretch; }
.gpw-img { width: 100%; height: 100%; }
.gpw-body { display: flex; flex-direction: column; justify-content: space-between; height: 100%; position: relative; }
/* 2026-07-17 CVR改善#2: 図版(.gpw-img)が空の間は.img-spaceごと非表示になるため、
   図版列を畳んでテキスト列を全幅に広げる。画像を入れれば自動的に
   「左52%画像＋右テキスト」の2カラムへ戻る。 */
.gpw-item:not(:has(.gpw-img img)) { grid-template-columns: 1fr; }
.gpw-item:not(:has(.gpw-img img)) .gpw-body { height: auto; }
/* 2026-07-17赤ペンFB23: 数字を通常の文字組から「背景に大きく敷く」演出に変更→
   2026-07-17赤ペンFB24 #7: グラデ文字が安っぽいとの指摘でベタ塗り#ea4003に変更→
   2026-07-17赤ペンFB26: 「右上の薄い透かし巨大数字」自体が安っぽいとの指摘で全面再設計。
   eyebrowの左に置く小さな構造要素（Geistイタリック900・オレンジ・中サイズ）にし、
   行の下に細線を敷いてDMJの武器セクション風の整った番号にする。 */
.gpw-eyebrow-row {
  display: flex; align-items: baseline; gap: 12px;
  padding-bottom: clamp(12px, 1.4vw, 16px);
  margin-bottom: clamp(14px, 1.8vw, 20px);
  border-bottom: 1px solid var(--line);
}
.gpw-num {
  font-family: var(--font-en); font-style: italic; font-weight: 900;
  font-size: clamp(1.5rem, 2.2vw, 1.875rem); line-height: 1; letter-spacing: -.02em;
  color: var(--brand);
}
.gpw-text { margin-top: auto; position: relative; z-index: 1; }
.gpw-eyebrow { display: block; font-weight: 800; font-size: 1rem; letter-spacing: .06em; color: var(--brand); }
.gpw-head { font-weight: 900; font-size: clamp(1.75rem, 3.2vw, 2.5rem); line-height: 1.4; margin-top: 12px; letter-spacing: -.01em; font-feature-settings: "palt" 1; }
.gpw-desc { font-size: .9375rem; color: var(--ink); font-weight: 500; line-height: 1.9; margin-top: 14px; max-width: 480px; }

@media (max-width: 900px) {
  .gp-grid, .gpw-grid { grid-template-columns: 1fr; gap: 30px; }
  .gp-left, .gpw-left { position: static; top: auto; padding-bottom: 0; }
  /* モバイル: 縦書き見出しを横書きへ切替（読みやすさ優先・DMJのスマホ挙動に倣う） */
  .gp-vert, .gpw-vert { flex-direction: row; flex-wrap: wrap; font-size: 1.25rem; }
  .gp-vert p, .gpw-vert p { writing-mode: horizontal-tb; text-orientation: initial; }
  .gp-vert .gp-vert-sub, .gp-vert .gp-vert-main { line-height: 1.6; }
  .gpw-item { grid-template-columns: 1fr; }
  .gpw-body { height: auto; }
  .gp-cycle { flex-direction: column; }
  .gp-cycle-arrow { transform: rotate(90deg); justify-content: center; }
}

/* ============================================================
   /strength ページ v2（DMJ /model/ クローン・2026-07-16赤ペンFB22で全面作り直し）
   旧/strength用の .gp- 系 / .gpw- 系は /service へ移設して残置（変更なし）。
   ここでは新規プレフィックス mdl- 系のみを追加する。既存ルールは変更しない。
   ※CSSコメント内に「アスタリスク+スラッシュ」の並びを書くとコメントが
   そこで閉じて直後のルールが丸ごと無効化される（今回 .mdl-phase の
   オレンジ背景が消えた原因）。ワイルドカード表記は「.gp- 系」等で書くこと。
   ============================================================ */

/* ----- PHASE セクション（2026-07-17赤ペンFB26: 背景の濃淡差を廃止し単色ベタ塗りに統一。
   .wrapで囲まず<section>自体を全幅にする。方眼線・グレインは維持。 ----- */
.mdl-phase {
  position: relative; overflow: hidden;
  background: #1a1a19;
}
.mdl-phase::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    repeating-linear-gradient(180deg, rgba(255,255,255,.06) 0 1px, transparent 1px 32px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 1px, transparent 1px 32px);
}
.mdl-phase::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: var(--grain); opacity: .09; mix-blend-mode: overlay;
}
/* 2026-07-17赤ペンFB26: 「PHASE番号を右上寄せ」(FB25)から「左固定sticky」へ差し戻し。
   DMJ /model/ 参考同様、左＝PHASE番号(sticky)／右＝白パネルの2カラム構成にする。
   ヘッダー(fixed, 高さ約80px)の下にスティッキー時の余白を足してtopを設定。
   2026-07-17赤ペンFB27-1: 「横幅がギリギリすぎる」ため min(97%)→min(92%) に縮小し、
   PHASE番号+白パネルのセット全体が中央寄りに見えるよう左右の余白を確保。 */
.mdl-phase-in {
  position: relative; z-index: 2;
  width: min(92%, 1600px); margin: 0 auto;
  padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(28px, 4vw, 48px);
  display: grid; grid-template-columns: clamp(90px, 11vw, 160px) 1fr;
  gap: clamp(20px, 3vw, 40px);
  align-items: start;
}
/* 2026-07-17赤ペンFB27-4: PHASE間の矢印表現（下記.mdl-phase-arrow）を置く分の
   余白を広めに確保する修飾クラス。次のPHASEがある01〜03のみHTML側で付与。 */
.mdl-phase-in--arrow { padding-bottom: clamp(60px, 7.5vw, 92px); }
.mdl-phase-num {
  position: sticky; top: calc(80px + clamp(20px, 3vw, 40px));
  color: #fff; font-family: var(--font-en); font-weight: 800;
  font-size: clamp(1.6rem, 3vw, 2.6rem); line-height: 1.05; letter-spacing: -.01em;
  text-align: left; margin: 0;
}
.mdl-phase-panel { background: #fff; display: grid; grid-template-columns: clamp(90px, 11vw, 160px) 1fr; }
.mdl-phase-vert {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: clamp(10px, 1.4vw, 16px);
  padding: clamp(28px, 4vw, 48px) clamp(10px, 1.4vw, 18px);
  border-right: 1px solid var(--line);
}
.mdl-vert-head {
  writing-mode: vertical-rl; text-orientation: mixed; margin: 0; font-feature-settings: "palt" 1;
  color: var(--brand); font-weight: 900; font-size: clamp(2.2rem, 4.4vw, 4.25rem); letter-spacing: .04em; line-height: 1;
}
/* 2026-07-17赤ペンFB25: DMJ参考同様、縦書きタイトル直下にオレンジの小さいサブテキストを配置
   （従来は justify-content:space-between でパネル下端に離れて表示されていた）。
   2026-07-17赤ペンFB27-5: 「横書き小文字」から、参考画像(DMJ /model/)準拠の
   「縦書きのまま大見出しの下に続く・同系色・中サイズ」の形に変更。
   大見出しとの階層差はサイズ＋字間で付け、見出しより少し左寄りに置く。 */
.mdl-vert-sub {
  writing-mode: vertical-rl; text-orientation: mixed; margin: 0;
  color: var(--brand); font-weight: 700; font-size: clamp(1rem, 1.6vw, 1.375rem); letter-spacing: .1em;
  line-height: 1.5; text-align: center;
  transform: translateX(-8%);
}

.mdl-steps { display: flex; flex-direction: column; }
/* 2026-07-17赤ペンFB27-3: 縦に間延びして見えるため縦方向の余白を圧縮
   （padding上下・text内gapを詰め、図版アスペクト比も少し横長に）。 */
.mdl-step {
  display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);
  gap: clamp(24px, 3.4vw, 48px);
  padding: clamp(20px, 2.6vw, 32px) clamp(24px, 3.4vw, 44px);
  border-bottom: 1px solid var(--line);
}
.mdl-steps .mdl-step:last-child { border-bottom: none; }
.mdl-step-text { display: flex; flex-direction: column; justify-content: space-between; align-self: stretch; gap: 16px; }
.mdl-step-chip {
  display: inline-block; background: var(--brand); color: #fff;
  font-weight: 800; font-size: .8125rem; letter-spacing: .06em; padding: 7px 18px;
}
.mdl-step-head {
  font-weight: 900; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.4;
  margin-top: 14px; letter-spacing: -.01em; font-feature-settings: "palt" 1; color: var(--ink);
}
/* 2026-07-17赤ペンFB27-2: サブテキストをもう少し大きく（.875rem→1rem、太さ700は維持）。 */
.mdl-step-desc {
  font-size: 1rem; color: var(--ink); font-weight: 700; line-height: 1.9;
  max-width: 26em; text-align: right; align-self: flex-end;
}
.mdl-step-img { width: 100%; aspect-ratio: 16 / 11; align-self: start; }
/* 2026-07-17 CVR改善#2: 図版(.mdl-step-img)が空(<img>未挿入)の間は.img-spaceごと
   非表示になるため、1カラム化してテキストに全幅を渡す。右寄せだった説明文も
   左寄せに戻し、不自然な右余白を防ぐ。画像を入れれば自動的に2カラムに復帰する。 */
.mdl-step:not(:has(.mdl-step-img img)) { grid-template-columns: 1fr; }
.mdl-step:not(:has(.mdl-step-img img)) .mdl-step-desc { text-align: left; align-self: flex-start; max-width: none; }
/* 図版が消えてSTEPS側(.mdl-steps)が縦書き見出し(.mdl-phase-vert)より短くなると、
   .mdl-phase-panelがgrid既定のstretchで高さを揃えるため下部に不自然な余白が残る。
   図版無し状態のみSTEPS側を縦中央寄せにして、見出しと視覚的な重心を合わせる。
   （:has()は:has()同士を入れ子にできない仕様のため、.mdl-steps単位で
   「中にimgが1枚も無い」を直接判定する形にしている） */
.mdl-steps:not(:has(img)) { justify-content: center; }

/* 2026-07-17赤ペンFB25: PHASE間の「つなぎ帯」(.mdl-transition系、独立したセクション)は
   HTMLから撤去し、暗い格子背景をPHASE同士で途切れず連続させる方針に変更したため削除。
   2026-07-17赤ペンFB27-4: ただし境目が分かりにくいとのFBを受け、帯は作らず、
   格子背景を連続させたまま境目に小さな矢印（縦点線＋シェブロン）だけを重ねる。
   HTML側で次のPHASEがある01〜03の.mdl-phase-in末尾にのみ .mdl-phase-arrow を追加。 */
.mdl-phase-arrow {
  position: absolute; left: 50%; bottom: clamp(14px, 2vw, 24px);
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  z-index: 3; pointer-events: none;
}
.mdl-phase-arrow-dots {
  width: 1px; height: clamp(20px, 3vw, 30px);
  background-image: repeating-linear-gradient(180deg, rgba(255,255,255,.55) 0 4px, transparent 4px 9px);
}
.mdl-phase-arrow-ic { width: 20px; height: 12px; color: var(--brand); opacity: .92; }

@media (max-width: 900px) {
  .mdl-phase-in { grid-template-columns: 1fr; gap: 16px; }
  .mdl-phase-in--arrow { padding-bottom: clamp(52px, 12vw, 68px); }
  .mdl-phase-num { position: static; font-size: 1.8rem; text-align: left; }
  .mdl-phase-panel { grid-template-columns: 1fr; }
  .mdl-phase-vert { flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; border-right: none; border-bottom: 1px solid var(--line); padding: 20px 18px; gap: 8px 20px; }
  .mdl-vert-head { writing-mode: horizontal-tb; text-orientation: initial; letter-spacing: .04em; font-size: 1.5rem; }
  .mdl-vert-sub { writing-mode: horizontal-tb; text-orientation: initial; text-align: left; transform: none; }
  .mdl-step { grid-template-columns: 1fr; gap: 16px; padding: 22px 20px; }
  .mdl-step-desc { text-align: left; align-self: flex-start; }
  .mdl-phase-arrow { bottom: clamp(10px, 3vw, 18px); }
}

/* ----- 暗いグレイニーバナー（既存.cta-bandと同じstone-texture+grain資産を流用した専用コンポーネント） ----- */
.mdl-dark {
  background-image:
    linear-gradient(165deg, rgba(8,8,9,.7), rgba(20,21,23,.55) 45%, rgba(6,6,7,.76)),
    url("../assets/stone-texture.webp");
  background-size: cover; background-position: center; background-repeat: no-repeat;
  color: #fff; border-radius: 24px; margin-top: var(--gap);
  padding: clamp(48px, 7vw, 88px) clamp(28px, 5vw, 64px);
  position: relative; overflow: hidden;
}
.mdl-dark::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: var(--grain); opacity: .16; mix-blend-mode: overlay; }
.mdl-dark > * { position: relative; z-index: 2; }
.mdl-dark-head {
  font-weight: 900; font-size: clamp(1.6rem, 4vw, 3rem); line-height: 1.5;
  letter-spacing: -.02em; font-feature-settings: "palt" 1; text-shadow: 0 2px 10px rgba(0,0,0,.4);
}
.mdl-dark-rule { border: none; border-top: 1px solid rgba(255,255,255,.35); margin: clamp(28px, 4vw, 44px) 0; }
.mdl-dark-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.mdl-dark-desc { font-size: .875rem; color: rgba(255,255,255,.8); line-height: 2; max-width: 30em; }
.mdl-dark-contact {
  font-family: var(--font-en); font-weight: 900; font-size: clamp(1.6rem, 4vw, 2.8rem);
  color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 14px;
  letter-spacing: -.02em; white-space: nowrap; transition: opacity .3s;
}
.mdl-dark-contact::after { content: "→"; transition: transform .3s var(--ease); }
.mdl-dark-contact:hover::after { transform: translateX(6px); }
@media (max-width: 640px) {
  .mdl-dark-row { flex-direction: column; align-items: flex-start; gap: 20px; }
}

/* ----- /serviceへの誘導CTA（2026-07-17赤ペンFB23で.mdl-darkから差し替え。
   最下部の共通CTA帯(.cta-band、暗い石肌)とは明確に違う見せ方にするため、
   白地+極太黒枠のブルータリズム調カード全体を1本のリンクにする。 ----- */
.mdl-promo {
  display: block; position: relative; text-decoration: none; color: var(--ink);
  background: #fff; border: 3px solid var(--ink); border-radius: 4px;
  padding: clamp(40px, 6vw, 72px) clamp(28px, 5vw, 56px);
  margin-top: var(--gap);
  transition: background .3s var(--ease), color .3s var(--ease);
}
.mdl-promo-head {
  font-weight: 900; font-size: clamp(1.5rem, 3.6vw, 2.75rem); line-height: 1.5;
  letter-spacing: -.02em; font-feature-settings: "palt" 1; max-width: 20em;
}
.mdl-promo-link {
  display: inline-flex; align-items: center; gap: 12px;
  margin-top: clamp(28px, 4vw, 44px);
  font-family: var(--font-en); font-weight: 800; font-size: 1rem; letter-spacing: .04em;
  color: var(--ink); transition: color .3s var(--ease);
}
.mdl-promo-arrow {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: #fff;
  transition: transform .3s var(--ease), background .3s var(--ease);
}
.mdl-promo:hover { background: var(--ink); color: #fff; }
.mdl-promo:hover .mdl-promo-link { color: #fff; }
.mdl-promo:hover .mdl-promo-arrow { background: var(--brand); transform: translate(4px, -4px); }

/* ----- GROWTH RESULTS風セクション（既存.gpw-numと同じオレンジグラデ文字クリップを流用） ----- */
.mdl-growth-head { line-height: .92; }
/* 2026-07-17赤ペンFB24 #7: グラデ文字が安っぽいとの指摘でベタ塗り#ea4003に変更 */
.mdl-growth-word {
  display: block; font-family: var(--font-en); font-weight: 900;
  font-size: clamp(2.8rem, 9.5vw, 7.5rem); letter-spacing: -.03em;
  color: var(--brand);
}
.mdl-growth-word--2 { margin-top: clamp(-16px, -2vw, -6px); text-align: right; }
.mdl-growth-sub { display: flex; align-items: baseline; gap: 14px; margin-top: clamp(20px, 3vw, 32px); flex-wrap: wrap; }
.mdl-growth-sub .ja { font-weight: 800; font-size: 1.125rem; }
.mdl-growth-sub .note { font-size: .8125rem; color: var(--ink-60); }

.mdl-story-list { display: flex; flex-direction: column; gap: clamp(20px, 3vw, 28px); margin-top: clamp(32px, 4vw, 48px); }
.mdl-story-card { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 21 / 8; }
.mdl-story-card .img-space { position: absolute; inset: 0; border-radius: 0; border: none; }
.mdl-story-card::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.5)); }
.mdl-story-top { position: absolute; top: 0; left: 0; z-index: 2; display: flex; align-items: center; gap: 14px; padding: 20px 24px; }
.mdl-story-num { font-family: var(--font-en); font-weight: 900; font-size: 1.05rem; color: #fff; letter-spacing: .04em; }
.mdl-story-client { font-size: .8125rem; font-weight: 700; color: #fff; letter-spacing: .02em; }
.mdl-story-stat { position: absolute; right: 24px; bottom: 20px; z-index: 2; color: #fff; font-weight: 800; font-size: .8125rem; text-align: right; line-height: 1.6; opacity: .92; }

@media (max-width: 640px) {
  .mdl-story-card { aspect-ratio: 4 / 3; }
  .mdl-story-top { flex-direction: column; align-items: flex-start; gap: 4px; padding: 16px 18px; }
  .mdl-story-stat { right: 18px; bottom: 16px; }
}

/* ============================================================
   /shooting 「撮影のモデルケース」セクション新設（2026-07-20）
   既存の.problem-card/.img-space/.num-cardのトンマナを踏襲し、
   このセクション専用の mc- 接頭辞クラスで完結させる。
   ============================================================ */
.mc-block { margin-top: clamp(40px, 5vw, 60px); }
.mc-block:first-child { margin-top: 0; }
.mc-block-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin-bottom: clamp(20px, 2.6vw, 28px); }
.mc-num { font-family: var(--font-en); font-weight: 900; font-size: 1.4rem; color: var(--brand); letter-spacing: -.03em; flex: none; }
.mc-block-head h3 { font-weight: 700; font-size: 1.0625rem; color: var(--ink); }

/* ----- 01: 具体例カード（撮影シーン→できる動画） ----- */
.mc-example-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mc-example-card { display: flex; flex-direction: column; gap: 14px; }
.mc-example-card .mc-photo { aspect-ratio: 4 / 3; }
/* 2026-07-17のCVR改善（.img-space:not(:has(img)) 全体非表示ルール）は「未完成に見える
   グレー枠は離脱要因」という判断だったが、本セクションは要望により差し替え前の枠を
   あえて見せる仕様。mc-photoにはその自動非表示を打ち消し、常時表示にする。 */
.mc-photo.img-space:not(:has(img)) { display: flex !important; }
.mc-example-body { background: var(--gray); border-radius: 14px; padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.mc-example-from { font-size: .8125rem; color: var(--ink-60); font-weight: 500; line-height: 1.6; }
.mc-example-arrow { color: var(--brand); font-weight: 900; font-size: .9375rem; line-height: 1; }
.mc-example-to { font-size: .9375rem; font-weight: 700; color: var(--ink); line-height: 1.6; }

/* ----- 02: 撮影時間の目安（数値は青木さん実数字が未確定のため全て仮） ----- */
.mc-volume { display: flex; align-items: center; gap: 12px; background: var(--gray); border-radius: 14px; padding: clamp(24px, 3vw, 32px) clamp(20px, 3vw, 30px); }
.mc-volume-card { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.mc-volume-big { font-family: var(--font-en); font-weight: 900; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--ink); letter-spacing: -.02em; }
.mc-volume-big small { font-family: var(--font-ja); font-weight: 700; font-size: .5em; margin-left: 2px; color: var(--ink-60); }
.mc-volume-label { font-size: .75rem; color: var(--ink-60); font-weight: 500; }
.mc-volume-arrow { color: var(--ink-40); font-weight: 900; font-size: 1.1rem; flex: none; }
.mc-volume-note { font-size: .75rem; color: var(--ink-60); line-height: 1.9; margin-top: 12px; }

/* ----- 03: 撮影頻度の目安（「3ヶ月に1回」は青木さん発言・仮ではなく本文扱い） ----- */
.mc-cycle { background: var(--gray); border-radius: 14px; padding: clamp(26px, 3.4vw, 36px) clamp(22px, 3vw, 32px); }
.mc-cycle-big { font-weight: 800; font-size: clamp(1.15rem, 2.2vw, 1.375rem); color: var(--ink); line-height: 1.7; }
.mc-cycle-desc { font-size: .8125rem; color: var(--ink-60); line-height: 1.9; margin-top: 10px; max-width: 640px; }

@media (max-width: 900px) {
  .mc-example-grid { grid-template-columns: 1fr; }
  .mc-volume { flex-direction: column; gap: 20px; }
  .mc-volume-arrow { transform: rotate(90deg); }
}
