/*
Theme Name: NISORA
Theme URI: https://nisora.co.jp/
Author: 株式会社NISORA
Description: NISORA 日本企業向けLP（design-v1/full-v16.html をテーマ化）
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: nisora
*/

  /* v3：画像と文字を重ねない／線・英字ラベルを減らす／CTAはシンプル
     見出しのあしらいは日本語サイトの事例（SmartHR：キーワードだけ色、ビズリーチ：見出し下に短いバー1本）に合わせる
     数字・英字フォントは Jost に決定（2026-10-12） */
  :root {
    --navy: #0C325A;
    --navy-deep: #071F38;
    --navy-tint: #9FB0C3;
    --ink: #111111;
    --text: #353535;
    --sub: #5E6670;
    --mute: #8A8A8A;
    --soft: #F4F5F7;
    --line: #E1E5EA;
    --gold-v: linear-gradient(180deg, #B7A571, #D7B756 46%, #B7A571);
    --white: #FFFFFF;
    --gold: linear-gradient(90deg, #AA975D 8.3%, #D0BB7D 42.3%, #AA975D 77.4%);
    --w: 1080px;
    --num: "Jost", sans-serif; --num-w: 500; --num-ls: 0;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:"Noto Sans JP", sans-serif; color:var(--text); background:var(--white); line-height:1.8; letter-spacing:.04em; -webkit-font-smoothing:antialiased; font-feature-settings:"palt" 1; overflow-x:hidden; }
  img { display:block; max-width:100%; }
  a { color:inherit; text-decoration:none; }
  ul, ol { list-style:none; }
  .inner { width:min(var(--w), calc(100% - 48px)); margin:0 auto; position:relative; }
  .n { font-family:var(--num); font-weight:var(--num-w); letter-spacing:var(--num-ls); }

  /* ---------- buttons ---------- */
  .btn { display:inline-flex; align-items:center; justify-content:center; gap:12px; height:64px; padding:0 40px; border-radius:999px; font-size:16px; font-weight:700; letter-spacing:.08em; white-space:nowrap; transition:transform .2s, box-shadow .2s, background .2s; }
  .btn .ar { font-weight:400; transition:transform .2s; }
  .btn:hover .ar { transform:translateX(4px); }
  .btn-navy { background:var(--navy); color:var(--white); }
  .btn-navy:hover { background:var(--navy-deep); }
  .btn-outline { background:var(--white); color:var(--navy); box-shadow:inset 0 0 0 3px var(--navy); }
  .btn-gold { background:var(--gold); color:var(--navy); }
  .btn-white { background:var(--white); color:var(--navy); }
  .btn-gold:hover, .btn-white:hover { box-shadow:0 8px 24px rgba(0,0,0,.25); transform:translateY(-2px); }

  /* ---------- 見出し（日本語のみ。キーワードを紺、下に短い金のバー1本） ---------- */
  .sec { padding:96px 0; }
  .sec-head { text-align:center; margin-bottom:48px; }
  .sec-head h2 { font-size:34px; line-height:1.5; letter-spacing:.06em; color:var(--ink); }
  .sec-head h2 em, .h2 em { font-style:normal; color:var(--navy); }
  .sec-head h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin:20px auto 0; }
  .sec-head .lead { font-size:15px; line-height:1.9; color:var(--sub); margin-top:20px; }

  /* ---------- header ---------- */
  .hd { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.97); height:88px; display:flex; align-items:center; padding:0 56px; transition:box-shadow .2s, transform .3s ease; }
  .hd.hide { transform:translateY(-100%); }
  .hd.scrolled { box-shadow:0 2px 16px rgba(12,50,90,.08); }
  .hd .logo { width:240px; flex-shrink:0; }
  .hd nav { margin-left:auto; margin-right:40px; display:flex; gap:36px; font-size:14px; font-weight:500; color:var(--ink); }
  .hd .lang { display:flex; gap:10px; font-size:13px; padding:0 28px 0 40px; color:var(--mute); font-family:var(--num); }
  .hd .lang button { font:inherit; color:inherit; background:none; border:0; padding:4px 2px; cursor:pointer; transition:color .2s; }
  .hd .lang button:hover { color:var(--navy); }
  .hd .lang button[aria-pressed="true"] { color:var(--navy); font-weight:600; }
  .hd .btn { height:48px; padding:0 26px; font-size:14px; }

  /* ---------- FV（Figmaの最新FV） ---------- */
  .fv { position:relative; height:703px; background:#c6c6c6; overflow:hidden; }
  /* FV：写真5枚を5秒ごとに重ねて切り替え（Figma 305:2／306:83／305:42／314:131／314:173 と同じ切り取り）。左はすりガラスの白パネル */
  .fv-slides { position:absolute; inset:0; }
  .fv-slides .s { position:absolute; inset:0; background:center / cover no-repeat; opacity:0; animation:fvfade 25s infinite; }
  .fv-slides .s1 { background-image:url(assets/fv-1.jpg); animation-delay:-1s; }
  .fv-slides .s2 { background-image:url(assets/fv-3.jpg); animation-delay:4s; }
  .fv-slides .s3 { background-image:url(assets/fv-4.jpg); animation-delay:9s; }
  .fv-slides .s4 { background-image:url(assets/fv-5.jpg); animation-delay:14s; }
  .fv-slides .s5 { background-image:url(assets/fv-2.jpg); animation-delay:19s; }
  @keyframes fvfade { 0% { opacity:0; transform:scale(1.05); } 4% { opacity:1; } 20% { opacity:1; } 24% { opacity:0; transform:scale(1); } 100% { opacity:0; transform:scale(1); } }
  .fv-panel { position:absolute; left:0; top:0; bottom:0; width:47.96%; background:rgba(255,255,255,.9); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); z-index:1; }
  .fv .copy .eyebrow { text-shadow:none; }
  .fv .copy .sub { color:var(--ink); text-shadow:none; max-width:calc(47.96vw - 112px); }
  @media (max-width: 860px) { .fv .copy .sub { max-width:none; } }
  .fv .copy .points li { background:#F6F6F6; }
  .fv .copy { z-index:2; }
  @media (prefers-reduced-motion: reduce) { .fv-slides .s { animation:none; } .fv-slides .s1 { opacity:1; } }
  .fv .copy { position:absolute; left:88px; top:50%; transform:translateY(-46%); }
  .fv .eyebrow { font-size:23px; font-weight:700; color:var(--text); letter-spacing:.03em; line-height:1.1; text-shadow:0 0 12px rgba(255,255,255,.8); }
  .fv h1 { margin-top:22px; font-size:clamp(30px, 2.65vw, 38px); line-height:1.75; letter-spacing:.02em; color:var(--white); }
  .fv h1 span { display:inline-block; background:var(--navy); border-radius:3px; padding:1px 15px; margin-left:-15px; line-height:1.75; white-space:nowrap; }
  .fv h1 span + br + span { margin-top:4px; }
  .fv .sub { margin-top:16px; font-size:17px; font-weight:700; color:var(--white); line-height:32px; text-shadow:0 0 17px #000, 0 0 17px #000, 0 0 17px rgba(0,0,0,.6); }
  .fv .points { display:flex; gap:10px; margin-top:16px; }
  .fv .points li { width:140px; height:140px; background:var(--white); border-radius:5px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; text-align:center; color:var(--text); }
  .fv .points img { width:42px; height:42px; }
  .fv .points b { font-size:17px; line-height:1.2; letter-spacing:.06em; }
  .fv .points b.lg { font-size:20px; }
  .fv .points small { font-size:13px; line-height:1.3; }
  .fv .ctas { display:flex; gap:6px; margin-top:16px; }
  .line-float { position:fixed; z-index:90; right:32px; bottom:24px; display:flex; align-items:center; gap:12px; height:64px; padding:0 26px 0 12px; background:#06C755; color:var(--white); border-radius:999px; font-weight:700; font-size:15px; box-shadow:0 6px 24px rgba(0,0,0,.18); }
  .line-float i { width:40px; height:40px; border-radius:50%; background:var(--white); color:#06C755; font-style:normal; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; font-family:var(--num); }

  .band { background:var(--gold); height:84px; overflow:hidden; display:flex; align-items:center; }
  .band .track { display:flex; gap:60px; padding-right:60px; white-space:nowrap; font-size:18px; font-weight:700; color:var(--white); letter-spacing:.11em; animation:marquee 40s linear infinite; }
  @keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
  @media (prefers-reduced-motion: reduce) { .band .track { animation:none; } }

  /* ---------- What we do：写真なし。線画の図式＋モックアップで短く ---------- */
  .wwd { position:relative; overflow:hidden; isolation:isolate; }
  .wwd::before { content:""; position:absolute; right:-160px; top:80px; width:480px; height:480px; background:url(assets/emblem.svg) center / contain no-repeat; opacity:.06; pointer-events:none; }
  .wwd::after { content:""; position:absolute; left:0; right:0; bottom:0; height:42%; background:var(--soft); z-index:-1; }
  .wwd .sec-head { position:relative; padding-top:28px; }
  .wwd .ghost { position:absolute; left:50%; top:-24px; transform:translateX(-50%); font-family:var(--num); font-weight:600; font-size:140px; line-height:1; letter-spacing:-.02em; color:var(--navy); opacity:.045; white-space:nowrap; pointer-events:none; user-select:none; }
  .wwd .sec-head h2, .wwd .sec-head .lead { position:relative; }

  .pillars { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .pillar { padding:40px 40px 44px; display:flex; flex-direction:column; }
  .pillar .ttl { display:flex; align-items:center; gap:20px; }
  .pillar .big { font-family:var(--num); font-weight:500; font-size:72px; line-height:1; letter-spacing:-.02em; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .pillar h3 { font-size:25px; line-height:1.45; letter-spacing:.06em; }
  .pillar .desc { font-size:14.5px; line-height:1.9; margin-top:16px; }
  .p-ref { background:var(--navy); color:var(--white); }
  .p-ref .desc { color:#D5DDE6; }
  .p-mkt { background:var(--white); box-shadow:0 24px 48px -28px rgba(12,50,90,.28); }
  .p-mkt h3 { color:var(--ink); }
  .p-mkt .desc { color:var(--sub); }
  .ico { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

  /* 01 送客：横並びの線画フロー */
  .chain { margin-top:auto; padding-top:36px; display:grid; grid-template-columns:1fr 96px 1fr 96px 1fr; align-items:start; }
  .chain .nd { text-align:center; }
  .chain .ring { width:76px; height:76px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55); color:var(--white); }
  .chain .ring.me { box-shadow:inset 0 0 0 1.5px #D0BB7D; }
  .chain .ring.me img { width:36px; height:36px; }
  .chain b { display:block; font-size:15px; margin-top:12px; letter-spacing:.06em; }
  .chain .me + b { color:#D7B756; }
  .chain small { display:block; font-size:12px; color:#B9C6D4; line-height:1.6; margin-top:4px; }
  .chain .arw { position:relative; height:76px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
  .chain .arw span { font-size:11px; color:#D7B756; letter-spacing:.06em; margin-bottom:6px; white-space:nowrap; }
  .chain .arw svg { width:100%; height:10px; }

  /* 02 集客：モックアップ＋縦の線画ステップ */
  .mkt-fig { margin-top:auto; padding-top:32px; display:grid; grid-template-columns:150px 1fr; gap:32px; align-items:center; }
  .phone { width:150px; border:5px solid var(--ink); border-radius:22px; overflow:hidden; background:var(--white); box-shadow:0 18px 36px rgba(7,31,56,.25); }
  .phone .bar { display:flex; align-items:center; gap:6px; padding:6px 8px; font-size:8px; font-weight:700; color:var(--ink); }
  .phone .bar i { width:14px; height:14px; border-radius:50%; background:var(--gold); }
  .phone .img { aspect-ratio:1/1; background:url(assets/fv.jpg) 72% center / cover; }
  .phone .acts { display:flex; gap:8px; padding:5px 8px 0; font-size:9px; color:var(--ink); }
  .phone .cap { padding:3px 8px 10px; font-size:8px; line-height:1.6; color:var(--text); letter-spacing:0; }
  .vsteps { position:relative; }
  .vsteps::before { content:""; position:absolute; left:23px; top:24px; bottom:24px; width:1.5px; background:var(--navy-tint); }
  .vsteps li { position:relative; display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:center; }
  .vsteps li + li { margin-top:18px; }
  .vsteps .ring { width:48px; height:48px; border-radius:50%; background:var(--white); box-shadow:inset 0 0 0 1.5px var(--navy); color:var(--navy); display:flex; align-items:center; justify-content:center; position:relative; z-index:1; }
  .vsteps .ring .ico { width:24px; height:24px; }
  .vsteps b { display:block; font-size:15px; color:var(--ink); letter-spacing:.06em; }
  .vsteps small { display:block; font-size:12.5px; color:var(--sub); line-height:1.6; }

  .both { text-align:center; margin-top:40px; display:flex; align-items:center; justify-content:center; gap:20px; font-size:15px; color:var(--text); }
  .both::before, .both::after { content:""; width:80px; height:1px; background:var(--gold); }
  .both strong { color:var(--navy); }

  /* ---------- タイ市場：主役は「東南アジアで1位」＋地図。補足2つは下に小さく ---------- */
  .mk { background:var(--white); padding:52px 0 40px; }
  .mk-head { text-align:center; }
  .mk-head h2 { font-size:30px; line-height:1.5; letter-spacing:.06em; color:var(--ink); }
  .mk-head h2 em { font-style:normal; color:var(--navy); }
  .mk-head h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin:14px auto 0; }
  .mk-head p { font-size:15px; line-height:1.9; color:var(--sub); margin-top:16px; }
  .mk-main { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:24px; margin-top:4px; }
  .hero1 { padding-left:40px; }
  .hero1 .lb { font-size:14px; color:var(--sub); letter-spacing:.06em; }
  .hero1 .big { display:flex; align-items:baseline; gap:10px; margin-top:4px; color:var(--navy); }
  .hero1 .big .pre { font-size:28px; font-weight:700; color:var(--ink); letter-spacing:.04em; }
  .hero1 .big .n { font-size:136px; line-height:.95; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .hero1 .big .u { font-size:36px; font-weight:700; }
  .hero1 .world { display:inline-flex; align-items:baseline; gap:6px; margin-top:18px; font-size:15px; color:var(--text); background:var(--soft); padding:6px 16px; border-radius:999px; }
  .hero1 .world b { color:var(--navy); font-size:17px; }
  .mk-map { position:relative; width:min(320px, 100%); margin:0 auto; }
  .mk-map img { -webkit-mask-image:radial-gradient(ellipse 72% 70% at 42% 48%, #000 55%, transparent 100%); mask-image:radial-gradient(ellipse 72% 70% at 42% 48%, #000 55%, transparent 100%); }
  .mk-map img { width:100%; height:auto; }
  .mk-map .pin { position:absolute; left:calc(24.2% + 20px); top:calc(36% - 14px); font-size:15px; font-weight:700; color:var(--navy); letter-spacing:.06em; white-space:nowrap; }
  .mk-map .pin small { display:block; font-size:12px; font-weight:500; color:var(--sub); letter-spacing:.02em; }

  .mk-sub { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
  .mk-sub li { background:var(--soft); padding:14px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
  .mk-sub .k { font-size:12.5px; color:var(--sub); }
  .mk-sub .t { font-size:18px; font-weight:700; color:var(--ink); letter-spacing:.04em; margin-top:2px; }
  .mk-sub .t em, .mk-sub .t b { font-style:normal; color:var(--navy); }
  .mk-sub .t b { font-size:28px; margin:0 2px; vertical-align:-2px; }
  .mini { display:flex; align-items:flex-end; gap:8px; height:56px; flex-shrink:0; }
  .mini .b { width:30px; display:flex; flex-direction:column; justify-content:flex-end; height:100%; }
  .mini .b i { display:block; background:var(--navy-tint); border-radius:3px 3px 0 0; }
  .mini .b.now i { background:var(--navy); }
  .mini .b em { font-style:normal; font-size:10.5px; color:var(--mute); text-align:center; margin-top:3px; }
  .mini .b.now em { color:var(--navy); }
  .mk-sub .s { font-size:12px; color:var(--mute); text-align:right; line-height:1.6; }

  .mk-foot { display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:20px; text-align:center; }
  .src { font-size:11px; color:var(--mute); line-height:1.7; }
  .mk-foot .btn { height:52px; padding:0 28px; font-size:14px; }

  /* ---------- CTA（シンプル） ---------- */
  .cta { background:var(--navy); color:var(--white); padding:56px 0; text-align:center; }
  .cta h3 { font-size:24px; letter-spacing:.08em; line-height:1.5; }
  .cta p { font-size:15px; color:#C9D3DE; margin-top:12px; }
  .cta .btns { display:flex; justify-content:center; gap:16px; margin-top:24px; }
  .cta .btn { min-width:330px; justify-content:space-between; padding:0 32px; }

  /* ---------- 支援内容：表のように1行ずつ（写真・アイコンなし） ---------- */
  .svc { display:flex; flex-direction:column; gap:8px; }
  .svc li { display:grid; grid-template-columns:110px 260px 1fr; gap:24px; align-items:center; background:var(--soft); padding:22px 32px; }
  .svc .cat { font-size:14px; font-weight:700; letter-spacing:.12em; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .svc h3 { font-size:18px; color:var(--ink); letter-spacing:.04em; }
  .svc p { font-size:14px; color:var(--sub); line-height:1.8; }
  .svc li.main { background:var(--navy); }
  .svc li.main h3 { color:var(--white); }
  .svc li.main p { color:#D5DDE6; }
  .svc-note { text-align:center; font-size:15px; margin-top:28px; }
  .svc-note strong { color:var(--navy); }

  /* ---------- 活用イメージ：2×2、業種名と「課題→支援」だけ ---------- */
  .case { background:var(--soft); }
  .cases { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .cases li { background:var(--white); padding:32px 36px; }
  .cases .ind { display:inline-block; font-size:12.5px; font-weight:700; color:var(--white); background:var(--navy); padding:3px 14px; border-radius:999px; letter-spacing:.06em; }
  .cases h3 { font-size:20px; line-height:1.6; color:var(--ink); margin-top:14px; letter-spacing:.04em; }
  .cases p { font-size:14px; color:var(--sub); line-height:1.85; margin-top:10px; }
  .case-note { text-align:right; font-size:12px; color:var(--mute); margin-top:12px; }

  /* ---------- メリット：紺ベタの帯、4つを横並び（アイコンなし） ---------- */
  .merit { background:var(--navy); color:var(--white); padding:88px 0; }
  .merit .sec-head h2 { color:var(--white); }
  .merit .sec-head h2 em { background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .merit .sec-head .lead { color:#C9D3DE; }
  .merits { display:grid; grid-template-columns:repeat(4,1fr); gap:40px; }
  .merits h3 { font-size:18px; line-height:1.6; letter-spacing:.04em; }
  .merits h3 em { font-style:normal; color:#D7B756; }
  .merits p { font-size:13.5px; color:#C9D3DE; line-height:1.85; margin-top:10px; }

  /* ---------- ご利用の流れ：番号の円をつなぐ ---------- */
  .flow5 { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; position:relative; }
  .flow5::before { content:""; position:absolute; left:10%; right:10%; top:31px; height:1.5px; background:var(--navy-tint); }
  .flow5 li { text-align:center; position:relative; }
  .flow5 .no { width:62px; height:62px; margin:0 auto; border-radius:50%; background:var(--white); box-shadow:inset 0 0 0 1.5px var(--navy); color:var(--navy); display:flex; align-items:center; justify-content:center; font-size:22px; }
  .flow5 li.free .no { background:var(--navy); color:var(--white); box-shadow:none; }
  .flow5 h3 { font-size:16px; color:var(--ink); margin-top:16px; letter-spacing:.04em; }
  .flow5 .tag { display:inline-block; font-size:11.5px; font-weight:700; margin-top:6px; padding:2px 12px; border-radius:999px; color:var(--navy); background:var(--soft); }
  .flow5 li.free .tag { color:var(--navy); background:var(--gold); }
  .flow5 p { font-size:13px; color:var(--sub); line-height:1.75; margin-top:10px; text-align:left; }

  /* ---------- 代表メッセージ ---------- */
  .msg { background:var(--soft); }
  .msg-grid { display:grid; grid-template-columns:360px 1fr; gap:72px; align-items:center; }
  .msg-photo { aspect-ratio:4 / 5; background:#DCE2E9; display:flex; align-items:center; justify-content:center; color:var(--sub); font-size:13px; text-align:center; line-height:1.8; }
  .msg-body .k { font-size:14px; color:var(--sub); letter-spacing:.08em; }
  .msg-body h2 { font-size:36px; line-height:1.5; letter-spacing:.08em; color:var(--ink); margin-top:10px; }
  .msg-body h2 em { font-style:normal; color:var(--navy); }
  .msg-body h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin-top:20px; }
  .msg-body p { font-size:15px; line-height:2.05; color:var(--text); margin-top:22px; }
  .msg-body .sign { margin-top:28px; font-size:13px; color:var(--sub); }
  .msg-body .sign b { display:block; font-size:22px; color:var(--ink); letter-spacing:.12em; margin-top:2px; }

  /* ---------- よくある質問：中央1列のアコーディオン ---------- */
  .faq-list { max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:8px; }
  .faq-list details { background:var(--soft); }
  .faq-list summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:32px 1fr 24px; gap:12px; align-items:center; padding:20px 28px; font-size:16px; font-weight:700; color:var(--ink); }
  .faq-list summary::-webkit-details-marker { display:none; }
  .faq-list summary .q { font-family:var(--num); font-size:20px; color:var(--navy); }
  .faq-list summary .pm { font-size:20px; color:var(--navy); text-align:center; font-weight:400; transition:transform .2s; }
  .faq-list details[open] summary .pm { transform:rotate(45deg); }
  .faq-list .a { display:grid; grid-template-columns:32px 1fr; gap:12px; padding:0 28px 22px; font-size:14.5px; color:var(--sub); line-height:1.9; }
  .faq-list .a .q { font-family:var(--num); font-size:20px; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1.3; }
  .faq-more { text-align:center; margin-top:28px; font-size:14px; color:var(--sub); }
  .faq-more a { color:var(--navy); font-weight:700; border-bottom:1.5px solid currentColor; }

  /* ---------- 会社概要 ---------- */
  .co { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:start; }
  .co-tbl { width:100%; border-collapse:collapse; }
  .co-tbl th, .co-tbl td { text-align:left; vertical-align:top; padding:14px 0; font-size:14px; line-height:1.8; }
  .co-tbl tr + tr th, .co-tbl tr + tr td { border-top:1px solid var(--line); }
  .co-tbl th { width:110px; color:var(--sub); font-weight:500; }
  .co-tbl td { color:var(--text); }
  .vision h3 { font-size:17px; color:var(--ink); letter-spacing:.06em; }
  .vision ol { margin-top:14px; display:flex; flex-direction:column; gap:8px; }
  .vision li { background:var(--soft); padding:18px 22px; display:grid; grid-template-columns:40px 1fr; gap:4px; }
  .vision .no { font-size:20px; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; grid-row:span 2; line-height:1.3; }
  .vision b { font-size:15.5px; color:var(--navy); letter-spacing:.04em; }
  .vision span { font-size:13px; color:var(--sub); }

  /* ---------- 最後のCTA（シンプル）・フッター ---------- */
  .end { background:var(--navy); color:var(--white); padding:80px 0; text-align:center; }
  .end h2 { font-size:32px; letter-spacing:.08em; line-height:1.5; }
  .end p { font-size:15px; color:#C9D3DE; margin-top:14px; line-height:1.9; }
  .end .btns { display:flex; justify-content:center; gap:16px; margin-top:32px; }
  .end .btn { min-width:330px; justify-content:space-between; padding:0 32px; }
  .end .line { margin-top:22px; font-size:14px; color:#C9D3DE; }
  .end .line a { color:var(--white); font-weight:700; border-bottom:1.5px solid #D7B756; padding-bottom:2px; margin-left:8px; }
  .ft { background:var(--white); padding:56px 0 40px; }
  .ft-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
  .ft-grid .logo { width:200px; }
  .ft-grid address { font-style:normal; font-size:12.5px; color:var(--sub); line-height:1.9; margin-top:18px; }
  .ft-grid h4 { font-size:13px; color:var(--ink); margin-bottom:10px; letter-spacing:.06em; }
  .ft-grid li a { display:block; font-size:13px; color:var(--sub); padding:4px 0; }
  .ft-grid li a:hover { color:var(--navy); }
  .ft-bottom { display:flex; justify-content:space-between; margin-top:40px; font-size:12px; color:var(--mute); }

  /* ==========================================================
     v2：Figmaワイヤー（109:3）の構成・順番にそろえる＋実写写真を増やす
     ========================================================== */
  .ph { background:#DCE2E9 center / cover no-repeat; }
  .sec-head.split { text-align:left; display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:end; }
  .sec-head.split h2::after { margin:20px 0 0; }
  .sec-head.split .lead { margin-top:0; }

  /* ---------- 今始めるべき3つの理由：写真と文を横に並べた3行 ---------- */
  .why { display:flex; flex-direction:column; gap:24px; }
  .why li { display:grid; grid-template-columns:1fr 1fr; min-height:320px; background:var(--white); box-shadow:0 24px 48px -32px rgba(12,50,90,.3); }
  .why li:nth-child(even) .ph { order:2; }
  .why .txt { padding:48px 56px; display:flex; flex-direction:column; justify-content:center; }
  .why .no { font-family:var(--num); font-weight:500; font-size:72px; line-height:1; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .why h3 { font-size:26px; line-height:1.55; color:var(--ink); letter-spacing:.06em; margin-top:16px; }
  .why h3 em { font-style:normal; color:var(--navy); }
  .why p { font-size:15px; line-height:1.95; color:var(--sub); margin-top:14px; }
  .why-bg { background:linear-gradient(180deg, var(--white) 0, var(--white) 320px, var(--soft) 320px); }

  /* ---------- 3つの準備：横3列、最後に一文 ---------- */
  .prep { background:var(--soft); padding:88px 0; }
  .prep h2 { text-align:center; font-size:30px; line-height:1.5; letter-spacing:.06em; color:var(--ink); }
  .prep h2 em { font-style:normal; color:var(--navy); }
  .ib { display:inline-block; }
  .prep h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin:18px auto 0; }
  .prep ol { display:grid; grid-template-columns:repeat(3,1fr); margin-top:44px; background:var(--white); }
  .prep li { padding:0 0 32px; }
  .prep li + li { border-left:1px solid var(--line); }
  .prep li .ph { aspect-ratio:16 / 9; }
  .prep li h3, .prep li p { padding:0 32px; }
  .prep li h3 { font-size:20px; color:var(--ink); letter-spacing:.04em; margin-top:24px; }
  .prep li h3 .n { color:var(--navy); margin-right:10px; font-size:22px; }
  .prep li p { font-size:14px; line-height:1.9; color:var(--sub); margin-top:8px; }
  .prep .all { text-align:center; margin-top:36px; font-size:21px; font-weight:700; color:var(--ink); letter-spacing:.06em; }
  .prep .all em { font-style:normal; color:var(--navy); }

  /* ---------- 支援内容：大小のパネルに画面例 ---------- */
  .support { background:var(--soft); }
  .bento { display:grid; grid-template-columns:repeat(12, 1fr); gap:16px; }
  .bx { background:var(--white); padding:32px; display:flex; flex-direction:column; }
  .bx.mk1 { grid-column:span 7; }
  .bx.mk2 { grid-column:span 5; }
  .bx.half { grid-column:span 6; }
  .bx.wide { grid-column:span 12; display:grid; grid-template-columns:300px 1fr; gap:40px; align-items:center; }
  .bx .cat { display:inline-block; align-self:flex-start; font-size:12px; font-weight:700; letter-spacing:.12em; padding:3px 12px; color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy); }
  .bx .cat.on { background:var(--navy); color:var(--white); box-shadow:none; }
  .bx h3 { font-size:22px; color:var(--ink); letter-spacing:.04em; margin-top:12px; }
  .bx > p, .bx .hd-txt p { font-size:14px; line-height:1.85; color:var(--sub); margin-top:8px; }
  .bx .fig { margin-top:auto; padding-top:24px; }

  /* 画面例（実写写真をはめ込んだモックアップ） */
  .scr { display:grid; grid-template-columns:1.15fr 1fr; gap:14px; }
  .scr .col { display:flex; flex-direction:column; gap:14px; }
  .post { background:var(--white); border:1px solid var(--line); font-size:10px; color:var(--ink); }
  .post .top { display:flex; align-items:center; gap:6px; padding:7px 9px; font-weight:700; }
  .post .top i { width:16px; height:16px; border-radius:50%; background:var(--gold); flex-shrink:0; }
  .post .top small { margin-left:auto; font-weight:400; color:var(--mute); font-size:9px; }
  .post .ph { aspect-ratio:1 / 1; }
  .post .cap { padding:6px 9px 9px; line-height:1.6; letter-spacing:0; }
  .post .cap b { margin-right:4px; }
  .ad { display:grid; grid-template-columns:96px 1fr; background:var(--white); border:1px solid var(--line); font-size:10px; letter-spacing:0; }
  .ad .ph { min-height:100px; }
  .ad .body { padding:9px 10px; display:flex; flex-direction:column; }
  .ad .spon { color:var(--mute); font-size:9px; }
  .ad b { font-size:11.5px; color:var(--ink); margin-top:3px; line-height:1.5; }
  .ad .go { margin-top:auto; align-self:flex-start; background:var(--navy); color:var(--white); font-weight:700; padding:3px 10px; font-size:9.5px; }
  .ad .kol { display:flex; align-items:center; gap:5px; color:var(--ink); font-weight:700; }
  .ad .kol i { width:16px; height:16px; border-radius:50%; background:var(--navy-tint); }
  .scr-lb { font-size:11px; color:var(--mute); margin-top:8px; }

  /* パートナー連携：中心にNISORA、四方に連携先 */
  .net { position:relative; height:250px; }
  .net::before, .net::after { content:""; position:absolute; background:var(--navy-tint); }
  .net::before { left:12%; right:12%; top:50%; height:1px; }
  .net::after { top:10%; bottom:10%; left:50%; width:1px; }
  .net .core { position:absolute; left:50%; top:50%; width:108px; height:108px; transform:translate(-50%,-50%); border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; z-index:1; }
  .net .core img { width:56px; }
  .net span { position:absolute; z-index:1; background:var(--white); font-size:12.5px; font-weight:500; color:var(--ink); padding:6px 12px; box-shadow:inset 0 0 0 1px var(--navy-tint); white-space:nowrap; }
  .net .p1 { left:0; top:6%; } .net .p2 { right:0; top:6%; } .net .p3 { left:0; bottom:6%; } .net .p4 { right:0; bottom:6%; }

  /* 市場調査：小さなレポート画面 */
  .rep { background:var(--soft); padding:18px 20px; display:grid; grid-template-columns:1fr 1.1fr; gap:20px; align-items:end; }
  .rep .ttl { font-size:12px; font-weight:700; color:var(--ink); }
  .rep ul { margin-top:8px; font-size:11.5px; color:var(--sub); line-height:1.9; }
  .rep ul li::before { content:"・"; color:var(--navy); }
  .rep .bars { display:flex; align-items:flex-end; gap:8px; height:84px; }
  .rep .bars i { flex:1; background:var(--navy-tint); }
  .rep .bars i:last-child { background:var(--navy); }

  /* 対応：LINEのやりとり＋予約確認 */
  .chat { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .line-scr { background:#8CABD9; padding:12px; display:flex; flex-direction:column; gap:8px; font-size:11px; letter-spacing:0; line-height:1.55; min-height:132px; }
  .line-scr .in, .line-scr .out { max-width:88%; padding:6px 10px; border-radius:12px; }
  .line-scr .in { background:var(--white); color:var(--ink); align-self:flex-start; }
  .line-scr .out { background:#A8E37C; color:var(--ink); align-self:flex-end; }
  .book { background:var(--white); border:1px solid var(--line); padding:12px 14px; font-size:11px; letter-spacing:0; line-height:1.7; color:var(--text); }
  .book b { display:block; font-size:12px; color:var(--navy); }
  .book dl { display:grid; grid-template-columns:auto 1fr; gap:0 10px; margin-top:6px; }
  .book dt { color:var(--mute); }
  .book .ok { display:inline-block; margin-top:8px; font-weight:700; color:var(--white); background:var(--navy); padding:2px 10px; }

  /* コンテンツ制作：3つの制作物 */
  .made { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .made li { display:grid; grid-template-columns:96px 1fr; gap:14px; align-items:center; font-size:14px; color:var(--ink); font-weight:500; }
  .made .ph { height:68px; }
  .made .thumb { height:68px; background:var(--soft); padding:8px; display:flex; flex-direction:column; gap:4px; }
  .made .thumb i { display:block; height:5px; background:var(--navy-tint); }
  .made .thumb i:first-child { width:60%; background:var(--navy); }
  .made .thumb i:nth-child(3) { width:80%; }

  /* A／B：はじめ方 */
  .start { display:grid; grid-template-columns:1fr 1fr; margin-top:40px; background:var(--white); }
  .start > div { padding:36px 44px; display:grid; grid-template-columns:56px 1fr; gap:20px; }
  .start > div + div { border-left:1px solid var(--line); }
  .start .ab { font-family:var(--num); font-size:44px; line-height:1; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .start .tg { display:inline-block; font-size:12px; font-weight:700; padding:2px 10px; color:var(--white); background:var(--navy); letter-spacing:.06em; }
  .start .tg.o { background:none; color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy); }
  .start h3 { font-size:22px; color:var(--ink); margin-top:8px; letter-spacing:.04em; }
  .start p { font-size:14.5px; color:var(--sub); margin-top:4px; line-height:1.8; }

  /* ---------- 直接ご紹介：紺ベタ、3つの箱のフロー ---------- */
  .intro { background:var(--navy); color:var(--white); padding:96px 0; text-align:center; }
  .intro h2 { font-size:34px; line-height:1.6; letter-spacing:.06em; }
  .intro h2 em { font-style:normal; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .intro h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin:20px auto 0; }
  .intro .lead { font-size:15px; color:#C9D3DE; line-height:1.95; margin-top:20px; }
  .route { display:grid; grid-template-columns:1fr 104px 1fr 104px 1fr; align-items:stretch; margin-top:56px; }
  .route .box { padding:0 0 26px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.35); overflow:hidden; }
  .route .box .ph { height:150px; }
  .route .box b { display:block; font-size:20px; letter-spacing:.06em; margin-top:20px; }
  .route .box small { display:block; font-size:13.5px; color:#C9D3DE; line-height:1.75; margin-top:6px; }
  .route .box.me { background:var(--white); color:var(--ink); box-shadow:none; }
  .route .box.me .logo-ph { height:150px; background:var(--soft); display:flex; align-items:center; justify-content:center; }
  .route .box.me .logo-ph img { width:150px; }
  .route .box.me small { color:var(--sub); }
  .route .arw { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:#D7B756; font-size:13px; }
  .route .arw svg { width:56px; height:12px; }
  .route-tags { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:40px; }
  .route-tags span { font-size:13.5px; color:var(--white); padding:6px 16px; border-radius:999px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.35); }
  .intro .free { display:inline-block; margin-top:32px; font-size:17px; font-weight:700; color:var(--navy); background:var(--gold); padding:12px 40px; border-radius:999px; letter-spacing:.06em; }

  /* ---------- 活用イメージ：写真つきカードを横にスライド ---------- */
  .case .sec-head.split { grid-template-columns:1fr auto; }
  .case-nav { display:flex; gap:10px; }
  .case-nav button { width:52px; height:52px; border-radius:50%; border:0; background:var(--white); color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy); font-size:18px; cursor:pointer; transition:background .2s, color .2s; }
  .case-nav button:hover { background:var(--navy); color:var(--white); }
  .slider { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px) / 3); gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .slider::-webkit-scrollbar { display:none; }
  .slider li { scroll-snap-align:start; background:var(--white); }
  .slider .ph { aspect-ratio:4 / 3; }
  .slider .body { padding:22px 24px 28px; }
  .slider .ind { display:inline-block; font-size:12px; font-weight:700; color:var(--white); background:var(--navy); padding:2px 12px; letter-spacing:.06em; }
  .slider h3 { font-size:19px; line-height:1.6; color:var(--ink); margin-top:12px; letter-spacing:.04em; }
  .slider p { font-size:14px; color:var(--sub); line-height:1.85; margin-top:8px; }

  /* ---------- メリット：左に見出し＋写真、右に4行 ---------- */
  .merit2 { background:var(--white); }
  .merit2 .grid { display:grid; grid-template-columns:400px 1fr; gap:72px; align-items:start; }
  .merit2 .left h2 { font-size:34px; line-height:1.5; letter-spacing:.06em; color:var(--ink); }
  .merit2 .left h2 em { font-style:normal; color:var(--navy); }
  .merit2 .left h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin-top:20px; }
  .merit2 .left p { font-size:15px; color:var(--sub); line-height:1.9; margin-top:20px; }
  .merit2 .left .ph { aspect-ratio:4 / 3; margin-top:32px; }
  .merit2 ol li { display:grid; grid-template-columns:56px 1fr; gap:4px 16px; padding:28px 0; }
  .merit2 ol li + li { border-top:1px solid var(--line); }
  .merit2 ol li:first-child { padding-top:4px; }
  .merit2 .no { font-family:var(--num); font-size:30px; line-height:1.2; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; grid-row:span 2; }
  .merit2 h3 { font-size:21px; color:var(--ink); letter-spacing:.04em; }
  .merit2 h3 em { font-style:normal; color:var(--navy); }
  .merit2 ol p { font-size:14.5px; color:var(--sub); line-height:1.85; }

  /* ---------- ご利用の流れ：番号の円＋写真 ---------- */
  .flow5 .ph { aspect-ratio:3 / 2; margin-top:16px; }

  /* ---------- 代表メッセージ：左半分に写真、右に文 ---------- */
  .msg2 { display:grid; grid-template-columns:1fr 1.25fr; background:var(--soft); }
  .msg2 .photo { min-height:640px; background:#DCE2E9; display:flex; align-items:center; justify-content:center; text-align:center; font-size:13px; line-height:1.9; color:var(--sub); }
  .msg2 .body { padding:96px 88px; align-self:center; max-width:680px; }

  /* ---------- FAQ：左に見出し、右に開閉 ---------- */
  .faq2 { display:grid; grid-template-columns:320px 1fr; gap:64px; align-items:start; }
  .faq2 h2 { font-size:34px; line-height:1.5; letter-spacing:.06em; color:var(--ink); }
  .faq2 h2 em { font-style:normal; color:var(--navy); }
  .faq2 h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin-top:20px; }
  .faq2 .left p { font-size:14.5px; color:var(--sub); line-height:1.9; margin-top:20px; }
  .faq2 .left .btn { height:52px; padding:0 28px; font-size:14px; margin-top:24px; }
  .faq2 .faq-list { max-width:none; }

  /* ---------- 最後のCTA：紺ベタに2枚＋LINEの帯（写真に文字は重ねない） ---------- */
  .end2 { background:var(--navy); color:var(--white); padding:96px 0; }
  .end2 .head { text-align:center; }
  .end2 h2 { font-size:34px; letter-spacing:.08em; line-height:1.5; }
  .end2 .head p { font-size:15px; color:#C9D3DE; margin-top:14px; line-height:1.9; }
  .end2 .two { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:48px; }
  .end2 .card { background:var(--white); color:var(--text); padding:40px; display:flex; flex-direction:column; }
  .end2 .card h3 { font-size:23px; color:var(--ink); letter-spacing:.04em; }
  .end2 .card > p { font-size:14.5px; color:var(--sub); margin-top:8px; line-height:1.8; }
  .end2 .card .btn { margin-top:auto; width:100%; justify-content:space-between; padding:0 32px; }
  .end2 .card .ph { aspect-ratio:16 / 9; margin:22px 0 26px; }
  .end2 .dl { display:grid; grid-template-columns:128px 1fr; gap:22px; align-items:center; margin:22px 0 26px; }
  .end2 .cover { aspect-ratio:210 / 297; background:var(--navy); padding:14px 12px; display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 12px 24px rgba(7,31,56,.28); }
  .end2 .cover img { width:70px; }
  .end2 .cover b { color:var(--white); font-size:12px; line-height:1.55; letter-spacing:.04em; }
  .end2 .cover i { display:block; width:28px; height:3px; background:var(--gold); margin-top:6px; }
  .end2 .dl p { font-size:14px; color:var(--sub); line-height:1.85; }
  .end2 .line2 { margin-top:20px; background:var(--white); color:var(--text); display:flex; align-items:center; gap:24px; padding:22px 40px; }
  .end2 .qr { width:72px; height:72px; background:var(--soft); display:flex; align-items:center; justify-content:center; font-family:var(--num); font-size:12px; color:var(--mute); flex-shrink:0; }
  .end2 .line2 b { display:block; font-size:18px; color:var(--ink); }
  .end2 .line2 span { font-size:14px; color:var(--sub); }
  .end2 .line2 .btn { margin-left:auto; height:52px; padding:0 32px; font-size:14px; }

  /* ---------- SP ---------- */
  @media (max-width: 1100px) {
    .hd nav, .hd .lang { display:none; }
    .hd .btn { margin-left:auto; }
  }
  @media (max-width: 860px) {
    .hd { height:64px; padding:0 16px; }
    .hd .logo { width:150px; }
    .hd .btn { height:40px; padding:0 16px; font-size:12px; }
    .sec { padding:80px 0; }
    .sec-head { margin-bottom:40px; }
    .sec-head h2 { font-size:26px; }
    .sec-head .lead { font-size:14px; text-align:left; }
    .sec-head .lead br { display:none; }
    .fv { height:auto; padding:40px 16px 120px; background-position:70% center; }
    .fv-slides .s { background-position:72% center; }
    .fv-panel { width:auto; right:0; background:rgba(255,255,255,.82); }
    .fv::before { display:none; }
    .fv .copy { position:relative; left:auto; top:auto; transform:none; }
    .fv .eyebrow { font-size:15px; }
    .fv h1 { font-size:21px; line-height:40px; margin-top:14px; letter-spacing:0; }
    .fv h1 span { line-height:40px; padding:0 10px; margin-left:0; }
    .fv .sub { font-size:14px; line-height:26px; }
    .fv .sub br { display:none; }
    .fv .points { gap:8px; }
    .fv .points li { width:calc((100vw - 48px) / 3); height:auto; aspect-ratio:1/1; }
    .fv .points img { width:30px; height:30px; }
    .fv .points b { font-size:13px; }
    .fv .points b.lg { font-size:15px; }
    .fv .points small { font-size:10.5px; }
    .fv .ctas { flex-direction:column; gap:10px; }
    .fv .ctas .btn { width:100%; height:56px; }
    .line-float { right:16px; bottom:16px; height:52px; font-size:13px; }
    .band { height:56px; }
    .band .track { font-size:14px; gap:36px; }
    .wwd::before { width:260px; height:260px; right:-100px; }
    .wwd .ghost { font-size:60px; top:-4px; }
    .pillars { grid-template-columns:1fr; gap:20px; }
    .pillar { padding:32px 22px 34px; }
    .pillar .big { font-size:52px; }
    .pillar h3 { font-size:21px; }
    .chain { grid-template-columns:1fr; gap:6px; padding-top:28px; }
    .chain .nd { display:grid; grid-template-columns:60px 1fr; gap:4px 14px; text-align:left; align-items:center; }
    .chain .ring { width:60px; height:60px; grid-row:span 2; }
    .chain b { margin-top:0; }
    .chain small { margin-top:0; }
    .chain .arw { height:auto; flex-direction:row; justify-content:flex-start; gap:10px; padding-left:22px; }
    .chain .arw svg { display:none; }
    .chain .arw::before { content:"↓"; color:#D7B756; font-size:16px; width:16px; text-align:center; }
    .chain .arw span { margin:0; }
    .mkt-fig { grid-template-columns:1fr; justify-items:center; gap:28px; }
    .vsteps { justify-self:stretch; }
    .both { font-size:14px; gap:12px; }
    .both::before, .both::after { width:24px; }
    .mk { padding:56px 0; }
    .mk-head h2 { font-size:23px; }
    .mk-head h2 em { display:inline-block; }
    .mk-head p { font-size:14px; }
    .mk-main { grid-template-columns:1fr; gap:8px; }
    .hero1 { padding-left:0; text-align:center; margin-top:24px; }
    .end .line a { display:inline-block; margin:8px 0 0; }
    .end .line { line-height:1.6; }
    .hero1 .big { justify-content:center; flex-wrap:wrap; }
    .hero1 .big .pre { font-size:20px; }
    .hero1 .big .n { font-size:104px; }
    .mk-map { width:78%; }
    .mk-sub { grid-template-columns:1fr; }
    .mk-sub li { padding:16px 18px; }
    .mk-sub .s { display:none; }
    .mk-foot .btn { width:100%; }
    .svc li { grid-template-columns:1fr; gap:4px; padding:20px 20px; }
    .svc h3 { font-size:17px; }
    .cases { grid-template-columns:1fr; gap:10px; }
    .cases li { padding:24px 20px; }
    .cases h3 { font-size:18px; }
    .merit { padding:64px 0; }
    .merits { grid-template-columns:1fr; gap:24px; }
    .flow5 { grid-template-columns:1fr; gap:18px; }
    .flow5::before { left:31px; right:auto; top:31px; bottom:31px; width:1.5px; height:auto; }
    .flow5 li { display:grid; grid-template-columns:62px 1fr; gap:2px 16px; text-align:left; align-items:center; }
    .flow5 .no { grid-row:span 3; margin:0; align-self:start; }
    .flow5 h3 { margin-top:0; }
    .flow5 .tag { justify-self:start; }
    .flow5 p { margin-top:4px; }
    .msg-grid { grid-template-columns:1fr; gap:32px; }
    .msg-photo { width:60%; margin:0 auto; }
    .msg-body h2 { font-size:26px; }
    .faq-list summary { padding:18px 16px; font-size:15px; grid-template-columns:24px 1fr 20px; }
    .faq-list .a { padding:0 16px 18px; grid-template-columns:24px 1fr; font-size:14px; }
    .co { grid-template-columns:1fr; gap:40px; }
    .co-tbl th { width:84px; }
    .end { padding:64px 0; }
    .end h2 { font-size:24px; }
    .end .btns { flex-direction:column; align-items:center; }
    .end .btn { min-width:0; width:100%; }
    .ft-grid { grid-template-columns:1fr 1fr; gap:28px; }
    .ft-grid > div:first-child { grid-column:1 / -1; }
    .ft-bottom { flex-direction:column; gap:8px; }
    .cta { padding:56px 0; }
    .cta h3 { font-size:21px; }
    .cta .btns { flex-direction:column; align-items:center; }
    .cta .btn { min-width:0; width:100%; }
  }
  @media (max-width: 860px) {
    .sec-head.split { grid-template-columns:1fr; gap:20px; }
    .why li { grid-template-columns:1fr; min-height:0; }
    .why li:nth-child(even) .ph { order:0; }
    .why .ph { aspect-ratio:16 / 9; }
    .why .txt { padding:28px 22px 32px; }
    .why .no { font-size:52px; }
    .why h3 { font-size:21px; }
    .prep { padding:64px 0; }
    .prep h2 { font-size:22px; }
    .prep h2 em, .intro h2 em { display:inline-block; }
    .prep ol { grid-template-columns:1fr; margin-top:32px; }
    .prep li + li { border-left:0; border-top:1px solid var(--line); }
    .prep li h3, .prep li p { padding:0 20px; }
    .prep .all { font-size:17px; }
    .bento { grid-template-columns:1fr; }
    .bx.mk1, .bx.mk2, .bx.half, .bx.wide { grid-column:auto; }
    .bx { padding:24px 20px; }
    .bx.wide { grid-template-columns:1fr; gap:20px; }
    .bx h3 { font-size:19px; }
    .scr { grid-template-columns:1fr; }
    .net { height:230px; }
    .net span { font-size:11px; padding:5px 8px; }
    .net .core { width:84px; height:84px; }
    .net .core img { width:44px; }
    .rep { grid-template-columns:1fr; }
    .chat { grid-template-columns:1fr; }
    .made { grid-template-columns:1fr; gap:12px; }
    .start { grid-template-columns:1fr; margin-top:24px; }
    .start > div { padding:26px 20px; grid-template-columns:40px 1fr; gap:14px; }
    .start > div + div { border-left:0; border-top:1px solid var(--line); }
    .start .ab { font-size:34px; }
    .start h3 { font-size:19px; }
    .intro { padding:72px 0; }
    .intro h2 { font-size:22px; }
    .intro .lead { text-align:left; font-size:14px; }
    .intro .lead br { display:none; }
    .route { grid-template-columns:1fr; gap:4px; margin-top:36px; }
    .route .box .ph, .route .box.me .logo-ph { height:120px; }
    .route .arw { flex-direction:row; padding:10px 0; }
    .route .arw svg { transform:rotate(90deg); width:28px; }
    .route-tags span { font-size:12px; padding:5px 12px; }
    .intro .free { font-size:15px; padding:12px 24px; }
    .case-nav { display:none; }
    .slider { grid-auto-columns:82%; gap:14px; }
    .merit2 .grid { grid-template-columns:1fr; gap:32px; }
    .merit2 .left h2 { font-size:26px; }
    .merit2 h3 { font-size:18px; }
    .merit2 ol li { grid-template-columns:40px 1fr; padding:22px 0; }
    .merit2 .no { font-size:24px; }
    .flow5 li { grid-template-columns:62px 1fr; }
    .flow5 .ph { grid-column:2; margin-top:10px; }
    .msg2 { grid-template-columns:1fr; }
    .msg2 .photo { min-height:0; aspect-ratio:4 / 3; }
    .msg2 .body { padding:56px 20px 64px; }
    .faq2 { grid-template-columns:1fr; gap:28px; }
    .faq2 h2 { font-size:26px; }
    .end2 { padding:64px 0; }
    .end2 h2 { font-size:23px; }
    .end2 .head p { text-align:left; font-size:14px; }
    .end2 .head p br { display:none; }
    .end2 .two { grid-template-columns:1fr; margin-top:32px; }
    .end2 .card { padding:28px 20px; }
    .end2 .card h3 { font-size:20px; }
    .end2 .card .btn { padding:0 24px; font-size:15px; }
    .end2 .dl { grid-template-columns:100px 1fr; gap:16px; }
    .end2 .line2 { flex-wrap:wrap; padding:22px 20px; gap:16px; }
    .end2 .line2 .btn { margin-left:0; width:100%; }
  }

  /* ==========================================================
     v3：参考サイト（NewsPicks法人／BE FORWARD／偉祿環保）の余白・サイズ感に合わせる
     - ページ地は薄いグレー、セクションは角丸のブロックとして積む（NewsPicks）
     - 数字はパネルごとに1つ、上辺にラベル（BE FORWARD）
     - 支援内容は紺の面に、左に見出し＋写真・右にパネル（偉祿環保）
     ========================================================== */
  :root { --bg:#EDF0F4; --r:28px; --w:1120px; }
  body { background:var(--bg); }
  .blk { margin:0 12px 12px; border-radius:var(--r); background:var(--white); overflow:hidden; position:relative; }
  .blk.gray { background:var(--bg); }
  .blk.navy { background:var(--navy); color:var(--white); }
  .blk-pad { padding:128px 0; }
  .fv + .band { margin-bottom:12px; }

  /* 見出し：左寄せ・大きめ（NewsPicks） */
  .h2 { font-size:40px; line-height:1.5; letter-spacing:.05em; color:var(--ink); font-weight:700; }
  .h2 em { font-style:normal; color:var(--navy); }
  .h2::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin-top:24px; }
  .h2.c { text-align:center; }
  .h2.c::after { margin-left:auto; margin-right:auto; }
  .navy .h2 { color:var(--white); }
  .navy .h2 em { background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .lead2 { font-size:16px; line-height:2; color:var(--sub); }
  .navy .lead2 { color:#C9D3DE; }
  .head2 { display:grid; grid-template-columns:1fr 440px; gap:64px; align-items:end; margin-bottom:64px; }
  .head2.c { display:block; text-align:center; }
  .head2.c .lead2 { margin-top:28px; }

  /* ラベル付きパネル（BE FORWARD）：上辺に紺のラベル */
  .pn { position:relative; background:var(--white); border-radius:20px; padding:56px 48px 40px; }
  .pn > .pl { position:absolute; top:0; left:50%; transform:translate(-50%,-50%); background:var(--navy); color:var(--white); font-size:15px; font-weight:700; letter-spacing:.08em; padding:8px 28px; border-radius:999px; white-space:nowrap; }
  .pn .note { font-size:11px; color:var(--mute); text-align:right; margin-top:16px; }

  /* ---------- 2つのこと ---------- */
  .wwd { padding:128px 0 112px; }
  .wwd::after { display:none; }
  .wwd .sec-head h2 { font-size:40px; }
  .wwd .sec-head .lead { font-size:16px; }
  .pillar { border-radius:20px; padding:48px 48px 52px; }
  .p-mkt { background:var(--bg); box-shadow:none; }

  /* ---------- タイ市場：インフォグラフィック ---------- */
  .mk3 { padding:112px 0 96px; }
  .mk3 .grid { display:grid; grid-template-columns:7fr 5fr; gap:44px 20px; margin-top:8px; }
  .mk3 .pn.wide { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:32px; padding:48px 64px 40px; }
  .mk3 .map { position:relative; width:300px; margin:0 auto; }
  .mk3 .map img { width:100%; height:auto; -webkit-mask-image:radial-gradient(ellipse 72% 70% at 42% 48%, #000 55%, transparent 100%); mask-image:radial-gradient(ellipse 72% 70% at 42% 48%, #000 55%, transparent 100%); }
  .mk3 .map .pin { position:absolute; left:calc(24.2% + 18px); top:calc(36% - 14px); font-size:15px; font-weight:700; color:var(--navy); white-space:nowrap; }
  .mk3 .map .pin small { display:block; font-size:12px; font-weight:500; color:var(--sub); }
  .mk3 .no1 .lb { font-size:15px; color:var(--sub); }
  .mk3 .no1 .big { display:flex; align-items:baseline; gap:10px; color:var(--ink); }
  .mk3 .no1 .big .pre { font-size:30px; font-weight:700; letter-spacing:.04em; }
  .mk3 .no1 .big .n { font-size:150px; line-height:1; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .mk3 .no1 .big .u { font-size:40px; font-weight:700; color:var(--navy); }
  .mk3 .no1 p.s { font-size:15px; color:var(--text); line-height:1.9; margin-top:12px; }
  .mk3 .no1 p.s b { color:var(--navy); font-size:19px; }
  .stat { display:flex; align-items:baseline; justify-content:center; gap:6px; color:var(--ink); font-weight:700; }
  .stat .k { font-size:18px; }
  .stat .n { font-size:72px; line-height:1; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .stat .u { font-size:24px; color:var(--navy); }
  .pn .txt { font-size:14px; line-height:1.9; color:var(--sub); text-align:center; margin-top:14px; }
  /* 棒グラフ（0起点、増加分をラベルで） */
  .bars3 { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; height:190px; margin:28px 12px 0; align-items:end; position:relative; border-bottom:1px solid var(--line); }
  .bars3 .c { position:relative; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; }
  .bars3 .v { font-size:14px; font-weight:700; color:var(--sub); margin-bottom:6px; }
  .bars3 .v .n { font-size:20px; }
  .bars3 .b { width:72%; background:var(--navy-tint); border-radius:6px 6px 0 0; }
  .bars3 .c.now .b { background:var(--navy); }
  .bars3 .c.now .v { color:var(--navy); }
  .bars3 .d { position:absolute; left:-14px; transform:translateX(-50%); bottom:calc(var(--h) + 34px); font-size:12px; font-weight:700; color:#A88E3F; white-space:nowrap; }
  .yrs { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:8px 12px 0; text-align:center; font-size:13px; color:var(--mute); }
  /* ドーナツ（リピーター率） */
  .donut { width:150px; height:150px; margin:8px auto 0; border-radius:50%; background:conic-gradient(var(--navy) 0 71.2%, var(--navy-tint) 71.2% 100%); display:flex; align-items:center; justify-content:center; }
  .donut span { width:104px; height:104px; border-radius:50%; background:var(--white); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:12px; color:var(--sub); line-height:1.4; }
  .donut b { font-size:26px; color:var(--navy); }
  .mk3 .foot { display:flex; flex-direction:column; align-items:center; gap:14px; margin-top:44px; }
  .mk3 .foot .btn { height:56px; padding:0 32px; font-size:15px; }

  /* ---------- 3つの理由：写真と文を半分ずつ（NewsPicks） ---------- */
  .why3 { display:flex; flex-direction:column; gap:12px; }
  .why3 li { display:grid; grid-template-columns:1fr 1fr; min-height:420px; border-radius:20px; overflow:hidden; background:var(--white); }
  .why3 li:nth-child(even) .ph { order:2; }
  .why3 .ph { position:relative; }
  .why3 .bub { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--white); border-radius:999px; padding:18px 44px 16px; text-align:center; color:var(--ink); box-shadow:0 16px 40px rgba(7,31,56,.18); white-space:nowrap; }
  .why3 .bub small { display:block; font-size:12px; color:var(--sub); }
  .why3 .bub b { font-family:var(--num); font-weight:500; font-size:56px; line-height:1.05; color:var(--navy); }
  .why3 .bub b i { font-style:normal; font-family:"Noto Sans JP",sans-serif; font-size:20px; font-weight:700; margin-left:4px; }
  .why3 .txt { padding:64px; display:flex; flex-direction:column; justify-content:center; }
  .why3 .no { font-family:var(--num); font-size:16px; font-weight:500; color:var(--navy); letter-spacing:.1em; display:flex; align-items:center; gap:10px; }
  .why3 .no::before { content:""; width:8px; height:8px; border-radius:50%; background:#C9B57A; }
  .why3 h3 { font-size:32px; line-height:1.5; color:var(--ink); letter-spacing:.05em; margin-top:20px; }
  .why3 h3 em { font-style:normal; color:var(--navy); }
  .why3 p { font-size:15.5px; line-height:2; color:var(--sub); margin-top:auto; padding-top:40px; }
  .why3 .src2 { font-size:11px; color:var(--mute); margin-top:10px; padding-top:0; }

  /* ---------- 3つの準備 ---------- */
  .prep3 .cols { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .prep3 .cols li { background:var(--white); border-radius:20px; overflow:hidden; }
  .prep3 .cols .ph { aspect-ratio:4 / 3; }
  .prep3 .cols h3 { font-size:19px; color:var(--ink); letter-spacing:.04em; padding:28px 32px 0; display:flex; align-items:center; gap:12px; }
  .prep3 .cols h3 .n { width:32px; height:32px; border-radius:50%; background:var(--navy); color:var(--white); font-size:15px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
  .prep3 .cols p { font-size:14.5px; line-height:1.9; color:var(--sub); padding:12px 32px 36px; }
  .prep3 .all { text-align:center; margin-top:48px; font-size:24px; font-weight:700; color:var(--ink); letter-spacing:.06em; }
  .prep3 .all em { font-style:normal; color:var(--navy); }

  /* ---------- 支援内容：紺の面（偉祿環保） ---------- */
  .sv3 .lay { display:grid; grid-template-columns:330px 1fr; gap:56px; align-items:start; }
  .sv3 .side { position:sticky; top:120px; }
  .sv3 .side .lead2 { margin-top:28px; font-size:15px; }
  .sv3 .side .ph { aspect-ratio:3 / 4; border-radius:16px; margin-top:36px; }
  .sv3 .bento { gap:12px; }
  .sv3 .bx { border-radius:16px; color:var(--text); }
  .sv3 .bx.mk1, .sv3 .bx.mk2, .sv3 .bx.half { grid-column:span 12; }
  .sv3 .bx.mk1 .scr { grid-template-columns:1fr 1.1fr; }
  .sv3 .bx.mk1 .post .ph { aspect-ratio:4 / 3; }
  .sv3 .bx.mk1 .ad .ph { min-height:118px; }
  .sv3 .bx.mk1 .ad b { font-size:13px; }
  .sv3 .row2 { grid-column:span 12; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .sv3 .row2 .bx { grid-column:auto; }
  .sv3 .start { border-radius:16px; overflow:hidden; margin-top:12px; color:var(--text); }

  /* ---------- 直接ご紹介：円を矢印でつなぐ図（BE FORWARD） ---------- */
  .route3 { display:grid; grid-template-columns:1fr 120px 1.15fr 120px 1fr; align-items:center; margin-top:16px; }
  .route3 .nd { text-align:center; }
  .route3 .cir { width:240px; height:240px; margin:0 auto; border-radius:50%; background:#DCE2E9 center / cover; box-shadow:0 0 0 12px var(--bg); }
  .route3 .me .cir { width:280px; height:280px; background:var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; box-shadow:0 0 0 14px #E3E8EE; }
  .route3 .me .cir img { width:96px; }
  .route3 .me .cir span { color:var(--white); font-size:14px; line-height:1.7; }
  .route3 b { display:block; font-size:22px; color:var(--ink); margin-top:28px; letter-spacing:.06em; }
  .route3 small { display:block; font-size:14px; color:var(--sub); line-height:1.8; margin-top:6px; }
  .route3 .arw { display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:96px; }
  .route3 .arw span { font-size:14px; font-weight:700; color:var(--navy); background:var(--white); box-shadow:inset 0 0 0 1.5px var(--navy); padding:6px 16px; border-radius:999px; }
  .route3 .arw svg { width:72px; height:14px; }
  .intro3 .tags { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:56px; }
  .intro3 .tags span { font-size:14px; color:var(--ink); background:var(--bg); padding:8px 20px; border-radius:999px; }
  .intro3 .free { text-align:center; margin-top:28px; }
  .intro3 .free span { display:inline-block; font-size:17px; font-weight:700; color:var(--navy); background:var(--gold); padding:14px 48px; border-radius:999px; letter-spacing:.06em; }

  /* ---------- 活用イメージ ---------- */
  .case3 .slider li { border-radius:20px; overflow:hidden; }
  .case3 .slider { grid-auto-columns:calc((100% - 40px) / 3); gap:20px; }
  .case3 .slider .body { padding:28px 28px 34px; }
  .case3 .slider h3 { font-size:20px; }
  .case3 .slider .ind { border-radius:999px; padding:3px 14px; }

  /* ---------- メリット：写真入りのグリッド（NewsPicks） ---------- */
  .mr3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
  .mr3 > * { border-radius:20px; padding:40px 36px; min-height:280px; display:flex; flex-direction:column; }
  .mr3 .ph { grid-column:span 2; padding:0; }
  .mr3 .it { background:var(--white); }
  .mr3 .it.dk { background:var(--navy); color:var(--white); }
  .mr3 .it.gy { background:#DDE3EA; }
  .mr3 .no { font-family:var(--num); font-size:15px; color:var(--navy); display:flex; align-items:center; gap:8px; letter-spacing:.1em; }
  .mr3 .no::before { content:""; width:8px; height:8px; border-radius:50%; background:#C9B57A; }
  .mr3 .dk .no { color:#D7B756; }
  .mr3 h3 { font-size:23px; line-height:1.55; color:var(--ink); letter-spacing:.04em; margin-top:18px; }
  .mr3 .dk h3 { color:var(--white); }
  .mr3 p { font-size:14px; line-height:1.9; color:var(--sub); margin-top:auto; padding-top:24px; }
  .mr3 .dk p { color:#C9D3DE; }

  /* ---------- ご利用の流れ ---------- */
  .flow5 .ph { border-radius:12px; }
  .flow5 h3 { font-size:17px; }

  /* ---------- 代表 ---------- */
  .msg2 { border-radius:var(--r); margin:0 12px 12px; overflow:hidden; background:var(--white); }
  .msg2 .photo { min-height:720px; }
  .msg-body h2 { font-size:40px; }

  /* ---------- FAQ：白いQの箱（NewsPicks） ---------- */
  .faq2 h2 { font-size:40px; }
  .faq2 .faq-list details { background:var(--white); border-radius:16px; }
  .faq2 .faq-list summary { padding:26px 32px; }
  .faq2 .faq-list .a { padding:0 32px 26px; }

  /* ---------- 最後のCTA ---------- */
  .end2 { border-radius:var(--r); margin:0 12px 12px; padding:128px 0; }
  .end2 h2 { font-size:40px; }
  .end2 .card, .end2 .line2 { border-radius:20px; }
  .end2 .card .ph { border-radius:12px; }
  .ft { border-radius:var(--r) var(--r) 0 0; margin:0 12px; }
  .end2 .dl { grid-template-columns:170px 1fr; gap:28px; }
  .end2 .cover { padding:20px 16px; }
  .end2 .cover img { width:92px; }
  .end2 .cover b { font-size:15px; }
  .vision li { border-radius:12px; }
  .sv3 .bx .fig .net { height:230px; }

  @media (max-width: 860px) {
    .blk { margin:0 6px 6px; border-radius:20px; }
    .blk-pad { padding:80px 0; }
    .h2 { font-size:26px; }
    .head2 { grid-template-columns:1fr; gap:24px; margin-bottom:40px; }
    .lead2 { font-size:14.5px; }
    .head2.c .lead2 { text-align:left; }
    .head2.c .lead2 br { display:none; }
    .pn { padding:44px 20px 28px; }
    .pn > .pl { font-size:13px; padding:6px 18px; }
    .wwd { padding:80px 0; }
    .wwd .sec-head h2 { font-size:26px; }
    .pillar { padding:32px 22px; }
    .mk3 { padding:80px 0 64px; }
    .mk3 .grid { grid-template-columns:1fr; gap:40px; }
    .mk3 .pn.wide { grid-template-columns:1fr; padding:44px 20px 28px; gap:8px; }
    .mk3 .map { width:72%; }
    .mk3 .no1 { text-align:center; }
    .mk3 .no1 .big { justify-content:center; flex-wrap:wrap; }
    .mk3 .no1 .big .pre { font-size:20px; }
    .mk3 .no1 .big .n { font-size:104px; }
    .stat .n { font-size:56px; }
    .bars3 { gap:16px; height:170px; margin:24px 0 0; }
    .yrs { gap:16px; margin:8px 0 0; }
    .bars3 .d { left:-8px; }
    .mk3 .foot .btn { width:100%; padding:0 20px; font-size:14px; }
    .why3 li { grid-template-columns:1fr; min-height:0; }
    .why3 li:nth-child(even) .ph { order:0; }
    .why3 .ph { aspect-ratio:4 / 3; }
    .why3 .bub { padding:12px 28px; }
    .why3 .bub b { font-size:40px; }
    .why3 .txt { padding:32px 22px 36px; }
    .why3 h3 { font-size:23px; }
    .why3 p { padding-top:16px; }
    .prep3 .cols { grid-template-columns:1fr; gap:12px; }
    .prep3 .all { font-size:18px; }
    .sv3 .lay { grid-template-columns:1fr; gap:32px; }
    .sv3 .side { position:static; }
    .sv3 .side .ph { aspect-ratio:16 / 9; }
    .sv3 .bx.mk1 .scr { grid-template-columns:1fr; }
    .sv3 .row2 { grid-template-columns:1fr; }
    .route3 { grid-template-columns:1fr; gap:8px; }
    .route3 .cir { width:180px; height:180px; }
    .route3 .me .cir { width:200px; height:200px; }
    .route3 .me .cir img { width:72px; }
    .route3 .arw { margin:8px 0; flex-direction:row; }
    .route3 .arw svg { transform:rotate(90deg); width:40px; }
    .route3 b { margin-top:18px; }
    .case3 .slider { grid-auto-columns:84%; gap:12px; }
    .mr3 { grid-template-columns:1fr; }
    .mr3 .ph { grid-column:auto; aspect-ratio:16 / 10; min-height:0; }
    .mr3 > * { min-height:0; padding:30px 24px; }
    .mr3 h3 { font-size:20px; }
    .msg2 { margin:0 6px 6px; }
    .msg2 .photo { min-height:0; }
    .msg-body h2 { font-size:28px; }
    .faq2 h2 { font-size:26px; }
    .faq2 .faq-list summary { padding:20px 18px; }
    .faq2 .faq-list .a { padding:0 18px 20px; }
    .end2 { margin:0 6px 6px; padding:80px 0; }
    .end2 h2 { font-size:24px; }
    .ft { margin:0 6px; }
    .h2 em { display:inline-block; }
    .prep3 .h2 { font-size:22px; }
    .intro3 .h2 { font-size:20px; }
    .prep3 .cols h3 { font-size:17px; padding:24px 20px 0; }
    .prep3 .cols p { padding:10px 20px 28px; }
    .case3 .slider h3 { font-size:17.5px; }
    .case3 .slider .body { padding:22px 20px 28px; }
    .intro3 .free span { font-size:14px; padding:12px 24px; }
    .end2 .dl { grid-template-columns:96px 1fr; gap:16px; }
    .end2 .cover { padding:12px 10px; }
    .end2 .cover img { width:56px; }
    .end2 .cover b { font-size:11px; }
  }
  /* v4：丸みを減らす（FVの角＝3〜5pxに合わせる）。円・ボタン（FVに合わせた丸ボタン）はそのまま */
  :root { --r:8px; }
  .blk, .msg2, .end2 { border-radius:var(--r); }
  .ft { border-radius:var(--r) var(--r) 0 0; }
  .pn, .pillar, .why3 li, .prep3 .cols li, .case3 .slider li, .mr3 > *, .sv3 .bx, .sv3 .start, .end2 .card, .end2 .line2, .faq2 .faq-list details { border-radius:6px; }
  .sv3 .side .ph, .flow5 .ph, .end2 .card .ph, .vision li { border-radius:4px; }
  .pn > .pl, .intro3 .tags span, .intro3 .free span, .route3 .arw span, .case3 .slider .ind, .flow5 .tag, .why3 .bub, .hero1 .world { border-radius:3px; }
  .bars3 .b { border-radius:3px 3px 0 0; }
  @media (max-width: 860px) {
    .blk, .msg2, .end2 { border-radius:6px; }
  }
  /* v5：ご利用の流れ＝大きな写真のカードを横にスライド（右端は画面外へはみ出す）＋進み具合の線と矢印 */
  .flow6 { --gut:max(24px, calc((100% - var(--w)) / 2)); display:grid; grid-auto-flow:column; grid-auto-columns:min(520px, 78vw); gap:40px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-left:var(--gut); padding:0 var(--gut); scrollbar-width:none; }
  .flow6::-webkit-scrollbar { display:none; }
  .flow6 li { scroll-snap-align:start; }
  .flow6 .ph { aspect-ratio:3 / 2; border-radius:4px; }
  .flow6 .tt { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-top:28px; }
  .flow6 h3 { font-size:22px; color:var(--navy); letter-spacing:.06em; }
  .flow6 h3 .n { font-size:22px; }
  .flow6 .mt { font-size:13px; color:var(--mute); letter-spacing:.06em; white-space:nowrap; }
  .flow6 .mt.free { font-weight:700; color:#A88E3F; }
  .flow6 p { font-size:15px; line-height:2.1; color:var(--text); margin-top:20px; }
  .flow6-ctl { display:flex; align-items:center; gap:56px; margin-top:64px; }
  .flow6-ctl .bar { flex:1; height:1px; background:#C5CDD7; position:relative; }
  .flow6-ctl .bar i { position:absolute; left:0; top:-1px; height:3px; width:20%; background:var(--navy); transition:left .3s, width .3s; }
  .flow6-ctl .nav { display:flex; gap:16px; }
  .flow6-ctl button { width:64px; height:64px; border-radius:50%; border:0; background:transparent; color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy); font-size:18px; cursor:pointer; transition:background .2s, color .2s; }
  .flow6-ctl button:hover { background:var(--navy); color:var(--white); }
  @media (max-width: 860px) {
    .flow6 { grid-auto-columns:84%; gap:16px; --gut:24px; }
    .flow6 h3, .flow6 h3 .n { font-size:18px; }
    .flow6 .tt { margin-top:18px; }
    .flow6 p { font-size:14px; margin-top:10px; }
    .flow6-ctl { gap:20px; margin-top:36px; }
    .flow6-ctl button { width:48px; height:48px; font-size:15px; }
  }
  /* v6：Figmaコメント反映 */
  /* タイ市場：1人あたり支出・世界6位 */
  .mk3 .pn .cap { text-align:center; font-size:14px; color:var(--text); margin-top:10px; }
  .mk3 .pn .cap b { color:var(--navy); }
  .stat .k { font-size:20px; }
  .hbars { margin:28px 8px 0; display:flex; flex-direction:column; gap:16px; }
  .hbars li { display:grid; grid-template-columns:40px 1fr 44px; align-items:center; gap:10px; font-size:13px; color:var(--sub); }
  .hbars i { display:block; height:24px; background:var(--navy-tint); border-radius:0 3px 3px 0; }
  .hbars em { font-style:normal; font-size:15px; text-align:right; }
  .hbars li.on { color:var(--navy); font-weight:700; }
  .hbars li.on i { background:var(--navy); }
  .hbars li.on em { color:var(--navy); font-size:17px; }
  .pn .unit { font-size:11px; color:var(--mute); text-align:right; margin-top:6px; }
  .rk { margin:20px auto 0; max-width:300px; display:flex; flex-direction:column; gap:4px; }
  .rk li { display:flex; align-items:center; gap:14px; font-size:14px; color:var(--sub); padding:6px 14px; }
  .rk li .n { width:22px; font-size:15px; color:var(--mute); text-align:center; }
  .rk li.on { background:var(--navy); color:var(--white); font-weight:700; font-size:16px; border-radius:3px; padding:10px 14px; }
  .rk li.on .n { color:#D7B756; }
  .rk li.on em { margin-left:auto; font-style:normal; font-size:13px; font-weight:500; }
  .rk li.on em b { font-size:18px; }
  /* 3つの理由：写真の上の白いカード（グラフ・人数） */
  .why3 .card-g, .why3 .card-p { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--white); border-radius:6px; padding:20px 26px 14px; box-shadow:0 16px 40px rgba(7,31,56,.18); width:300px; }
  .why3 .card-g .t, .why3 .card-p .t { font-size:12px; color:var(--sub); text-align:center; }
  .g3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; height:130px; align-items:end; margin-top:10px; border-bottom:1px solid var(--line); }
  .g3 div { height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; position:relative; }
  .g3 em { font-style:normal; font-size:14px; color:var(--sub); margin-bottom:4px; }
  .g3 i { width:70%; background:var(--navy-tint); border-radius:3px 3px 0 0; }
  .g3 .on i { background:var(--navy); }
  .g3-arrow { display:block; width:100%; height:28px; margin:10px 0 -4px; }
  .g3 .inc { position:absolute; left:-7px; bottom:28px; transform:translateX(-50%); width:42px; height:42px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:7.5px; line-height:1.1; box-shadow:0 4px 10px rgba(7,31,56,.18); z-index:1; }
  .g3 .inc .n { font-size:12px; font-weight:600; }
  .g3 .on em { color:var(--navy); font-weight:700; font-size:16px; }
  .g3 span { position:absolute; bottom:-22px; font-size:11px; color:var(--mute); }
  .why3 .card-g .u, .why3 .card-p .u { font-size:10.5px; color:var(--mute); text-align:right; margin-top:26px; }
  .why3 .card-p .u { text-align:center; margin-top:12px; }
  .card-p .big { text-align:center; font-size:20px; font-weight:700; color:var(--ink); line-height:1.5; margin-top:2px; }
  .card-p .big b { font-size:40px; color:var(--navy); font-weight:500; margin:0 2px; }
  .ppl { display:flex; justify-content:center; gap:6px; margin-top:12px; }
  .ppl svg { width:18px; height:29px; fill:var(--navy-tint); }
  .ppl svg.on { fill:var(--navy); }
  /* 3つの準備：画面例のモックアップ */
  .prep3 .mock { aspect-ratio:4 / 3; background:#DDE3EA; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
  .prep3 .m-sns { align-items:flex-start; padding-top:22px; }
  .phone2 { width:160px; background:var(--white); border:5px solid var(--ink); border-radius:18px; overflow:hidden; box-shadow:0 16px 32px rgba(7,31,56,.2); }
  .phone2 .top { display:flex; align-items:center; gap:5px; padding:6px 8px; font-size:8px; font-weight:700; color:var(--ink); }
  .phone2 .top i { width:12px; height:12px; border-radius:50%; background:var(--gold); }
  .phone2 .pic { aspect-ratio:1 / 1; background:center / cover; }
  .phone2 p { font-size:9px; padding:6px 8px 30px; line-height:1.6; color:var(--ink); letter-spacing:0; }
  .phone2 p span { color:#2F6DB5; }
  .menu { width:76%; background:var(--white); padding:16px 20px; box-shadow:0 16px 32px rgba(7,31,56,.16); border-top:4px solid var(--navy); }
  .menu .mt { font-size:13px; font-weight:700; color:var(--ink); text-align:center; letter-spacing:.2em; }
  .menu .mt small { display:block; font-size:10px; color:var(--sub); letter-spacing:0; font-weight:500; }
  .menu dl { display:grid; grid-template-columns:1fr auto; gap:6px 10px; margin-top:10px; font-size:12px; color:var(--ink); align-items:baseline; }
  .menu dt small { display:block; font-size:10px; color:var(--sub); }
  .menu dd { font-size:13px; color:var(--navy); border-bottom:1px dotted var(--line); }
  .m-chat .line-scr { width:80%; min-height:0; border-radius:4px; box-shadow:0 16px 32px rgba(7,31,56,.16); }
  /* メリット：2×2 */
  .mr4 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .mr4 li { background:var(--bg); border-radius:6px; padding:40px 44px; display:grid; grid-template-columns:64px 1fr; gap:4px; }
  .mr4 .no { font-size:34px; line-height:1.1; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .mr4 h3 { font-size:22px; color:var(--ink); letter-spacing:.04em; line-height:1.5; }
  .mr4 h3 em { font-style:normal; color:var(--navy); }
  .mr4 p { font-size:14.5px; color:var(--sub); line-height:1.9; margin-top:10px; }
  /* 料金とご依頼の方法 */
  .plans { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:960px; margin:0 auto; }
  .plan { border-radius:6px; padding:44px 44px 40px; display:flex; flex-direction:column; position:relative; }
  .plan.a { background:var(--navy); color:var(--white); }
  .plan.b { background:var(--white); box-shadow:inset 0 0 0 1.5px var(--navy); }
  .plan .tg { position:absolute; top:0; left:44px; transform:translateY(-50%); font-size:13px; font-weight:700; padding:5px 16px; border-radius:3px; background:var(--gold); color:var(--navy); }
  .plan .tg.o { background:var(--white); color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy); }
  .plan h3 { font-size:22px; letter-spacing:.04em; display:flex; align-items:center; gap:12px; }
  .plan.b h3 { color:var(--ink); }
  .plan .ab { font-size:30px; font-weight:500; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .plan .pr { font-size:22px; font-weight:700; margin-top:18px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.2); }
  .plan.b .pr { color:var(--navy); border-bottom-color:var(--line); font-size:30px; }
  .plan .pr b { font-size:64px; line-height:1; margin-right:4px; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .plan .d { font-size:14.5px; line-height:1.9; margin-top:18px; }
  .plan.a .d { color:#D5DDE6; }
  .plan.b .d { color:var(--sub); }
  .plan ul { margin:14px 0 28px; display:flex; flex-direction:column; gap:6px; font-size:14px; }
  .plan ul li { padding-left:20px; position:relative; }
  .plan ul li::before { content:""; position:absolute; left:2px; top:.55em; width:8px; height:8px; border-radius:50%; background:#D7B756; }
  .plan.b ul li { color:var(--text); }
  .plan .btn { margin-top:auto; justify-content:space-between; padding:0 28px; }
  .price .note { text-align:center; font-size:12px; color:var(--mute); margin-top:20px; }
  @media (max-width: 860px) {
    .hbars li { grid-template-columns:36px 1fr 40px; }
    .why3 .card-g, .why3 .card-p { width:250px; padding:14px 18px 10px; }
    .g3 { height:100px; }
    .card-p .big b { font-size:32px; }
    .mr4 { grid-template-columns:1fr; gap:10px; }
    .mr4 li { padding:28px 22px; grid-template-columns:48px 1fr; }
    .mr4 .no { font-size:26px; }
    .mr4 h3 { font-size:19px; }
    .plans { grid-template-columns:1fr; gap:28px; }
    .plan { padding:36px 24px 28px; }
    .plan .tg { left:24px; }
    .plan .pr b { font-size:52px; }
  }
  /* v7：支援内容 ラベル→サービスのタグ、パートナー図を「タイ→NISORA→貴社」に */
  .sv3 .bx .tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
  .sv3 .bx .tags li { font-size:12px; color:var(--navy); background:#EEF2F7; padding:4px 10px; border-radius:3px; letter-spacing:.02em; }
  .stack2 { display:flex; flex-direction:column; gap:12px; }
  .made3 { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  .made3 > div { aspect-ratio:4 / 3; border-radius:3px; }
  .made3 .thumb { background:var(--soft); padding:12px; display:flex; flex-direction:column; gap:6px; }
  .made3 .thumb i { display:block; height:6px; background:var(--navy-tint); }
  .made3 .thumb i:first-child { width:60%; background:var(--navy); }
  .pnet { display:grid; grid-template-columns:1.25fr 56px 1fr; align-items:stretch; gap:0; margin-top:4px; }
  .pnet .zone { border-radius:4px; padding:28px 12px 12px; position:relative; }
  .pnet .zone.th { background:#F3F5F8; }
  .pnet .zone.jp { background:#EEF2F7; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
  .pnet .zl { position:absolute; top:8px; left:12px; font-size:11px; font-weight:700; color:var(--sub); letter-spacing:.1em; }
  .pnet ul { display:flex; flex-direction:column; gap:6px; }
  .pnet li { background:var(--white); font-size:12px; color:var(--ink); padding:7px 10px; border-radius:3px; box-shadow:inset 0 0 0 1px #D5DCE5; white-space:nowrap; }
  .pnet .zc { font-size:11px; color:var(--sub); text-align:center; margin-top:8px; }
  .pnet .ar { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; font-size:10.5px; color:#A88E3F; font-weight:700; text-align:center; line-height:1.4; }
  .pnet .ar svg { width:40px; height:12px; }
  .pnet .mid { display:flex; flex-direction:column; align-items:center; gap:4px; }
  .pnet .core { width:60px; height:60px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; }
  .pnet .core img { width:32px; }
  .pnet .mid b { font-size:12px; color:var(--navy); letter-spacing:.06em; }
  .pnet .dn { width:12px; height:30px; }
  .pnet .you { background:var(--white); border:1.5px solid var(--navy); color:var(--navy); font-weight:700; font-size:14px; padding:8px 18px; border-radius:3px; white-space:nowrap; }
  @media (max-width: 860px) {
    .pnet { grid-template-columns:1fr; gap:6px; }
    .pnet .ar { flex-direction:row; padding:4px 0; }
    .pnet .ar svg { transform:rotate(90deg); width:24px; }
  }

  /* ==========================================================
     v9：構成を「NISORAについて→タイ市場→事業01→事業02→メリット→活用→料金→流れ」に整理
     あしらい：大きな英字の透かし（What we doと同じ手法）＋エンブレム
     ========================================================== */
  .blk > .inner, .blk > .lay { position:relative; z-index:1; }
  .gh { position:absolute; top:44px; font-family:var(--num); font-weight:600; font-size:150px; line-height:1; letter-spacing:-.02em; color:var(--navy); opacity:.045; white-space:nowrap; pointer-events:none; user-select:none; z-index:0; }
  .gh.c { left:50%; transform:translateX(-50%); }
  .gh.l { left:calc((100% - var(--w)) / 2 - 12px); }
  .gh.r { right:calc((100% - var(--w)) / 2 - 12px); }
  .gh.dk { color:var(--white); opacity:.06; }
  .mk3 .gh { top:20px; }
  .emb { position:absolute; width:420px; height:420px; background:url(assets/emblem.svg) center / contain no-repeat; opacity:.06; pointer-events:none; z-index:0; }
  .emb.r { right:-150px; top:60px; }
  .emb.l { left:-160px; bottom:-120px; }
  .emb.dk { background-image:url(assets/emblem-white.svg); opacity:.07; }
  .end2 { position:relative; overflow:hidden; }
  .end2 .inner { position:relative; z-index:1; }
  .end2 .gh { top:24px; }

  /* NISORAについて */
  .ab-grid { display:grid; grid-template-columns:1fr 470px; gap:72px; align-items:center; }
  .ab-txt .lead2 { margin-top:28px; }
  .ab-idx { margin-top:32px; border-top:1px solid var(--line); }
  .ab-idx li { border-bottom:1px solid var(--line); }
  .ab-idx a { display:grid; grid-template-columns:52px 1fr 24px; align-items:center; padding:18px 4px; transition:background .2s; }
  .ab-idx a:hover { background:var(--soft); }
  .ab-idx .n { font-size:24px; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .ab-idx b { font-size:18px; color:var(--ink); letter-spacing:.04em; }
  .ab-idx .ar { color:var(--navy); }
  .ab-msg { margin-top:32px; padding-left:20px; border-left:3px solid #C9B57A; }
  .ab-msg blockquote { font-size:14.5px; line-height:2; color:var(--text); }
  .ab-msg figcaption { margin-top:10px; font-size:12px; color:var(--sub); }
  .ab-msg figcaption b { font-size:15px; color:var(--ink); margin-left:10px; letter-spacing:.1em; }
  .ab-ph { position:relative; height:560px; }
  .ab-ph figure { position:absolute; width:330px; }
  .ab-ph .p1 { left:0; top:0; }
  .ab-ph .p2 { right:0; bottom:0; }
  .ab-ph .ph { aspect-ratio:4 / 5; border-radius:6px; }
  .ab-ph figcaption { font-size:12px; color:var(--sub); margin-top:8px; letter-spacing:.08em; }
  .ab-ph .p2 figcaption { text-align:right; }
  .ab-line { position:absolute; left:340px; top:230px; width:120px; height:60px; }

  /* 事業の見出し（番号＋日本語の事業名） */
  .svk { display:flex; align-items:center; gap:14px; font-size:15px; font-weight:700; color:var(--navy); letter-spacing:.08em; margin-bottom:18px; }
  .svk .sno { font-family:var(--num); font-weight:500; font-size:44px; line-height:1; letter-spacing:0; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .svh.c { text-align:center; margin-bottom:56px; }
  .svh.c .svk { justify-content:center; }
  .svh .lead2 { margin-top:28px; }
  .navy .svk { color:#D7B756; }
  .s01-foot { margin-top:56px; text-align:center; }
  .s01-foot .t { font-size:13px; font-weight:700; color:var(--sub); letter-spacing:.1em; }
  .tags2 { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:14px; }
  .tags2 li { font-size:14px; color:var(--ink); background:var(--bg); padding:8px 20px; border-radius:3px; }
  .s01-foot .free { margin-top:28px; }
  .s01-foot .free span { display:inline-block; font-size:16px; font-weight:700; color:var(--navy); background:var(--gold); padding:13px 44px; border-radius:3px; letter-spacing:.06em; }
  .sv3 .side .lead2 { margin-top:24px; }
  .prep-mini { margin-top:22px; display:flex; flex-direction:column; gap:8px; }
  .prep-mini li { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:700; color:var(--white); }
  .prep-mini .n { width:26px; height:26px; border-radius:50%; background:#C9B57A; color:var(--navy); font-size:13px; display:inline-flex; align-items:center; justify-content:center; }
  .sv3 .side .ph { aspect-ratio:4 / 3; margin-top:32px; }

  /* タイ市場：推移の金の矢印 */
  .bars3.arr { height:220px; margin-top:44px; }
  .bars3 .ar3 { position:absolute; left:0; top:-14px; width:100%; height:80px; overflow:visible; }
  .bars3 .ar3h { position:absolute; right:3%; top:-21px; width:16px; height:16px; transform:rotate(-2deg); }
  .mk3 .pn .txt { margin-top:18px; }
  #faq .faq-list details { background:var(--bg); }
  .co.one { grid-template-columns:1fr; max-width:820px; margin:0 auto; }

  @media (max-width: 860px) {
    .gh { font-size:64px; top:28px; }
    .gh.l { left:16px; } .gh.r { right:16px; }
    .emb { width:240px; height:240px; }
    .emb.r { right:-110px; } .emb.l { left:-110px; }
    .ab-grid { grid-template-columns:1fr; gap:40px; }
    .ab-ph { height:400px; }
    .ab-ph figure { width:56%; }
    .ab-line { left:44%; top:170px; width:80px; }
    .ab-idx b { font-size:15.5px; }
    .svk { font-size:13px; } .svk .sno { font-size:34px; }
    .tags2 li { font-size:12.5px; padding:6px 14px; }
    .s01-foot .free span { font-size:14px; padding:12px 24px; }
    .bars3 .ar3h { right:1%; }
    .mr4 h3 { font-size:17px; }
    .mr4 h3 em { display:inline-block; }
  }
  /* v10：2つの事業を左右互い違いで見せる */
  .bz { display:grid; grid-template-columns:1fr 1fr; background:var(--white); border-radius:6px; overflow:hidden; }
  .bz + .bz { margin-top:24px; }
  .bz.rev .bz-vis { order:2; }
  .bz-vis { position:relative; min-height:640px; }
  .bz-vis > .ph { position:absolute; inset:0; }
  .bz-txt { padding:64px 60px 60px; }
  .bz-no { display:flex; align-items:center; gap:14px; font-size:14px; font-weight:700; color:var(--navy); letter-spacing:.06em; }
  .bz-no .n { font-size:56px; font-weight:500; line-height:1; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .bz h3 { font-size:34px; line-height:1.45; letter-spacing:.06em; color:var(--ink); margin-top:18px; }
  .bz h3 em { font-style:normal; color:var(--navy); }
  .bz h3::after { content:""; display:block; width:48px; height:4px; background:var(--gold); margin-top:22px; }
  .bz .d { font-size:15px; line-height:2; color:var(--sub); margin-top:22px; }
  .ic { width:24px; height:24px; fill:none; stroke:var(--navy); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
  /* 01：流れの図・分野のリスト */
  .mroute { display:grid; grid-template-columns:auto 1fr auto 1fr auto; align-items:center; gap:6px; margin-top:28px; padding:20px 22px; background:var(--bg); border-radius:4px; }
  .mroute .nd { display:flex; flex-direction:column; align-items:center; gap:6px; }
  .mroute .c { width:64px; height:64px; border-radius:50%; background:center / cover; box-shadow:0 0 0 4px var(--white); display:flex; align-items:center; justify-content:center; }
  .mroute .me .c { background:var(--navy); }
  .mroute .me .c img { width:34px; }
  .mroute b { font-size:13px; color:var(--ink); }
  .mroute .ar { display:flex; flex-direction:column; align-items:center; gap:2px; padding-bottom:20px; }
  .mroute .ar small { font-size:11px; font-weight:700; color:#A88E3F; }
  .mroute .ar svg { width:100%; max-width:64px; height:10px; }
  .bz .lt { font-size:13px; font-weight:700; color:var(--sub); letter-spacing:.1em; margin-top:28px; }
  .icl { display:grid; grid-template-columns:1.2fr 1fr; gap:0 20px; margin-top:8px; }
  .icl li { white-space:nowrap; }
  .icl li { display:grid; grid-template-columns:24px 1fr; align-items:center; gap:0 12px; font-size:15px; color:var(--ink); padding:12px 0; border-bottom:1px solid var(--line); }
  .icl li small { grid-column:2; font-size:11px; color:var(--sub); margin-top:-2px; }
  .bz .note { display:inline-block; margin-top:26px; font-size:14px; font-weight:700; color:var(--navy); background:var(--gold); padding:9px 22px; border-radius:3px; }
  /* 02：サービスのリスト */
  .svl { margin-top:26px; border-top:1px solid var(--line); }
  .svl li { display:grid; grid-template-columns:44px 1fr; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); }
  .svl li .ic { width:28px; height:28px; }
  .svl b { display:block; font-size:16px; color:var(--ink); letter-spacing:.04em; }
  .svl small { display:block; font-size:12.5px; color:var(--sub); margin-top:2px; line-height:1.6; }
  /* 写真の上の画面例 */
  .fl { position:absolute; background:var(--white); border-radius:6px; box-shadow:0 18px 40px rgba(7,31,56,.25); }
  .chat1 { left:40px; right:40px; bottom:40px; padding:16px 18px 14px; }
  .chat1 .fh { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:var(--navy); }
  .chat1 .fh i { width:18px; height:18px; border-radius:50%; background:var(--navy) url(assets/emblem-white.svg) center / 12px no-repeat; }
  .chat1 .line-scr { margin-top:10px; min-height:0; border-radius:4px; }
  .chat1 .tr { font-size:12px; color:var(--sub); line-height:1.7; margin-top:10px; }
  .post2 { left:48px; top:48px; width:220px; overflow:hidden; font-size:10px; color:var(--ink); }
  .post2 .top { display:flex; align-items:center; gap:6px; padding:8px 10px; font-weight:700; }
  .post2 .top i { width:16px; height:16px; border-radius:50%; background:var(--gold); }
  .post2 .pic { aspect-ratio:1 / 1; background:center / cover; }
  .post2 p { padding:8px 10px 12px; line-height:1.6; letter-spacing:0; }
  .post2 p span { color:#2F6DB5; }
  .book2 { right:40px; bottom:48px; width:230px; padding:16px 18px; font-size:11.5px; line-height:1.7; color:var(--text); }
  .book2 b { display:block; font-size:13px; color:var(--navy); }
  .book2 dl { display:grid; grid-template-columns:auto 1fr; gap:0 10px; margin-top:6px; }
  .book2 dt { color:var(--mute); }
  .book2 .ok { display:inline-block; margin-top:8px; font-weight:700; color:var(--white); background:var(--navy); padding:2px 10px; border-radius:3px; }
  @media (max-width: 860px) {
    .bz { grid-template-columns:1fr; }
    .bz.rev .bz-vis { order:0; }
    .bz-vis { min-height:420px; }
    .bz-txt { padding:36px 22px 40px; }
    .bz-no .n { font-size:40px; } .bz-no { font-size:12.5px; }
    .bz h3 { font-size:25px; }
    .mroute { padding:16px 10px; }
    .mroute .c { width:52px; height:52px; }
    .icl { grid-template-columns:1fr; }
    .chat1 { left:16px; right:16px; bottom:16px; }
    .post2 { left:16px; top:16px; width:170px; }
    .book2 { right:16px; bottom:16px; width:190px; }
  }
  /* v11：01の下に「ご紹介の流れ」の大きな図 */
  .bz-flow { grid-column:1 / -1; border-top:1px solid var(--line); padding:44px 56px 56px; }
  .bf-t { text-align:center; font-size:15px; font-weight:700; color:var(--navy); letter-spacing:.12em; margin-bottom:28px; }
  .bf-t::before, .bf-t::after { content:""; display:inline-block; width:28px; height:1px; background:#C9B57A; vertical-align:middle; margin:0 14px; }
  .bz-vis { min-height:600px; }
  @media (max-width: 860px) { .bz-flow { padding:32px 20px 40px; } }

  /* v12 メリット：各項目に小さな図 */
  .mr5 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
  .mr5 li { background:var(--bg); border-radius:6px; padding:14px 14px 32px; display:flex; flex-direction:column; }
  .mr5 .mv { background:var(--white); border-radius:4px; height:184px; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; }
  .mr5 .tx { padding:26px 14px 0; }
  .mr5 .no { display:block; font-family:var(--num); font-size:28px; line-height:1; background:var(--gold-v); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .mr5 h3 { font-size:19px; color:var(--ink); letter-spacing:.04em; line-height:1.55; margin-top:14px; }
  .mr5 h3 em { font-style:normal; color:var(--navy); }
  .mr5 p { font-size:14px; color:var(--sub); line-height:1.85; margin-top:10px; }
  /* 01 日本にいながら */
  .v1 { display:flex; align-items:flex-end; gap:0; }
  .v1 .nd { display:flex; flex-direction:column; align-items:center; gap:6px; font-size:11px; color:var(--sub); letter-spacing:.06em; }
  .v1 .nd b { width:58px; height:58px; border-radius:50%; border:1.5px solid var(--navy); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:var(--navy); line-height:1.3; text-align:center; }
  .v1 .nd.hub b { background:var(--navy) url(assets/emblem-white.svg) center / 26px no-repeat; border-color:var(--navy); }
  .v1 .ln { width:22px; height:2px; background:#C9B57A; margin-bottom:29px; }
  .v1x { display:flex; gap:8px; margin-top:18px; }
  .v1x span { font-size:11.5px; color:var(--sub); border:1px solid var(--line); border-radius:3px; padding:3px 8px; }
  .v1x s { color:#9AA3AD; }
  .v1x i { font-style:normal; font-weight:700; color:var(--navy); margin-left:4px; }
  /* 02 小さく始める */
  .v2 { display:flex; align-items:flex-end; gap:14px; height:120px; }
  .v2 .st { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px; width:56px; height:100%; }
  .v2 .bar { width:100%; background:#E3E8EE; border-radius:3px; }
  .v2 .st.on .bar { background:var(--navy); }
  .v2 .st small { font-size:10.5px; color:var(--sub); white-space:nowrap; letter-spacing:0; }
  .v2 .st.on small { color:var(--navy); font-weight:700; }
  .v2 .here { font-size:10.5px; font-weight:700; color:var(--white); background:var(--gold); border-radius:3px; padding:2px 6px; white-space:nowrap; }
  /* 03 タイ語の問い合わせ */
  .v3 { width:100%; padding:0 16px; }
  .v3 .fh { display:flex; align-items:center; gap:6px; font-size:11px; font-weight:700; color:var(--navy); }
  .v3 .fh i { width:16px; height:16px; border-radius:50%; background:var(--navy) url(assets/emblem-white.svg) center / 10px no-repeat; }
  .v3 .line-scr { margin-top:8px; min-height:0; border-radius:4px; font-size:10.5px; gap:6px; padding:10px; }
  .v3 .tr { font-size:10.5px; color:var(--sub); margin-top:6px; letter-spacing:0; }
  /* 04 ほかの分野へ */
  .v4 { position:relative; width:236px; height:160px; }
  .v4 svg.lk { position:absolute; inset:0; width:100%; height:100%; }
  .v4 .hb { position:absolute; left:50%; top:50%; width:68px; height:68px; margin:-34px 0 0 -34px; border-radius:50%; background:var(--navy); color:var(--white); font-size:11px; font-weight:700; line-height:1.4; display:flex; align-items:center; justify-content:center; text-align:center; }
  .v4 .tg { position:absolute; transform:translate(-50%,-50%); font-size:11.5px; color:var(--navy); background:var(--white); border:1px solid var(--navy); border-radius:3px; padding:3px 8px; white-space:nowrap; }
  .v4 .tg.tour { background:#F6F1E3; border-color:#C9B57A; color:#8A7438; }
  @media (max-width: 900px) {
    .mr5 { grid-template-columns:1fr 1fr; gap:10px; }
  }
  @media (max-width: 600px) {
    .mr5 { grid-template-columns:1fr; }
    .mr5 h3 { font-size:17px; }
  }

  /* v14：Figma 246:2 に合わせた微調整 */
  .ab-ph figure { width:264px; }
  .ab-ph { height:468px; width:460px; }
  .ab-ph .p2 { right:auto; bottom:auto; left:196px; top:138px; }
  #why .head2 { grid-template-columns:1fr 600px; align-items:center; }
  .msg2 { position:relative; overflow:hidden; }
  .msg2 .body { position:relative; z-index:1; }
  .msg2 .gh { left:calc(44.44% + 88px); right:auto; top:83px; }
  @media (max-width: 900px) {
    .ab-ph { width:auto; height:400px; }
    .ab-ph figure { width:56%; }
    .ab-ph .p2 { left:auto; top:auto; right:0; bottom:0; }
    #why .head2 { grid-template-columns:1fr; }
    .msg2 .gh { left:16px; top:28px; }
  }

/* ---------- privacy ---------- */
  .pp { background:var(--white); padding:72px 0 96px; }
  .pp-in { width:min(860px, calc(100% - 48px)); margin:0 auto; }
  .pp-en { font-family:var(--num); font-size:14px; letter-spacing:.2em; color:#7A6830; text-transform:uppercase; }
  .pp h1 { font-size:34px; color:var(--navy); letter-spacing:.06em; margin-top:8px; padding-bottom:24px; border-bottom:2px solid #AA975D; }
  .pp-lead { font-size:15px; line-height:2; margin-top:28px; }
  .pp h2 { font-size:19px; color:var(--navy); margin-top:52px; padding-bottom:12px; border-bottom:1px solid var(--line); letter-spacing:.04em; }
  .pp p, .pp li { font-size:15px; line-height:2; }
  .pp p { margin-top:14px; }
  .pp ul, .pp ol { margin-top:12px; padding-left:1.4em; }
  .pp ul li { list-style:disc; } .pp ol li { list-style:decimal; }
  .pp li + li { margin-top:4px; }
  .pp a { color:var(--navy); text-decoration:underline; }
  .pp-dl { display:grid; grid-template-columns:120px 1fr; margin-top:16px; border-top:1px solid var(--line); }
  .pp-dl dt, .pp-dl dd { font-size:15px; padding:14px 0; border-bottom:1px solid var(--line); }
  .pp-dl dt { font-weight:700; color:var(--navy); }
  .pp-tb { width:100%; border-collapse:collapse; margin-top:16px; font-size:14px; }
  .pp-tb th, .pp-tb td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); }
  .pp-tb th { background:var(--soft); color:var(--navy); }
  .pp-date { text-align:right; margin-top:56px !important; color:var(--sub); }
  .pp .todo, .pp-note { background:#FFF6CC; border-left:4px solid #E3B400; padding:10px 14px; font-size:14px !important; color:#5A4A00; }
  @media (max-width: 860px) { .pp { padding:48px 0 72px; } .pp h1 { font-size:26px; } .pp-dl { grid-template-columns:88px 1fr; } .pp-tb { font-size:13px; } }


/* ---------- 下層ページ・フォーム（Contact Form 7） ---------- */
.sub-hero { background:var(--soft); padding:64px 0 48px; }
.sub-hero .inner { width:min(760px, calc(100% - 48px)); }
.sub-hero .en { font-family:var(--num); font-size:14px; letter-spacing:.2em; color:#7A6830; text-transform:uppercase; }
.sub-hero h1 { font-size:32px; color:var(--navy); letter-spacing:.06em; margin-top:8px; }
.sub-hero p { font-size:15px; line-height:1.9; color:var(--sub); margin-top:16px; }
.sub-body { padding:56px 0 96px; background:var(--white); }
.sub-body .inner { width:min(760px, calc(100% - 48px)); }
.sub-body .entry > * + * { margin-top:16px; }
.sub-body .entry p { font-size:15px; line-height:2; }
.wpcf7 .f-row { margin-top:28px; }
.wpcf7 .f-row:first-child { margin-top:0; }
.wpcf7 .f-label { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:700; color:var(--ink); margin-bottom:10px; }
.wpcf7 .req, .wpcf7 .opt { font-size:11px; font-weight:700; padding:2px 8px; border-radius:3px; letter-spacing:.06em; }
.wpcf7 .req { background:var(--navy); color:var(--white); }
.wpcf7 .opt { background:var(--soft); color:var(--sub); }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select, .wpcf7 textarea { width:100%; font:inherit; font-size:16px; color:var(--ink); background:var(--white); border:1px solid #C9D1DA; border-radius:4px; padding:14px 16px; transition:border-color .2s, box-shadow .2s; }
.wpcf7 textarea { min-height:180px; resize:vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(12,50,90,.12); }
.wpcf7 .wpcf7-list-item { margin:0 20px 8px 0; display:inline-block; }
.wpcf7 .wpcf7-list-item label { font-size:15px; display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.wpcf7 .f-note { font-size:13px; line-height:1.8; color:var(--sub); margin-top:10px; }
.wpcf7 .f-agree { margin-top:36px; padding:20px; background:var(--soft); border-radius:4px; font-size:14px; text-align:center; }
.wpcf7 .f-agree a { color:var(--navy); text-decoration:underline; }
.wpcf7 .f-submit { margin-top:32px; text-align:center; }
.wpcf7 input[type=submit] { font:inherit; font-size:16px; font-weight:700; letter-spacing:.08em; color:var(--white); background:var(--navy); border:0; border-radius:999px; padding:20px 64px; cursor:pointer; transition:opacity .2s; }
.wpcf7 input[type=submit]:hover { opacity:.85; }
.wpcf7 input[type=submit]:disabled { opacity:.4; cursor:not-allowed; }
.wpcf7-not-valid-tip { font-size:13px; color:#C0392B; margin-top:6px; }
.wpcf7 form .wpcf7-response-output { margin:28px 0 0; padding:14px 18px; border-radius:4px; font-size:14px; }
.wpcf7-spinner { display:block; margin:12px auto 0; }
@media (max-width: 860px) { .sub-hero { padding:44px 0 32px; } .sub-hero h1 { font-size:24px; } .wpcf7 input[type=submit] { width:100%; padding:18px 24px; } }
