/* ===== マーケティング＋ 製品サイト v3（ANDPAD級・太ゴシック＋濃紺1色）共通CSS
   正本: DESIGN-v3.md。ANDPADの赤がある場所に濃紺 #0B2A5B を置く。
   書体: Noto Sans JP（見出し・本文）／Montserrat 800（英字見出し・数字）の2つだけ。 ===== */
:root{
  --paper:#FFFFFF;
  --paper2:#F9F9F9;
  --ink:#111827;
  --ink2:#374151;
  --navy:#0B2A5B;
  --navy2:#1E4FA3;
  --line:#E6E6E6;
  --ease:cubic-bezier(.165,.84,.44,1);
  --sans:"Noto Sans JP","Noto Sans CJK JP","Hiragino Sans","Yu Gothic",sans-serif;
  --en:"Montserrat","Noto Sans JP",sans-serif;
  --w:1200px;
  --pad:24px;
  --hh:72px;
  --sh:0 10px 24px rgba(0,0,0,.1);
  --inset:0 -5px 0 -2px rgba(0,0,0,.2) inset;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto}
body{font-family:var(--sans);font-weight:400;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"palt"}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
h1,h2,h3{font-weight:700;line-height:1.35;letter-spacing:.01em}
h2{font-size:clamp(24px,2.6vw,36px);line-height:1.4;letter-spacing:.1rem}
h3{font-size:clamp(18px,1.6vw,21px)}
p{max-width:40em}
.kp{display:inline-block}
.en{font-family:var(--en);font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.lead{color:var(--ink2);margin-top:20px;font-size:16px}
.small{font-size:13px;color:var(--ink2);line-height:1.8}
.sec{padding:96px 0}
.sec.tint{background:var(--paper2)}

/* ANDPAD型の節の見出し：左の太い縦線＋英字特大＋日本語 */
.shead{display:flex;gap:28px;align-items:stretch;margin-bottom:56px}
.shead::before{content:"";width:4px;background:var(--navy);flex:none}
.shead .en{font-size:clamp(36px,4.6vw,56px);line-height:1;letter-spacing:.1rem;color:var(--ink)}
.shead h2{font-size:clamp(20px,2.1vw,28px);font-weight:700;margin-top:14px;line-height:1.4;letter-spacing:.1rem}
.shead .lead{margin-top:10px}

/* ボタン：濃紺の四角い面（ANDPADの主ボタンの型） */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:60px;padding:0 32px;background:var(--navy);color:var(--paper);font-weight:700;font-size:16px;letter-spacing:.04em;border-radius:4px;box-shadow:var(--inset);transition:background-color .5s var(--ease);white-space:nowrap;position:relative;overflow:hidden}
.btn:hover{background:var(--navy2)}
.btn .arw{width:18px;height:18px;flex:none;animation:arw 1.2s ease-in-out infinite alternate}
@keyframes arw{from{transform:translateX(0)}to{transform:translateX(6px)}}
.btn.lg{min-height:72px;padding:0 40px;font-size:18px;flex-direction:column;gap:2px;line-height:1.3}
.btn.lg small{font-size:12px;font-weight:500;letter-spacing:.08em;opacity:.9}
.btn.lg .arw{position:absolute;right:16px;top:50%;margin-top:-9px}
.btn.inv{background:var(--paper);color:var(--navy)}
.btn.inv:hover{background:var(--paper2)}
.btn.sm{min-height:44px;padding:0 18px;font-size:13px;gap:10px}
.btn.sm .arw{width:14px;height:14px}
.btn-note{display:block;font-size:13px;color:var(--ink2);margin-top:12px}
/* VIEW MORE（文字＋線。線はCSSで引く） */
.vm{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-family:var(--en);font-weight:800;font-size:15px;letter-spacing:.04em;color:var(--ink)}
.vm::after{content:"";width:28px;height:2px;background:var(--navy);transition:width .3s var(--ease)}
a:hover .vm::after,.vm:hover::after{width:44px}
.vm.r{justify-content:flex-end;width:100%}
.textlink{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:700;color:var(--navy)}
.textlink .arw{width:14px;height:14px;animation:arw 1.2s ease-in-out infinite alternate}

/* ===== ヘッダー（ANDPADの2段型：上段＝小さなリンク、下段＝メニュー、右端＝濃紺の面が端まで） ===== */
.gh{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.gh .bar{display:grid;grid-template-columns:1fr auto;align-items:stretch}
.gh .left{display:flex;flex-direction:column;justify-content:flex-end;padding-left:max(var(--pad),calc((100% - var(--w)) / 2 + var(--pad)));min-width:0}
.gh .top{display:flex;justify-content:flex-end;gap:28px;font-size:12px;color:var(--ink2);min-height:32px;align-items:center;padding-right:24px}
.gh .top a{min-height:32px;display:inline-flex;align-items:center}
.gh .top a:hover{color:var(--ink)}
.gh .main{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--hh);padding-right:24px}
.brand{font-weight:900;font-size:24px;letter-spacing:.04em;line-height:1;display:inline-flex;align-items:center;gap:12px;min-height:44px;flex:none}
.brand i{width:28px;height:28px;background:var(--navy);display:inline-block;position:relative}
.brand i::before,.brand i::after{content:"";position:absolute;background:var(--paper)}
.brand i::before{left:12px;top:6px;width:4px;height:16px}
.brand i::after{left:6px;top:12px;width:16px;height:4px}
.gnav{display:flex;align-items:center;font-size:15px;font-weight:700}
.gnav>a,.gnav .dd>button{min-height:44px;display:inline-flex;align-items:center;gap:8px;color:var(--ink);padding:0 22px;line-height:1.3;border-left:1px solid var(--line);transition:color .2s;font-weight:700}
.gnav>a:last-of-type{border-right:1px solid var(--line)}
.gnav>a:hover,.gnav .dd>button:hover{color:var(--navy)}
.gnav>a[aria-current="page"],.gnav .dd.cur>button{color:var(--navy)}
.gnav .dd{position:relative}
.gnav .caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-4px}
.gnav .dd-panel{display:none;position:absolute;top:100%;left:0;background:var(--paper);border:1px solid var(--line);min-width:320px;padding:8px 0;box-shadow:var(--sh)}
.gnav .dd:hover .dd-panel,.gnav .dd:focus-within .dd-panel,.gnav .dd.open .dd-panel{display:block}
.gnav .dd-panel a{display:block;padding:12px 20px;color:var(--ink);font-size:14px;line-height:1.5;font-weight:700}
.gnav .dd-panel a:hover{background:var(--paper2);color:var(--navy)}
.gnav .dd-panel a small{display:block;font-size:12px;color:var(--ink2);margin-top:2px;font-weight:400}
.gh .cta{display:flex;align-items:stretch}
.gh .cta .btn{height:100%;min-height:calc(var(--hh) + 32px);padding:0 28px;flex-direction:column;gap:4px;font-size:15px;border-radius:0;box-shadow:none}
.gh .cta .btn small{font-size:11px;font-weight:500;letter-spacing:.1em;opacity:.9}
.gh .cta .btn .ico{width:22px;height:22px}
.menu-btn{display:none;font-size:13px;font-weight:700;color:var(--navy);border:2px solid var(--navy);padding:0 14px;min-height:44px;white-space:nowrap}
.gnav .btn.mob{display:none}

/* ===== 1画面目（ANDPADのヒーローの作り：段違いの縦長写真3枚→手前に見本→丸いバッジ→濃紺の正方形） ===== */
.hero{padding:28px 0 48px;overflow:hidden;position:relative}
.hero .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 48px;align-items:start}
.hero .txt{padding-top:8px}
.hero h1{font-size:clamp(34px,4vw,54px);font-weight:900;line-height:1.25;letter-spacing:.02em}
.hero .sub{font-size:clamp(15px,1.2vw,17px);font-weight:700;line-height:1.75;margin-top:18px;color:var(--ink)}
.hero .acts{margin-top:22px}
.hero .acts .btn{width:100%;max-width:440px}
/* 裏付けのバッジ（ANDPADのNo.1の位置） */
.proof{display:grid;grid-template-columns:auto auto 1fr;gap:0 14px;align-items:center;margin-top:18px;max-width:440px;border-top:2px solid var(--navy);border-bottom:2px solid var(--navy);padding:8px 0}
.proof .src{font-size:12px;font-weight:700;color:var(--navy);line-height:1.5}
.proof .src b{display:block;font-size:11px;font-weight:500;color:var(--ink2);letter-spacing:.04em}
.proof .big{display:flex;align-items:baseline;gap:4px}
.proof .big .en{font-size:40px;line-height:1;color:var(--navy)}
.proof .big .pct{font-family:var(--en);font-weight:800;font-size:22px;color:var(--navy)}
.proof .big .sup{font-size:11px;color:var(--ink2);align-self:flex-start}
.proof .cap{font-size:12px;font-weight:700;line-height:1.55;max-width:none;border-left:1px solid var(--line);padding-left:14px}
.hero .foot{grid-column:1 / -1;font-size:11px;color:var(--ink2);line-height:1.7;margin-top:24px;max-width:none}
/* 右の重ね */
.hero-fig{position:relative;aspect-ratio:660/470;width:100%}
.hero-fig>*{position:absolute}
.hero-fig .ph{position:absolute;overflow:hidden;background:var(--paper2)}
.hero-fig .ph img{width:100%;height:auto}
.hero-fig .ph.a{left:1%;top:12%;width:30%}
.hero-fig .ph.b{left:33.5%;top:0;width:35%}
.hero-fig .ph.c{left:70.5%;top:20%;width:29.5%}
.hero-fig .sq{background:var(--navy)}
.hero-fig .sq.s1{width:11%;aspect-ratio:1;left:-4.5%;top:3%}
.hero-fig .sq.s2{width:6%;aspect-ratio:1;right:-2%;top:76%}
.hero-fig .scr{position:absolute;left:-3%;bottom:0;width:52%;z-index:2}
.hero-fig .badge{z-index:3;width:25%;aspect-ratio:1;border-radius:50%;background:var(--paper);box-shadow:var(--sh);left:48%;top:44%;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:clamp(10px,1.05vw,14px);line-height:1.55;color:var(--ink)}
.hero-fig .badge b{display:block;color:var(--navy);font-weight:900}

/* 写真の膜（濃紺に寄せる。トリミングはしない） */
.ph{position:relative}
.ph img{filter:saturate(.82) contrast(1.02)}
.ph::after{content:"";position:absolute;inset:0;background:var(--navy);opacity:.09;mix-blend-mode:multiply;pointer-events:none}

/* ===== 成果物の画面の見本（HTML/CSSで描く。ウィンドウの細い上の帯＋右上に「見本」） ===== */
.scr{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:var(--sh);font-size:11px;line-height:1.5;color:var(--ink2);position:relative}
.scr .tb{height:10px;background:var(--navy);display:flex;align-items:center;padding:0 8px;gap:4px}
.scr .tb i{width:30px;height:2px;background:rgba(255,255,255,.5);display:block}
.scr .tag{position:absolute;right:8px;top:16px;font-size:10px;font-weight:700;color:var(--paper);background:var(--navy);border:1px solid var(--navy);padding:0 6px;line-height:1.7;letter-spacing:.1em}
.scr .in{padding:14px 14px 16px;background:var(--paper)}
.scr .ttl{font-weight:700;color:var(--ink);font-size:12px;margin-bottom:10px;padding-right:44px}
.scr .ln{height:6px;background:var(--line);margin:6px 0}
.scr .ln.w60{width:60%}.scr .ln.w80{width:80%}.scr .ln.w40{width:40%}
/* 6か月の地図 */
.scr.map .row{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:center;margin:7px 0;font-size:10px;font-weight:700;color:var(--ink)}
.scr.map .bar{height:14px;background:var(--paper2);position:relative}
.scr.map .bar::before{content:"";position:absolute;left:0;top:0;bottom:0;background:var(--navy);width:var(--p)}
.scr.map .bar.f1::before{opacity:.45}.scr.map .bar.f2::before{opacity:.72}
.scr.map .axis{display:flex;justify-content:space-between;font-size:10px;font-weight:700;color:var(--ink);margin-top:8px;padding-left:60px}
/* 目次（25シート） */
.scr.toc ol{counter-reset:s;columns:2;column-gap:14px}
.scr.toc li{font-size:10px;color:var(--ink);font-weight:500;line-height:1.5;padding:3px 0;border-bottom:1px solid var(--line);break-inside:avoid;display:flex;gap:6px}
.scr.toc li::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--en);font-weight:800;color:var(--navy);font-size:10px}
/* 名簿 */
.scr.list table{width:100%;border-collapse:collapse;font-size:10px}
.scr.list th{text-align:left;font-weight:700;color:var(--navy);border-bottom:2px solid var(--navy);padding:4px 6px;white-space:nowrap}
.scr.list td{padding:6px}
.scr.list td i{display:block;height:6px;background:var(--line)}
.scr.list tr:nth-child(odd) td{background:var(--paper2)}
/* KPIの月次表 */
.scr.kpi table{width:100%;border-collapse:collapse;font-size:10px}
.scr.kpi th{font-weight:700;color:var(--navy);border-bottom:2px solid var(--navy);padding:4px;text-align:center;white-space:nowrap}
.scr.kpi th:first-child{text-align:left}
.scr.kpi td{padding:5px 4px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:500;white-space:nowrap}
.scr.kpi td i{display:block;height:10px;background:var(--navy);opacity:.18;width:var(--p);margin:0 auto}
.scr.kpi td i.hi{opacity:.6}
/* 月次レポートの表紙 */
.scr.rep .cov{padding:22px 16px 18px;border-left:6px solid var(--navy)}
.scr.rep .cov .en{font-size:11px;color:var(--navy);letter-spacing:.2em}
.scr.rep .cov b{display:block;font-size:14px;color:var(--ink);margin-top:8px;line-height:1.5}

/* ===== 5段の階段（本物の階段。左から右へ高さが上がる） ===== */
.stair{display:grid;grid-template-columns:1fr 1fr 1fr 120px 1fr 1fr;align-items:end;gap:0 6px;margin-top:24px;position:relative}
.stair .st{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-width:0}
.stair .st .txt{padding:0 14px 50px 0;position:relative;z-index:1}
.stair .st .n{font-family:var(--en);font-weight:800;font-size:13px;color:var(--navy);letter-spacing:.1em;display:block}
.stair .st b{display:block;font-size:clamp(16px,1.5vw,20px);font-weight:900;line-height:1.4;margin-top:2px}
.stair .st p{font-size:13px;color:var(--ink2);line-height:1.6;margin-top:6px}
.stair .st .who{display:inline-block;font-size:12px;font-weight:700;color:var(--navy);border-top:1px solid var(--navy);padding-top:6px;margin-top:10px}
.stair .blk{height:var(--h);background:var(--paper);border:1px solid var(--navy);border-bottom:0;transform-origin:bottom;transition:background-color .4s}
.stair .st.cur .blk,.stair .st.cur .blk.on{background:var(--navy)}
.stair .st.after .blk{border:1px dashed var(--navy);border-bottom:0;background:var(--paper)}
.stair .st.after .who{color:var(--navy);background:none;border-top:1px dashed var(--navy);padding:6px 0 0}
.stair .here{position:absolute;right:12px;bottom:calc(var(--h) + 10px);z-index:2;display:none;flex-direction:column;align-items:flex-end;gap:4px;font-size:11px;font-weight:900;color:var(--navy);letter-spacing:.04em;line-height:1}
.stair .here i{width:12px;height:12px;background:var(--navy);display:block;border-radius:50%}
.stair .here.on{display:flex}
.stair .gapcol{position:relative;height:var(--h5);align-self:end}
.stair .gapcol .bridge{position:absolute;left:-6px;right:-6px;bottom:var(--h3);height:calc(var(--h4) - var(--h3));overflow:visible}
.stair .gapcol .bridge svg{width:100%;height:100%;display:block;overflow:visible}
.stair .gapcol .tag{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(var(--h3) - 44px);font-size:11px;font-weight:700;color:var(--ink);white-space:nowrap;background:var(--paper);padding:2px 6px;border:1px solid var(--ink)}
.stair .gapcol .mp{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(var(--h4) + 10px);font-size:11px;font-weight:900;color:var(--paper);background:var(--navy);padding:3px 8px;white-space:nowrap;letter-spacing:.04em}
.stair-foot{margin-top:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px}
.stair-foot p{font-weight:700;max-width:none}
.stair-legend{display:flex;gap:18px;font-size:12px;color:var(--ink2)}
.stair-legend span{display:inline-flex;align-items:center;gap:6px}
.stair-legend i{width:12px;height:12px;display:inline-block;background:var(--paper2);border-top:2px solid var(--navy)}
.stair-legend i.d{background:var(--navy)}

/* ===== 論点（PROBLEM） ===== */
.points{display:grid;gap:0;border-top:1px solid var(--line)}
.point{display:grid;grid-template-columns:72px minmax(0,1.1fr) minmax(0,1fr);gap:24px 40px;padding:44px 0;border-bottom:1px solid var(--line);align-items:start}
.point .k{font-family:var(--en);font-weight:800;font-size:40px;line-height:1;color:var(--navy)}
.point h3{font-size:clamp(18px,1.7vw,22px);font-weight:900;line-height:1.5}
.point p{margin-top:12px;color:var(--ink2);font-size:15px}
.quote{border-left:4px solid var(--navy);padding:6px 0 6px 22px;align-self:center}
.quote blockquote{font-size:clamp(15px,1.3vw,17px);font-weight:700;line-height:1.8}
.quote cite{display:block;font-style:normal;font-size:12px;color:var(--ink2);margin-top:10px}
.quote cite a{color:var(--navy);margin-left:4px;text-decoration:underline}
.small a{color:var(--navy);text-decoration:underline;margin-left:4px}
.why-close{margin-top:40px;font-size:clamp(17px,1.6vw,21px);font-weight:900;max-width:none}
/* 24% */
.gap24{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 64px;align-items:center;margin-top:64px;padding:48px;background:var(--paper2);position:relative}
.gap24 .bignum{display:flex;align-items:baseline;gap:6px;color:var(--navy)}
.gap24 .bignum .en{font-size:clamp(80px,10vw,140px);line-height:.9}
.gap24 .bignum .pct{font-family:var(--en);font-weight:800;font-size:clamp(28px,3vw,44px)}
.gap24 .numcap{font-weight:700;font-size:15px;line-height:1.8}
.band{margin-top:22px}
.band .track{display:flex;height:16px;background:var(--line);overflow:hidden}
.band .seg{display:block;height:100%;transform-origin:left}
.band .seg.a{width:24%;background:var(--navy)}
.band .seg.b{width:24%;background:var(--navy2)}
.band .seg.c{width:52%;background:#CCCCCC}
.band .legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;color:var(--ink2);margin-top:10px}
.band .legend span{display:inline-flex;align-items:center;gap:6px}
.band .legend i{width:12px;height:12px;display:inline-block}
.band .legend .a i{background:var(--navy)}.band .legend .b i{background:var(--navy2)}.band .legend .c i{background:#CCCCCC}
.gap24 .body{grid-column:1 / -1;color:var(--ink2);font-size:15px;max-width:none}

/* ===== WHY NOW（時間軸） ===== */
.timeline{position:relative;margin-top:16px;padding-top:44px}
.timeline .span{position:absolute;left:81%;top:0;transform:translateX(-50%);font-size:13px;font-weight:900;color:var(--paper);background:var(--navy);padding:4px 12px;white-space:nowrap}
.timeline .span::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:var(--navy);border-bottom:0}
.timeline .axis{height:10px;background:var(--line);position:relative}
.timeline .axis .fill{position:absolute;left:62.5%;width:37.5%;top:0;bottom:0;background:var(--navy);transform-origin:left}
.timeline .marks{display:grid;grid-template-columns:repeat(4,1fr);margin-top:16px;gap:16px}
.timeline .mk{font-size:13px;color:var(--ink2);line-height:1.6;position:relative;padding-top:12px}
.timeline .mk::before{content:"";position:absolute;left:0;top:-26px;width:2px;height:22px;background:var(--ink2)}
.timeline .mk b{display:block;font-family:var(--en);font-weight:800;font-size:18px;color:var(--ink);letter-spacing:.02em}
.timeline .mk.now b,.timeline .mk.end b{color:var(--navy)}
.timeline .mk.now::before,.timeline .mk.end::before{background:var(--navy)}
.timeline .mk:nth-child(3){text-align:center}.timeline .mk:nth-child(3)::before{left:50%}
.timeline .mk:nth-child(4){text-align:right}.timeline .mk:nth-child(4)::before{left:auto;right:0}
.now-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:48px}
.now-cols p{color:var(--ink2);font-size:15px}
.note{margin-top:24px}

/* ===== 相手別（ANDPADのUSE CASE：横に流れるカード＋丸い矢印） ===== */
.uc{position:relative}
.uc .rail{display:flex;gap:32px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0 24px;scrollbar-width:none;-ms-overflow-style:none}
.uc .rail::-webkit-scrollbar{display:none}
.uc .card{flex:0 0 calc((100% - 64px) / 3);scroll-snap-align:start;display:flex;flex-direction:column;background:var(--paper)}
.uc .card .en{font-size:12px;color:var(--ink2);letter-spacing:.14em;font-weight:800}
.uc .card h3{font-size:20px;font-weight:900;margin-top:6px;line-height:1.4}
.uc .card .ph{margin-top:18px;overflow:hidden;background:var(--paper2)}
.uc .card .ph img{width:100%}
.uc .card p{font-size:14px;color:var(--ink2);margin-top:16px;line-height:1.8;flex:1}
.uc .card .vm{margin-top:14px}
.uc .nav{position:absolute;top:50%;z-index:2;width:56px;height:56px;border-radius:50%;background:var(--paper);box-shadow:var(--sh);display:flex;align-items:center;justify-content:center;color:var(--ink);transform:translateY(-50%)}
.uc .nav svg{width:20px;height:20px}
.uc .nav.prev{left:-28px}.uc .nav.next{right:-28px}
.uc .nav:hover{color:var(--navy)}

/* ===== サービス（ANDPADの製品カード：見本＋右下に濃紺の角丸アイコンを半分はみ出し） ===== */
.prod{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 40px}
.prod .item{display:flex;flex-direction:column}
.prod .shot{position:relative;padding:0 24px 28px 0}
.prod .shot .scr{min-height:230px}
.prod .ico{position:absolute;right:0;bottom:0;width:72px;height:72px;border-radius:6px;background:var(--navy);display:flex;align-items:center;justify-content:center;box-shadow:var(--sh)}
.prod .ico svg{width:36px;height:36px;stroke:var(--paper);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.prod h3{font-size:20px;font-weight:900;margin-top:22px;line-height:1.45}
.prod h3 small{display:block;font-size:12px;color:var(--navy);font-weight:700;letter-spacing:.06em;margin-bottom:4px}
.prod p{font-size:14px;color:var(--ink2);margin-top:10px;flex:1}
.prod .vm{margin-top:14px}
.svc-foot{margin-top:56px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;border-top:1px solid var(--line);padding-top:28px}
.svc-foot div{font-size:14px;color:var(--ink2);line-height:1.8;padding-left:16px;border-left:3px solid var(--navy)}
.svc-foot b{display:block;color:var(--ink);font-weight:700}

/* ===== お困りごと別の入口（番号大・1枚目は見本つき） ===== */
.entries{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;margin-top:8px}
.entry{display:block;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:30px;position:relative;transition:border-color .3s var(--ease)}
.entry:hover{border-color:var(--navy)}
.entry .n{font-family:var(--en);font-weight:800;font-size:44px;line-height:1;color:var(--navy)}
.entry h3{font-size:20px;font-weight:900;margin-top:12px;line-height:1.45}
.entry dl{margin-top:18px;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:14px}
.entry dt{font-weight:700;color:var(--navy);white-space:nowrap}
.entry dd{color:var(--ink2);line-height:1.8}
.entry dd b{color:var(--ink)}
.entry .vm{margin-top:18px}
.entry.lead-entry{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px;align-items:start}
.entry.lead-entry dl{grid-template-columns:1fr;gap:2px 0}
.entry.lead-entry dd{margin-bottom:10px}
.entry.lead-entry .shot{position:relative;padding:0 20px 24px 0;margin-top:8px}
.entry.lead-entry .ico{position:absolute;right:0;bottom:0;width:60px;height:60px;border-radius:4px;background:var(--navy);display:flex;align-items:center;justify-content:center}
.entry.lead-entry .ico svg{width:30px;height:30px;stroke:var(--paper);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.entries .side{display:grid;gap:24px}

/* ===== 6か月の進め方（階段・ピン留め・段ごとに写真が広がる） ===== */
.proc{width:100%}
.proc .inner{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:40px 56px;align-items:end}
.steps{display:grid;grid-template-columns:1.7fr 3fr 3fr 84px;gap:0 6px;align-items:end;margin-top:12px}
.steps .step{display:flex;flex-direction:column;justify-content:flex-end;text-align:left;position:relative;cursor:pointer;min-width:0}
.steps .step .dur{font-family:var(--en);font-weight:800;font-size:13px;color:var(--navy);letter-spacing:.06em;display:block}
.steps .step .dur small{font-family:var(--sans);font-weight:700;letter-spacing:0;margin-left:4px}
.steps .step b{display:block;font-size:15px;font-weight:900;line-height:1.45;margin-top:4px;padding-right:6px}
.steps .step .blk{height:var(--h);margin-top:14px;background:var(--paper2);border-top:3px solid var(--navy);transform-origin:bottom;transition:background-color .5s var(--ease);position:relative}
.steps .step.on .blk{background:var(--navy)}
.steps .step .blk .en{position:absolute;left:12px;top:10px;font-size:13px;color:var(--navy)}
.steps .step.on .blk .en{color:var(--paper)}
.steps .step .blk .rest{position:absolute;left:12px;right:12px;bottom:12px;font-size:12px;line-height:1.6;color:var(--ink2);display:none}
.steps .step.on .blk .rest{color:var(--paper)}
.steps .step .blk .rest b{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;margin:0;padding:0;opacity:.8}
.steps .cont{align-self:end;position:relative;height:var(--h3);display:flex;align-items:flex-start;justify-content:center;padding-top:14px}
.steps .cont .arr{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--navy);text-align:center;line-height:1.4}
.phere{position:absolute;right:12px;bottom:calc(var(--h) - 26px);z-index:2;display:none;align-items:center;gap:6px;font-size:11px;font-weight:900;color:var(--navy);letter-spacing:.04em;line-height:1}
.phere i{width:12px;height:12px;background:var(--navy);display:block;border-radius:50%}
.phere.on{display:flex}
.steps .step.on .phere{color:var(--paper)}
.steps .step.on .phere i{background:var(--paper)}
.proc .side{min-width:0}
.proc .photos{position:relative;height:260px;display:flex;align-items:flex-end;justify-content:flex-start}
.proc .photos::after{display:none}
.proc .photos img{filter:saturate(.82)}
.proc .photos img{position:absolute;left:0;bottom:0;height:100%;width:auto;max-width:100%;opacity:0;transition:opacity .5s var(--ease)}
.proc .photos img.on{opacity:1}
.pdetail{margin-top:24px;border-top:3px solid var(--navy);padding-top:18px}
.pdetail .en{font-size:12px;color:var(--navy);letter-spacing:.14em}
.pdetail h3{font-size:clamp(18px,1.7vw,22px);font-weight:900;margin-top:6px}
.pdetail dl{margin-top:12px;font-size:14px;display:grid;grid-template-columns:auto 1fr;gap:8px 14px}
.pdetail dt{font-weight:700;color:var(--navy);white-space:nowrap}
.pdetail dd{color:var(--ink2);line-height:1.8}
.js .pdetail:not(.on){display:none}
.state{position:relative;z-index:3;margin:-190px 90px 0 auto;width:min(330px,100%);background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh);padding:18px 20px;font-size:13px}
.state .ttl{font-weight:900;font-size:13px;color:var(--ink);margin-bottom:8px}
.state li{display:grid;grid-template-columns:18px 1fr;gap:10px;padding:7px 0;border-top:1px solid var(--line);line-height:1.6;color:var(--ink2)}
.state li b{color:var(--ink);font-weight:700}
.state li i{width:14px;height:14px;margin-top:6px;display:block;border:1px solid var(--navy)}
.state li.done i{background:var(--navy);position:relative}
.state li.done i::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border-right:2px solid var(--paper);border-bottom:2px solid var(--paper);transform:rotate(45deg)}
.state li.now i{border-width:3px}
.steps-foot{margin-top:28px;font-weight:700;max-width:none;border-top:1px solid var(--line);padding-top:18px}
.proc .vmrow{margin-top:16px;display:flex;justify-content:flex-end}

/* ===== 担当（TEAM） ===== */
.team{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px 64px;align-items:start}
.team .photo{position:relative}
.team .photo img{filter:saturate(.9)}
.team .photo img{width:240px;height:240px}
.team .name{font-size:clamp(22px,2vw,28px);font-weight:900;line-height:1.3}
.team .name small{display:block;font-size:13px;color:var(--ink2);font-weight:500;margin-top:4px}
.team .cv{margin-top:20px;border-top:1px solid var(--line)}
.team .cv li{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7;position:relative}
.team .cv li .en{color:var(--navy);font-size:15px;letter-spacing:.02em;white-space:nowrap}
.team .cv li::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--navy);transform-origin:left}
.team .one{margin-top:18px;font-size:15px;color:var(--ink2)}
.team .sys{margin-top:24px;display:grid;gap:10px;font-size:14px;color:var(--ink2)}
.team .sys li{padding-left:18px;position:relative;line-height:1.8}
.team .sys li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:8px;background:var(--navy)}

/* ===== FAQ ===== */
.faq{border-top:1px solid var(--line);max-width:900px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:48px 1fr 24px;gap:16px;align-items:center;padding:22px 0;font-size:clamp(16px,1.4vw,18px);font-weight:700;line-height:1.5}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{font-family:var(--en);font-weight:800;color:var(--navy);font-size:15px}
.faq .pm{position:relative;width:24px;height:24px;justify-self:end}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;background:var(--navy);left:50%;top:50%;transform:translate(-50%,-50%)}
.faq .pm::before{width:16px;height:2px}
.faq .pm::after{width:2px;height:16px;transition:transform .25s}
.faq details[open] .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq .a{padding:0 48px 24px 64px;color:var(--ink2);font-size:15px}

/* ===== 締めの帯（暗い写真の膜＋白文字＋濃紺の面） ===== */
.close{position:relative;overflow:hidden;color:var(--paper);padding:120px 0 0}
.close .bg{position:absolute;inset:0;z-index:0}
.close .bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(.6)}
.close .bg::after{content:"";position:absolute;inset:0;background:rgba(11,42,91,.55)}
.close .wrap{position:relative;z-index:1;text-align:center}
.close h2{font-size:clamp(28px,3.4vw,44px);font-weight:900;color:var(--paper)}
.close p{margin:16px auto 0;font-weight:700;color:var(--paper);max-width:none}
.close .acts{margin:44px auto 0;max-width:var(--w);display:grid;grid-template-columns:1fr;gap:0}
.close .acts .btn{width:100%;min-height:150px;font-size:clamp(18px,1.8vw,22px);gap:8px;border-radius:0}
.close .acts .btn .arw{width:22px;height:22px}
.close .acts .btn small{font-size:13px;font-weight:500;letter-spacing:.06em}
.close .acts .btn::after{content:"";position:absolute;right:16px;bottom:16px;border:10px solid transparent;border-right-color:rgba(255,255,255,.55);border-bottom-color:rgba(255,255,255,.55)}

/* ===== フッター（ANDPAD型：ロゴ＋5列） ===== */
.gf{padding:80px 0 0;background:var(--paper)}
.gf .cols{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr 1fr;gap:40px 32px}
.gf .brand{font-size:28px}
.gf .tag{font-size:13px;color:var(--ink2);margin-top:14px}
.gf .co{margin-top:28px;font-size:13px;color:var(--ink2);line-height:1.8}
.gf .co b{display:block;color:var(--ink);font-weight:700}
.gf .co a{color:var(--navy);font-weight:700}
.gf .cols b{display:block;font-size:14px;font-weight:700;margin-bottom:16px}
.gf .cols a{display:block;font-size:13px;color:var(--ink2);padding:6px 0 6px 14px;position:relative;line-height:1.6}
.gf .cols a::before{content:"";position:absolute;left:0;top:16px;width:8px;height:1px;background:var(--ink2)}
.gf .cols a:hover{color:var(--navy)}
.gf .src{margin-top:56px;border-top:1px solid var(--line);padding-top:24px;display:grid;gap:8px}
.gf .src li{display:grid;grid-template-columns:32px 1fr;gap:8px;font-size:12px;color:var(--ink2);line-height:1.7}
.gf .src a{color:var(--navy);margin-left:6px;text-decoration:underline}
.gf .bottom{margin-top:40px;background:var(--paper2);padding:24px 0;font-size:12px;color:var(--ink2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.gf .bottom .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;width:100%}


/* ===== 画面幅 ===== */
@media (max-width:1100px){
  .gnav>a,.gnav .dd>button{padding:0 14px;font-size:14px}
  .uc .nav.prev{left:0}.uc .nav.next{right:0}
}
@media (max-width:991px){
  .uc .card{flex-basis:calc((100% - 32px) / 2)}
  .gh .top{display:none}
  .gh .bar{grid-template-columns:1fr}
  .gh .left{padding-left:var(--pad)}
  .gh .main{padding-right:var(--pad);height:64px}
  .gh .cta{display:none}
  .menu-btn{display:inline-flex;align-items:center}
  .gnav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 0 20px;max-height:calc(100vh - 64px);overflow:auto}
  .gnav.open{display:flex}
  .gnav>a,.gnav .dd>button{border:0;padding:0 var(--pad);min-height:52px;width:100%;justify-content:space-between}
  .gnav>a:last-of-type{border:0}
  .gnav .dd-panel{position:static;border:0;box-shadow:none;min-width:0;padding:0 0 8px;background:var(--paper2)}
  .gnav .dd-panel a{padding:12px var(--pad) 12px 40px}
  .gnav .btn.mob{display:inline-flex;margin:12px var(--pad) 0;flex-direction:row}
  .hero .wrap{grid-template-columns:1fr;gap:40px}
  .hero .acts .btn{max-width:none}
  .btn.lg{white-space:normal;padding:14px 52px 14px 20px;font-size:16px;min-height:64px;align-items:flex-start;text-align:left}
  .proc .inner{grid-template-columns:1fr}
  .proc .photos{height:200px}
  .team{grid-template-columns:200px 1fr;gap:32px}
  .team .photo img{width:200px;height:200px}
  .gf .cols{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:767px){
  .sec{padding:80px 0}
  .shead{gap:18px;margin-bottom:36px}
  .shead .en{font-size:36px}
  .hero{padding:28px 0 40px}
  .hero h1{font-size:clamp(32px,9vw,40px)}
  .hero .sub{font-size:15px;margin-top:18px}
  .proof{margin-top:20px}
  .proof .big .en{font-size:40px}
  .hero .foot{margin-top:16px}
  .hero-fig{aspect-ratio:660/600}
  .hero-fig .ph.a{left:0;top:14%;width:42%}
  .hero-fig .ph.b{left:30%;top:0;width:46%}
  .hero-fig .ph.c{left:64%;top:26%;width:36%}
  .hero-fig .sq.s1{width:14%;left:-6%;top:4%}
  .hero-fig .scr{width:66%;left:-2%}
  .hero-fig .badge{width:34%;left:56%;top:58%;font-size:11px}
  /* 階段：横向きの階段（上から下へ段が伸びる） */
  .stair{display:flex;flex-direction:column;gap:14px}
  .stair .st{flex-direction:row;align-items:stretch;gap:16px}
  .stair .st .txt{padding:0;order:2;flex:1}
  .stair .blk{height:auto;width:calc(var(--h) * .28);min-width:14px;border-bottom:1px solid var(--navy);order:1;flex:none}
  .stair .st.after .blk{border-bottom:1px dashed var(--navy)}
  .stair .here{position:static;order:3;align-self:center;flex-direction:row;align-items:center}
  .stair .gapcol{height:auto;display:flex;align-items:center;gap:12px;padding:6px 0}
  .stair .gapcol .bridge{display:none}
  .stair .gapcol .tag,.stair .gapcol .mp{position:static;transform:none}
  .stair .gapcol::after{content:"";flex:1;border-top:2px dashed var(--navy)}
  .point{grid-template-columns:1fr;gap:16px;padding:32px 0}
  .point .k{font-size:32px}
  .gap24{grid-template-columns:1fr;padding:28px 20px;gap:20px}
    .timeline .span{left:50%;font-size:12px}
  .timeline .axis .fill{left:50%;width:50%}
  .timeline .marks{grid-template-columns:1fr 1fr;gap:28px 16px}
  .timeline .mk::before{display:none}
  .timeline .mk:nth-child(3){text-align:left}.timeline .mk:nth-child(4){text-align:left}
  .now-cols{grid-template-columns:1fr;gap:16px;margin-top:32px}
  .uc .nav{display:none}
  .uc .rail{flex-direction:column;overflow:visible;gap:40px;padding:0}
  .uc .card{flex:none;width:100%}
  .phere span{display:none}
  .phere{right:8px;bottom:calc(var(--h) - 24px)}
  .proof{grid-template-columns:auto 1fr;gap:4px 14px}
  .proof .cap{grid-column:1 / -1;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:6px}
  .prod{grid-template-columns:1fr;gap:40px}
  .svc-foot{grid-template-columns:1fr}
  .entries{grid-template-columns:1fr}
  .entry{padding:24px 20px}
  .entry.lead-entry{grid-template-columns:1fr}
  .entry.lead-entry .shot{max-width:320px}
  .entry dl{grid-template-columns:1fr;gap:4px}
  .steps{grid-template-columns:1.5fr 3fr 3fr;gap:0 4px}
  .steps .cont{display:none}
  .state{margin-top:24px;width:100%}
  .steps .step b{font-size:14px}
  .steps .step .blk .rest{display:none !important}
  .phere{right:6px}
  .team{grid-template-columns:1fr}
  .team .photo img{width:180px;height:180px}
  .team .cv li{grid-template-columns:1fr;gap:2px}
  .faq summary{grid-template-columns:36px 1fr 24px;gap:10px;padding:18px 0}
  .faq .a{padding:0 0 20px 46px}
  .close{padding-top:80px}
  .close .acts .btn{min-height:120px;font-size:17px;white-space:normal;padding:16px 44px 16px 16px;text-align:center}
  .btn small{white-space:normal}
  .gf .cols{grid-template-columns:1fr}
  .gf .src li{grid-template-columns:28px 1fr}
}

/* ===== 動き：JSが付いた時だけ初期状態を作る。reduced-motion とJS無しは最終状態 ===== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ===== v3 トップの直し（review-top.md 2026-10-07）。既存の部品のクラス名は変えず、修飾クラス（.v3 .app .six .full .t3 .big .below）で上書き ===== */
/* 1. 1画面目：写真を右端まで・大きく・色調をそろえる */
.hero.hero{padding-bottom:40px}
.hero-fig.v3{aspect-ratio:730/560;width:calc(100% + max(0px,(100vw - var(--w)) / 2) + var(--pad));margin-right:calc(-1 * (max(0px,(100vw - var(--w)) / 2) + var(--pad)))}
.hero-fig.v3 .ph.a{left:0;top:30%;width:31%}
.hero-fig.v3 .ph.b{left:30%;top:0;width:40%}
.hero-fig.v3 .ph.c{left:69%;top:22%;width:31%}
.hero-fig.v3 .ph img{filter:saturate(.68) contrast(1.04) brightness(1.02)}
.hero-fig.v3 .ph::after{opacity:.16}
.hero-fig.v3 .sq.s1{width:10%;left:-5%;top:20%}
.hero-fig.v3 .sq.s2{width:6%;right:4%;top:84%}
.hero-fig.v3 .scr{width:60%;left:-6%;bottom:-4%}
.hero-fig.v3 .badge{width:24%;left:52%;top:56%}
.hero .foot{margin-top:48px}
.ph img{filter:saturate(.7) contrast(1.03)}
.ph::after{opacity:.14}
/* 2. 画面の見本：道具の画面（左に細い縦のメニュー＋タブ）・言葉で埋める */
.scr.app .app-body{display:grid;grid-template-columns:26px 1fr}
.scr.app .menu{background:var(--navy);display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0}
.scr.app .menu i{width:12px;height:12px;border:1.5px solid rgba(255,255,255,.55);border-radius:2px;display:block}
.scr.app .menu i.on{background:var(--paper);border-color:var(--paper)}
.scr.app .tabs{display:flex;gap:2px;margin:-4px 0 10px;border-bottom:1px solid var(--line)}
.scr.app .tabs span{font-size:10px;font-weight:700;color:var(--ink2);padding:0 8px 5px;border-bottom:2px solid transparent;white-space:nowrap}
.scr.app .tabs span.on{color:var(--navy);border-bottom-color:var(--navy)}
.scr.app .ttl{margin-bottom:8px;padding-right:0}
.scr .tag{top:14px}
.scr.map .row{grid-template-columns:48px 1fr;margin:6px 0}
.scr.map .bar{height:18px;overflow:hidden}
.scr.map .bar em{position:absolute;left:6px;top:0;line-height:18px;font-style:normal;font-size:9px;font-weight:700;color:var(--paper);white-space:nowrap;z-index:1}
.scr.map .bar.f1 em{color:var(--ink)}
.scr.map .chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}
.scr.map .chips span{font-size:9px;font-weight:700;color:var(--navy);border:1px solid var(--navy);padding:0 6px;line-height:1.8;white-space:nowrap}
.scr .st{display:inline-block;font-size:9px;font-weight:700;color:var(--ink2);border:1px solid var(--line);padding:0 5px;line-height:1.7;white-space:nowrap;background:var(--paper)}
.scr .st.done{color:var(--paper);background:var(--navy);border-color:var(--navy)}
.scr .st.now{color:var(--navy);border-color:var(--navy2);background:rgba(30,79,163,.1)}
.scr.list td{color:var(--ink);font-weight:500;white-space:nowrap}
.scr.kpi td i{opacity:1;background:rgba(11,42,91,.22)}
.scr.kpi td i.mid{background:var(--navy2)}
.scr.kpi td i.hi{background:var(--navy);opacity:1}
.scr.kpi td{text-align:center}.scr.kpi td:first-child{text-align:left}
.scr.toc ol{columns:1}
.scr.toc li.more{color:var(--navy);border-bottom:0}
.scr.toc li.more::before{content:"";counter-increment:none}
/* 8. SERVICE：見本の高さをそろえ、アイコンは枠の外へ */
.prod .shot{padding:0 36px 32px 0}
.prod .shot .scr{height:260px;min-height:0;overflow:hidden}
.prod .shot .scr .app-body{height:calc(100% - 10px)}
.prod .ico{right:0;bottom:0}
.prod h3{min-height:3.4em}
.prod p{font-weight:500}
.uc .card p{font-weight:500}
/* 3. STAGE：つながった段。文字は踏み面に。01・02＝薄い濃紺、03＝濃紺、04・05＝灰。谷に橋 */
.stair.v3{grid-template-columns:1fr 1fr 1fr 150px 1fr 1fr;gap:0}
.stair.v3 .st .blk{height:var(--h);background:rgba(11,42,91,.16);border:0;position:relative;transform-origin:bottom}
.stair.v3 .st.cur .blk{background:var(--navy)}
.stair.v3 .st.after .blk{background:var(--line);border:0}
.stair.v3 .st .blk .txt{position:absolute;left:0;right:0;top:0;padding:18px 16px 0}
.stair.v3 .st .txt .n{color:var(--navy)}
.stair.v3 .st .txt b{font-size:clamp(17px,1.6vw,22px);margin-top:4px}
.stair.v3 .st .txt p{color:var(--ink);font-weight:500}
.stair.v3 .st .txt .who{color:var(--navy);border-top:1px solid var(--navy);margin-top:8px}
.stair.v3 .st.cur .txt .n,.stair.v3 .st.cur .txt b,.stair.v3 .st.cur .txt p{color:var(--paper)}
.stair.v3 .st.cur .txt .who{color:var(--paper);border-top-color:rgba(255,255,255,.6)}
.stair.v3 .st.after .txt .who{border-top-style:solid}
.stair.v3 .st .here{position:absolute;right:14px;bottom:14px;top:auto;display:none;flex-direction:row;align-items:center;gap:6px;color:var(--paper)}
.stair.v3 .st .here.on{display:flex}
.stair.v3 .st .here i{background:var(--paper)}
.stair.v3 .gapcol{height:var(--h4);align-self:end;position:relative}
.stair.v3 .gapcol::before{content:"";position:absolute;left:0;right:0;bottom:0;height:calc(var(--h3) - 72px);background:var(--line);opacity:.6}
.stair.v3 .gapcol .mp{left:50%;bottom:auto;top:calc(var(--h4) - var(--h3) - 22px);transform:translateX(-50%) rotate(-28deg);font-size:16px;padding:10px 22px;letter-spacing:.06em;box-shadow:var(--sh);white-space:nowrap}
.stair.v3 .gapcol .tag{bottom:calc(var(--h3) - 60px);font-size:13px;padding:4px 10px;border:1px solid var(--navy);color:var(--navy);font-weight:900}
.stair.v3 .gapcol .bridge{display:none}
.stair-legend i.g{background:var(--line);border-top:0}
.stair-legend i{background:rgba(11,42,91,.16);border-top:0}
/* 4. PROCESS：段を高く・期間を中に・パネルは下 */
.proc.proc{background:var(--paper2)}
.steps.big{grid-template-columns:1.5fr 3fr 3fr 84px;gap:0 6px}
.steps.big .step b{min-height:2.9em}
.steps.big .step .blk{background:rgba(11,42,91,.16);border-top:0}
.steps.big .step.on .blk{background:var(--navy)}
.steps.big .step .blk .en{color:var(--navy);font-size:13px}
.steps.big .step.on .blk .en{color:var(--paper)}
.steps.big .step .blk .len{position:absolute;left:12px;top:34px;font-size:13px;font-weight:700;color:var(--navy)}
.steps.big .step .blk .len .en{position:static;font-size:28px;line-height:1;margin-right:2px}
.steps.big .step.on .blk .len,.steps.big .step.on .blk .len .en{color:var(--paper)}
.steps.big .step .blk .what{position:absolute;left:12px;right:12px;bottom:12px;font-size:12px;font-weight:700;line-height:1.5;color:var(--ink)}
.steps.big .step.on .blk .what{color:var(--paper)}
.steps.big .step.s1 .blk .what{display:none}
.steps.big .phere{bottom:calc(var(--h) + 8px);right:8px}
.steps.big .step.on .phere{color:var(--navy)}
.steps.big .step.on .phere i{background:var(--navy)}
.state.below{margin:28px 0 0;width:100%;box-shadow:none;border:1px solid var(--line)}
.state.below ul{display:grid;grid-template-columns:repeat(3,1fr);gap:0 20px}
.state.below li{border-top:1px solid var(--line)}
.proc .inner{align-items:start}
.proc .photos{height:300px}
/* 5. 全幅の面：24%の濃紺の帯／写真の帯 */
.gap24.full{margin:72px 0 0;padding:72px 0;background:var(--navy);color:var(--paper);display:block}
.gap24.full .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 64px;align-items:center}
.gap24.full .bignum,.gap24.full h3,.gap24.full .numcap,.gap24.full .body,.gap24.full .small{color:var(--paper)}
.gap24.full .small a{color:var(--paper)}
.gap24.full .band .track{background:rgba(255,255,255,.18)}
.gap24.full .band .seg.a{background:var(--paper)}
.gap24.full .band .seg.b{background:var(--navy2)}
.gap24.full .band .seg.c{background:rgba(255,255,255,.35)}
.gap24.full .band .legend{color:var(--paper)}
.gap24.full .band .legend .a i{background:var(--paper)}.gap24.full .band .legend .b i{background:var(--navy2)}.gap24.full .band .legend .c i{background:rgba(255,255,255,.35)}
.sec.tint#why{padding-bottom:0}
.photo-band{width:100%;overflow:hidden;max-height:560px}
.photo-band img{width:100%;height:auto;display:block}
/* 6-7. FOR：6枚・右端で切れる */
.uc.six .rail{padding-right:0}
.uc.six .card{flex:0 0 400px}
.uc.six .card .num{margin-top:18px;aspect-ratio:21/9;background:var(--navy);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;padding:16px 18px}
.uc.six .card .num .en{font-size:44px;line-height:1;color:var(--paper);opacity:.9;letter-spacing:0}
.uc.six .card .num span:last-child{font-size:14px;font-weight:700;line-height:1.5}
.uc.six .card h3{min-height:2.8em}
/* 10. 時間軸：3点 */
.timeline.t3 .marks{grid-template-columns:repeat(3,1fr)}
.timeline.t3 .axis .fill{left:50%;width:50%}
.timeline.t3 .span{left:75%}
.timeline.t3 .mk:nth-child(2){text-align:center}.timeline.t3 .mk:nth-child(2)::before{left:50%}
.timeline.t3 .mk:nth-child(3){text-align:right}.timeline.t3 .mk:nth-child(3)::before{left:auto;right:0}
.timeline .mk a,.now-cols a{color:var(--navy);text-decoration:underline;font-size:11px;vertical-align:super;margin-left:2px}
/* 9. 締め：真ん中に普通の大きさのボタン */
.close.v3{padding:0;min-height:520px;display:flex;align-items:center}
.close.v3 .wrap{padding-top:80px;padding-bottom:80px}
.close.v3 .acts{display:flex;justify-content:center;max-width:none}
.close.v3 .acts .btn{width:auto;min-width:480px;min-height:88px;font-size:18px;padding:0 72px 0 40px;border-radius:4px;box-shadow:var(--inset)}
.close.v3 .acts .btn::after{display:none}
.close.v3 .bg img{filter:brightness(.45) saturate(.5)}
/* 10. 本文を少し強く */
.point p,.now-cols p,.pdetail dd,.team .one,.team .sys li,.faq .a{color:var(--ink2)}
.point p{font-weight:500}

@media (max-width:991px){
  .hero-fig.v3{width:100%;margin-right:0}
  .state.below ul{grid-template-columns:1fr}
}
@media (max-width:767px){
  .hero-fig.v3{aspect-ratio:730/600}
  .hero-fig.v3 .ph.a{left:0;top:26%;width:40%}
  .hero-fig.v3 .ph.b{left:28%;top:0;width:46%}
  .hero-fig.v3 .ph.c{left:66%;top:22%;width:34%}
  .hero-fig.v3 .scr{width:70%;left:-2%;bottom:0}
  .hero-fig.v3 .badge{width:34%;left:58%;top:60%}
  /* 3. スマホ：下から上へ登る縦の階段（05が上・01が下） */
  .stair.v3{display:flex;flex-direction:column-reverse;gap:0}
  .stair.v3 .st{flex-direction:column;gap:0}
  .stair.v3 .st .blk{height:auto;width:auto;min-height:0;border:0;margin-left:calc(var(--i,0) * 14px)}
  .stair.v3 .st .blk .txt{position:static;padding:16px 16px 18px}
  .stair.v3 .st.s1 .blk{--i:0}.stair.v3 .st.s2 .blk{--i:1}.stair.v3 .st.s3 .blk{--i:2}.stair.v3 .st.s4 .blk{--i:4}.stair.v3 .st.s5 .blk{--i:5}
  .stair.v3 .st .here{position:static;order:3;padding:0 16px 14px;justify-content:flex-end}
  .stair.v3 .gapcol{height:auto;padding:14px 0 14px calc(3 * 14px);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
  .stair.v3 .gapcol::before,.stair.v3 .gapcol::after{display:none}
  .stair.v3 .gapcol .mp{position:static;transform:none;font-size:14px;padding:8px 14px}
  .stair.v3 .gapcol .tag{position:static;transform:none}
  .steps.big{grid-template-columns:1.5fr 3fr 3fr}
  .steps.big .step .blk .len .en{font-size:20px}
  .steps.big .step .blk .what{display:none}
  .steps.big .step b{font-size:13px}
  .uc.six .rail{flex-direction:row;overflow-x:auto;gap:20px;padding:0 0 16px}
  .uc.six .card{flex:0 0 82vw;width:auto}
  .gap24.full .wrap{grid-template-columns:1fr;gap:20px}
  .close.v3 .acts .btn{min-width:0;width:100%}
}
/* 直し2回目：はみ出し・重なり */
.prod .item,.prod .shot,.prod .shot .scr{min-width:0}
.scr.toc li{padding:2px 0;line-height:1.45}
.scr.app .tabs{padding-right:44px}
.stair.v3 .gapcol .tag{bottom:calc(var(--h3) - 120px)}
@media (max-width:767px){
  .scr.map .bar em{display:none}
  .scr.app .tabs span:nth-child(3){display:none}
  .hero-fig.v3 .badge{left:60%;top:46%;width:32%}
  .hero-fig.v3 .scr{width:64%}
  .scr.kpi table,.scr.list table{table-layout:fixed;width:100%}
  .scr.kpi th,.scr.kpi td,.scr.list td,.scr.list th{white-space:normal;padding:4px 2px}
  .scr .st{white-space:normal}
}
.scr.kpi table{table-layout:fixed;width:100%}
.scr.kpi th{font-size:9px;padding:4px 1px;white-space:normal}
.scr.kpi td{padding:5px 1px;white-space:normal}
.scr.kpi td:first-child{width:28%;font-size:9px}
.scr.kpi .st{padding:0 3px;font-size:8px;white-space:nowrap}
@media (max-width:767px){
  .hero-fig.v3 .badge{left:62%;top:34%;width:32%}
}
@media (max-width:767px){
  .hero-fig.v3 .scr{width:58%;left:0;bottom:-2%}
  .hero-fig.v3 .badge{left:64%;top:40%;width:34%}
  .scr.map .axis{padding-left:0;font-size:9px}
  .scr.map .chips{display:none}
  .scr.map .row{grid-template-columns:40px 1fr;font-size:9px}
}
.steps.big .step .blk > .en{top:8px}
.steps.big .step .blk .len{top:44px}
.steps.big .step .blk .len .en{position:static !important}
@media (max-width:767px){
  .hero-fig.v3 .scr{width:78%;left:0;bottom:-6%}
  .hero-fig.v3 .badge{left:66%;top:28%;width:32%}
  .scr.app .tabs span:nth-child(n+2){display:none}
  .scr.app .ttl{font-size:11px}
}
@media (max-width:767px){
  .hero-fig.v3 .badge{left:64%;top:14%;width:34%}
  .hero-fig.v3 .scr{bottom:-8%}
}
@media (max-width:767px){
  .hero-fig.v3 .badge{left:1%;top:0;width:33%}
  .hero-fig.v3 .scr{left:auto;right:0;bottom:-8%;width:78%}
  .hero-fig.v3 .sq.s1{display:none}
}

/* ===== 2026-10-07 夜：①写真の角丸（全ページ1つの値）・見せ場＝角丸の枠の後ろに濃紺の面をずらして重ねる ②ガントチャート ===== */
:root{--r:20px}
.ph,.ph img,.hero-fig .ph,.uc .card .ph,.sub-hero .fig .ph,.for-fig .ph,.sub-fig .ph,.why .ph,.for-body>.ph,.team .photo img,.rep .team .photo img,.photos img{border-radius:var(--r)}
.ph{overflow:hidden}
.ph::after{border-radius:var(--r)}
.sq,.hero-fig .sq,.sub-hero .fig .sq,.for-fig .sq,.sub-fig .sq,.rep .team .photo::after{border-radius:var(--r)}
.hero-fig .sq.s2,.sub-hero .fig .sq.b,.for-fig .sq.s2,.sub-fig .sq.s2{border-radius:calc(var(--r) / 2)}
.photo-band img,.close .bg img{border-radius:0}
/* 見せ場（1画面目の主写真）＝後ろに濃紺の面を18pxずらす */
.hero-fig.v3 .ph.b{overflow:visible;background:none}
.hero-fig.v3 .ph.b img{position:relative;z-index:1}
.hero-fig.v3 .ph.b::before{content:"";position:absolute;inset:18px -18px -18px 18px;background:var(--navy);border-radius:var(--r);z-index:0}
.hero-fig.v3 .ph.b::after{z-index:2;left:0;top:0;right:0;bottom:0}
.sub-hero .fig::before,.for-fig::before,.sub-fig::before{content:"";position:absolute;background:var(--navy);border-radius:var(--r);z-index:0}
.sub-hero .fig::before{inset:30px -18px -18px 18px}
.for-fig::before{inset:46px 10px -18px 18px}
.sub-fig::before{inset:46px -18px 38px 46px}
.sub-hero .fig .ph,.for-fig .ph,.sub-fig .ph{position:relative;z-index:1}
.sub-hero .fig .sq,.for-fig .sq.s1,.sub-fig .sq.s1{display:none}
.team .photo::after{display:none}
.why .ph{border-radius:var(--r)}

/* ガントチャート */
.gantt{margin-top:8px}
.gantt-scroll{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.gt{width:100%;min-width:860px;border-collapse:separate;border-spacing:0;font-size:13px;--lw:220px;--cols:7}
.gt th,.gt td{text-align:left;vertical-align:middle}
.gt .lbl{width:var(--lw);min-width:var(--lw);position:sticky;left:0;background:var(--paper);z-index:2;font-weight:700;color:var(--ink);padding:0 14px 0 0;border-right:2px solid var(--navy)}
.gt thead .bands th{padding:0 0 8px;vertical-align:bottom}
.gt thead .bands th.b0,.gt thead .bands th.b1,.gt thead .bands th.b2{font-size:12px;font-weight:900;color:var(--paper);padding:6px 10px;line-height:1.4;border-right:3px solid var(--paper)}
.gt thead .bands th.b0{background:rgba(11,42,91,.55)}
.gt thead .bands th.b1{background:var(--navy)}
.gt thead .bands th.b2{background:var(--navy2);border-right:0}
.gt thead .bands th small{display:block;font-size:10px;font-weight:500;opacity:.9}
.gt thead .months th{font-size:11px;font-weight:700;color:var(--ink2);padding:8px 8px;border-bottom:2px solid var(--navy);text-align:center;white-space:nowrap}
.gt thead .months th.lbl{text-align:left;font-size:12px;color:var(--navy)}
.gt tbody th.lbl{font-size:13px;line-height:1.5;height:46px}
.gt tbody tr:nth-child(even) th.lbl,.gt tbody tr:nth-child(even) td{background:var(--paper2)}
.gt tbody th.lbl{background:var(--paper)}
.gt tbody tr:nth-child(even) th.lbl{background:var(--paper2)}
.gt td.cell{position:relative;height:46px;padding:0;border-bottom:1px solid var(--line);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 7 - 1px),var(--line) calc(100% / 7 - 1px),var(--line) calc(100% / 7))}
.gt .bar{position:absolute;top:13px;height:20px;left:calc(var(--s) * 100% / 7 + 3px);width:calc((var(--e) - var(--s)) * 100% / 7 - 6px);background:var(--navy);border-radius:4px;transform-origin:left;display:flex;align-items:center;padding:0 8px;overflow:hidden}
.gt .bar.h2{background:var(--navy2)}
.gt .bar.f0{background:rgba(11,42,91,.55)}
.gt .bar.thin{height:8px;top:19px;padding:0;overflow:visible}
.gt .bar.thin em{position:absolute;left:8px;top:-15px;color:var(--ink2);font-weight:700}
.gt .bar.dash{background:none;border:2px dashed var(--navy2);height:20px;top:13px}
.gt .bar.dash em{color:var(--navy2)}
.gt .bar em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--paper);white-space:nowrap;line-height:1}
.gt .dot{position:absolute;top:16px;width:14px;height:14px;border-radius:50%;background:var(--navy);left:calc((var(--c) + .5) * 100% / 7 - 7px)}
.gt .dot.e{left:calc((var(--c) + 1) * 100% / 7 - 14px)}
.gt .dot em,.gt .dia em{position:absolute;left:20px;top:0;font-style:normal;font-size:10.5px;font-weight:700;color:var(--ink2);white-space:nowrap;line-height:14px}
.gt .dia{position:absolute;top:15px;width:16px;height:16px;background:var(--navy2);transform:rotate(45deg);left:calc(var(--c) * 100% / 7 - 14px);border-radius:2px}
.gt .dia em{transform:rotate(-45deg);left:-10px;top:-18px;transform-origin:left top;left:18px;top:4px}
/* 判断の節目：縦線＋ひし形（ラベル列の幅を引いて置く） */
.gantt-scroll .ms{position:absolute;left:var(--lw,220px);right:0;top:0;bottom:4px;pointer-events:none}
.gantt-scroll .ms span{position:absolute;top:0;bottom:0;left:calc(var(--c) * 100% / 7);width:0;border-left:2px dashed var(--navy)}
.gantt-scroll .ms span i{position:absolute;left:-8px;top:-2px;width:14px;height:14px;background:var(--navy);transform:rotate(45deg);border-radius:2px}
.gantt-scroll .ms span b{position:absolute;left:8px;top:-4px;font-size:10px;font-weight:900;color:var(--navy);white-space:nowrap;background:var(--paper);padding:0 4px;line-height:1.6;transform:translateX(-100%);left:-6px}
.gantt-scroll .ms span:first-child b{transform:none;left:8px}
.gantt-scroll .ms span::after{content:attr(data-x)}
.gantt-scroll{padding-top:20px}
.gantt-legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;color:var(--ink2);margin-top:14px}
.gantt-legend span{display:inline-flex;align-items:center;gap:6px}
.gantt-legend i{width:18px;height:10px;display:inline-block;border-radius:3px}
.gantt-legend .l1{background:rgba(11,42,91,.55)}.gantt-legend .l2{background:var(--navy)}.gantt-legend .l3{background:var(--navy2)}
.gantt-legend .l4{border:2px dashed var(--navy2);height:8px;background:none}
.gantt-legend .l5{width:12px;height:12px;border-radius:50%;background:var(--navy)}
.gantt-legend .l6{width:10px;height:10px;transform:rotate(45deg);background:var(--navy);border-radius:2px}
.gantt-foot{margin-top:18px;font-weight:700;max-width:none;border-top:1px solid var(--line);padding-top:16px}
.gantt .ms-list{display:none}
.proc .vmrow{margin-top:20px}
@media (max-width:767px){
  .gt{--lw:140px;min-width:820px}
  .gt tbody th.lbl{font-size:12px}
  .hero-fig.v3 .ph.b::before{inset:12px -12px -12px 12px}
  .sub-hero .fig::before{inset:20px -12px -12px 12px}
}
/* ガント直し：節目の文字・ひし形・初期設計の棒の文字 */
.gantt-scroll .ms span{white-space:nowrap;font-size:0}
.gantt-scroll .ms span b{position:absolute;left:8px;top:-6px;transform:none;font-size:10px;line-height:1.5;padding:0 4px}
.gantt-scroll .ms span em{position:absolute;left:8px;top:9px;font-style:normal;font-size:9.5px;color:var(--ink2);font-weight:700;line-height:1.5;background:var(--paper);padding:0 4px}
.gantt-scroll .ms span:last-child b,.gantt-scroll .ms span:last-child em{left:auto;right:8px}
.gantt-scroll .ms span::after{content:none}
.gantt-scroll{padding-top:30px}
.gt .dia{background:none;transform:none;border-radius:0}
.gt .dia::before{content:"";position:absolute;inset:1px;background:var(--navy2);transform:rotate(45deg);border-radius:2px}
.gt .dia em{transform:none;left:22px;top:1px}
.gt .bar.f0{padding:0 6px}
.gt .bar.f0 em{font-size:9px}
.gantt-inner{position:relative;min-width:860px}
.gantt-scroll .ms{left:var(--lw,220px)}
.gt thead .bands th.b0{background:rgba(11,42,91,.18);color:var(--ink)}
.gt thead .bands th.b0 small{color:var(--ink2);opacity:1}
.gantt-legend .l1{background:rgba(11,42,91,.18)}
.gt .bar.f0{background:rgba(11,42,91,.18)}
.gt .bar.f0 em{color:var(--ink)}
.gantt-scroll:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
@media (max-width:767px){.gantt-inner{min-width:820px}.gantt-scroll .ms{left:140px}}
.gantt-scroll{padding-top:0}
.gantt-inner{padding-top:46px}
.gantt-scroll .ms{top:0;bottom:4px}
.gantt-scroll .ms span{top:6px}
.gantt-scroll .ms span:nth-child(2) em{top:24px}
/* 見せ場の濃紺の面＝写真と同じ角丸で18pxずらした影（枠の外に伸びない） */
.hero-fig.v3 .ph.b::before,.sub-hero .fig::before,.for-fig::before,.sub-fig::before{display:none}
.hero-fig.v3 .ph.b img,.sub-hero .fig .ph img,.for-fig .ph img,.sub-fig .ph img{box-shadow:18px 18px 0 0 var(--navy)}
.hero-fig.v3 .ph.b,.sub-hero .fig .ph,.for-fig .ph,.sub-fig .ph{overflow:visible;background:none}
.sub-hero .fig,.for-fig,.sub-fig{padding-right:18px}
@media (max-width:767px){.hero-fig.v3 .ph.b img,.sub-hero .fig .ph img,.for-fig .ph img,.sub-fig .ph img{box-shadow:12px 12px 0 0 var(--navy)}}
.sub-hero .fig .ph,.for-fig .ph,.sub-fig .ph{overflow:visible !important;background:none !important}

/* ===== 下層の採点（review-subpages.md）への直し＋ガント細部 ===== */
/* ガント：列を等幅に（colgroup＋固定）・一言は行見出しの下・節目は帯の上の1行 */
.gt{table-layout:fixed}
.gt col.c-lbl{width:var(--lw)}
.gt tbody th.lbl small{display:block;font-size:10.5px;font-weight:500;color:var(--ink2);line-height:1.4;margin-top:2px;white-space:normal}
.gt tbody th.lbl{height:52px;padding-top:6px;padding-bottom:6px;vertical-align:middle}
.gt td.cell{height:52px}
.gt .bar{top:16px}.gt .bar.thin{top:22px}.gt .bar.dash{top:16px}.gt .dot{top:19px}.gt .dia{top:18px}
.gantt-scroll .ms span{font-size:0;top:6px}
.gantt-scroll .ms span .cap{position:absolute;left:8px;top:-8px;display:flex;align-items:center;gap:6px;white-space:nowrap;background:var(--paper);padding:0 4px}
.gantt-scroll .ms span .cap b,.gantt-scroll .ms span .cap em{position:static;transform:none;padding:0;background:none;left:auto;right:auto;top:auto}
.gantt-scroll .ms span:last-child .cap{left:auto;right:8px}
.gantt-inner{padding-top:34px}
@media (max-width:767px){.gantt-scroll .ms span:nth-child(2) .cap{top:12px}.gantt-inner{padding-top:50px}}
/* パンくず：全ページ「＞」 */
.for-hero .crumb span::before{content:"";width:5px;height:5px;border-right:1.5px solid var(--ink2);border-top:1.5px solid var(--ink2);transform:rotate(45deg);display:inline-block;margin-right:10px}
.for-hero .crumb span:first-child::before{content:none}
/* 下層の1画面目：写真＋見本の重ね（トップと同じ型）・下の空きを無くす */
.sub-hero .grid{align-items:start}
.sub-hero .fig{padding:0 18px 36px 24px}
.sub-hero .fig .scr{position:absolute;left:0;bottom:0;width:min(60%,330px);z-index:3}
.sub-hero .fig .sq{display:none}
.sub-hero .fig .sq.b{display:block;right:auto;left:-6px;top:-6px;bottom:auto;width:40px;height:40px;z-index:2}
.fcap{position:absolute;left:0;bottom:4px;z-index:3;background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh);padding:10px 16px;font-size:12px;font-weight:700;line-height:1.5;display:flex;gap:10px;align-items:center;border-radius:4px}
.fcap .en{font-size:12px;color:var(--navy);letter-spacing:.14em}
.for-fig{padding:28px 18px 0 0}
.for-fig .cap{border-radius:4px}
.sub-fig{padding:28px 18px 56px 0}
.sub-fig .sq.s1{display:none}
/* for-vc の札を枠の中へ・図と本文の間を空ける */
.tri.for-wide{margin-top:40px}
.tri .lbl.a,.tri .lbl.b{top:12px}
/* about 運営会社の表を幅いっぱいに */
.co-tbl.full{max-width:none}
.co-tbl.full th{width:200px}
/* cases 準備中カードの右＝記録の型 */
.prep .scr.rec{width:100%;max-width:420px;justify-self:end}
.scr.rec th{text-align:left;font-size:11px;font-weight:700;color:var(--navy);padding:8px 10px 8px 0;white-space:nowrap;border-bottom:1px solid var(--line);width:90px}
.scr.rec td{padding:8px 0;border-bottom:1px solid var(--line)}
.scr.rec td i{display:block;height:8px;background:var(--line);border-radius:2px}
/* entry：第5〜6週カードの三角を消す／service：アイコンを枠に半分かける */
.wk.fin::after{display:none}
.deliv .shot{padding:0 36px 36px 0}
.deliv .ico{right:0;bottom:0}
@media (max-width:767px){
  .sub-hero .fig{padding:0 12px 28px 12px}
  .sub-hero .fig .scr{width:70%}
}
/* ガント：節目の札に線を出さない／スマホはひし形の文字を消す */
.gantt-scroll .ms span .cap{border:0;width:auto;height:auto;bottom:auto}
.gantt-scroll .ms span .cap b,.gantt-scroll .ms span .cap em{position:static}
@media (max-width:767px){.gt .dia em{display:none}}
/* 下層の1画面目：文字は上そろえ・写真の幅を抑える（sub-*.css より後勝ちにする） */
.sub-hero .wrap .grid{align-items:start}
.sub-hero .wrap .grid .fig{max-width:440px;justify-self:end;width:100%}
/* 節目の札＝2行（見出し／説明）にして横に重ならないようにする */
.gantt-scroll .ms span .cap{flex-direction:column;align-items:flex-start;gap:0;top:-12px;line-height:1.35}
.gantt-scroll .ms span:last-child .cap{align-items:flex-end}
.gantt-inner{padding-top:40px}
.gantt-inner{padding-top:48px}
.gantt-scroll .ms span{top:8px}
.gantt-scroll .ms span .cap{top:-2px}
/* ===== 下層の仕上げ（review-subpages #14：段の札＝トップの階段と同じ色。03＝濃紺、04・05＝灰） ===== */
.stg{display:inline-flex;align-items:center;gap:6px;font-style:normal;font-size:12px;font-weight:700;line-height:1;padding:7px 10px;white-space:nowrap;align-self:center;justify-self:end;background:var(--line);color:var(--ink)}
.stg b{font-family:var(--en);font-weight:800;font-size:11px;color:var(--navy)}
.stg.s3{background:var(--navy);color:var(--paper)}
.stg.s3 b{color:var(--paper)}
@media (max-width:767px){.stg{grid-column:2;justify-self:start;margin-top:2px;font-size:11px;padding:5px 8px}}
/* 下層の地図の見本：帯の文字が塗りの外にはみ出しても読めるよう、白い札にのせる */
.fig .scr.map .bar em,.for-body .scr.map .bar em{color:var(--ink);background:rgba(255,255,255,.92);padding:0 5px;top:2px;left:4px;line-height:14px}
/* ===== CXO点検の反映（2026-10-07 夜） ===== */
/* CSO⑤ 止める判断ができる＝本文の大きさ・太字で */
.gantt-foot{font-size:clamp(16px,1.4vw,18px);font-weight:900;color:var(--ink);border-top:0;border-left:4px solid var(--navy);padding:10px 0 10px 18px;margin-top:24px}
/* CMO⑦ 丸いバッジ＝濃紺の面・白文字 */
.hero-fig .badge{background:var(--navy);color:var(--paper)}
.hero-fig .badge b{color:var(--paper)}
/* CMO⑨ 「見本」の札は残す。小さく・薄い灰の文字 */
.scr .tag{background:none;border:1px solid var(--line);color:var(--ink2);opacity:.75;font-size:9px;font-weight:500;padding:0 5px;letter-spacing:.06em}
/* CMO⑩ 代表写真を320pxまで */
.team{grid-template-columns:320px minmax(0,1fr)}
.team .photo img{width:320px;height:320px}
@media (max-width:991px){.team{grid-template-columns:1fr}.team .photo img{width:min(320px,100%);height:auto;aspect-ratio:1}}
/* 2026-10-07 夜：スマホの階段を作り直し（本物の段の形は保ち、説明は下の一覧へ） */
.stair-list{display:none}
@media (max-width:767px){
  .stair.v3{display:grid;grid-template-columns:repeat(3,1fr) 22px repeat(2,1fr);align-items:end;gap:0 3px;margin-top:8px}
  .stair.v3 .st{display:block}
  .stair.v3 .st .blk{height:calc(var(--h) * .42);width:auto;margin:0;border:0}
  .stair.v3 .st .blk .txt{position:absolute;inset:0 0 auto 0;padding:8px 6px 0}
  .stair.v3 .st .txt p,.stair.v3 .st .txt .who{display:none}
  .stair.v3 .st .txt .n{font-size:11px}
  .stair.v3 .st .txt b{font-size:12px;line-height:1.3;margin-top:2px;word-break:keep-all;overflow-wrap:anywhere}
  .stair.v3 .st .here{position:absolute;left:6px;right:auto;bottom:8px;padding:0}
  .stair.v3 .st .here span{display:none}
  .stair.v3 .gapcol{height:calc(var(--h4) * .42);padding:0;display:block;position:relative}
  .stair.v3 .gapcol .mp,.stair.v3 .gapcol .tag{display:none}
  .stair.v3 .gapcol::before{display:block;content:"";position:absolute;left:50%;top:auto;bottom:calc(var(--h3) * .42);height:calc((var(--h4) - var(--h3)) * .42);width:0;border-left:2px dashed var(--navy);background:none;opacity:1;right:auto}
  .stair-list{display:flex;flex-direction:column;margin-top:24px;border-top:1px solid var(--line);counter-reset:none;padding:0;list-style:none}
  .stair-list li{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
  .stair-list .n{font-family:var(--en);font-weight:800;font-size:15px;color:var(--navy);letter-spacing:.06em;padding-top:2px}
  .stair-list b{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:900;line-height:1.4}
  .stair-list b em{font-style:normal;font-size:11px;font-weight:900;color:var(--paper);background:var(--navy);padding:3px 8px}
  .stair-list p{font-size:14px;color:var(--ink2);line-height:1.7;margin-top:4px}
  .stair-list .who{display:inline-block;font-size:12px;font-weight:700;color:var(--navy);margin-top:6px}
  .stair-list li.cur{background:rgba(11,42,91,.06);padding-left:10px;padding-right:10px;margin:0 -10px}
  .stair-list li.gap{background:var(--navy);color:var(--paper);padding:16px 10px;margin:0 -10px;border:0}
  .stair-list li.gap .n{color:var(--paper);text-align:center}
  .stair-list li.gap b,.stair-list li.gap p{color:var(--paper)}
  .stair-list li.gap strong{font-weight:900}
  .stair-list li.after .n,.stair-list li.after b{color:var(--ink2)}
}
@media (max-width:767px){
  .stair.v3 .st .txt b{word-break:keep-all;overflow-wrap:normal}
  .stair-foot .stair-legend{display:none}
}
