/* 経営ページ 図表（mgv-）。白基調 / 青緑 #35baba / インク #173b41 / ウルトラマリン #245a9a / マスタード #d3aa35（小さく） */
.mgv {
  --mgv-teal: #35baba;
  --mgv-teal-soft: #e6f6f6;
  --mgv-ink: #173b41;
  --mgv-blue: #245a9a;
  --mgv-mustard: #d3aa35;
  --mgv-line: #cfe3e4;
  --mgv-mute: #4d6b70;
  position: relative;
  margin: clamp(32px, 6vw, 72px) 0;
  padding: clamp(22px, 4vw, 52px);
  color: var(--mgv-ink);
  background: #fff;
  border: 2px solid var(--mgv-ink);
  border-radius: 4px;
  box-shadow: 10px 10px 0 var(--mgv-teal-soft);
  font-size: 16px;
  line-height: 1.7;
  overflow: hidden;
}
.mgv *, .mgv *::before, .mgv *::after { box-sizing: border-box; }
.mgv :where(h3, p, ul, ol) { margin: 0; padding: 0; }
.mgv ul, .mgv ol { list-style: none; }
.mgv b { font-weight: 800; }

.mgv-cap { display: flex; flex-direction: column; gap: 4px; margin-bottom: clamp(20px, 3.5vw, 36px); }
.mgv-kicker { font: 700 13px/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .24em; text-transform: uppercase; color: var(--mgv-blue); }
.mgv-cap strong { font-size: clamp(22px, 3.6vw, 36px); line-height: 1.35; font-weight: 800; background: linear-gradient(transparent 62%, rgba(53, 186, 186, .35) 62%); align-self: flex-start; padding-right: .3em; }
.mgv-note { font-size: 14px; color: var(--mgv-mute); margin-top: 8px; }
.mgv-caution { margin-top: clamp(20px, 3vw, 32px); padding: 14px 18px; font-size: 14px; border-left: 6px solid var(--mgv-mustard); background: #fbf7e8; }
.mgv-caution strong { font-weight: 800; }

/* ---- context ---- */
.mgv-ctx-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 0; border: 2px solid var(--mgv-ink); }
.mgv-ctx-card { padding: clamp(18px, 2.6vw, 30px); border-right: 2px solid var(--mgv-ink); }
.mgv-ctx-card:last-child { border-right: 0; }
.mgv-ctx-main { background: var(--mgv-ink); color: #fff; }
.mgv-ctx-pop { background: var(--mgv-teal-soft); }
.mgv-year { display: inline-block; font-size: 14px; font-weight: 800; padding: 2px 10px; background: var(--mgv-mustard); color: var(--mgv-ink); margin-bottom: 10px; }
.mgv-big { display: flex; align-items: baseline; gap: 6px; line-height: 1.1; }
.mgv-big b { font-size: clamp(48px, 8vw, 96px); font-weight: 900; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.mgv-big span { font-size: clamp(16px, 2vw, 22px); font-weight: 800; }
.mgv-big-text b { font-size: clamp(34px, 5vw, 56px); color: var(--mgv-blue); }
.mgv-ctx-main .mgv-big b { color: var(--mgv-teal); }
.mgv-ctx-pop .mgv-big b { color: var(--mgv-blue); }
.mgv-label { margin-top: 10px; font-size: 14px; }
.mgv-bars { margin-top: 18px; display: grid; gap: 8px; }
.mgv-bar-row { display: grid; grid-template-columns: 7.5em 1fr auto; align-items: center; gap: 10px; font-size: 13px; }
.mgv-bar { display: block; height: 14px; }
.mgv-bar-prev { background: rgba(255, 255, 255, .45); }
.mgv-bar-now { background: var(--mgv-teal); }
.mgv-bar-row b { font-variant-numeric: tabular-nums; }
.mgv-ctx-main .mgv-note { color: #cfe9ea; }

/* ---- soccer ---- */
.mgv-sc-top { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.mgv-director-scope{border:3px solid #35baba;border-radius:12px;padding:14px;background:#fff}
.mgv-director-label{font-size:16px;font-weight:800;line-height:1.8;color:#173b41;margin:0 0 14px}
.mgv-director-scope .mgv-sc-dir{background:#e4f8f2;color:#173b41;margin-bottom:12px;border-color:#91cec2}
.mgv-director-scope .mgv-fw{background:transparent}
.mgv-external-coach{margin-top:20px;border-color:#7ba7a8}
.mgv-sc-role { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 16px 20px; border: 2px solid var(--mgv-ink); }
.mgv-sc-role b { font-size: clamp(20px, 2.6vw, 28px); font-weight: 900; }
.mgv-sc-role span { font-size: 15px; }
.mgv-sc-dir { background: var(--mgv-ink); color: #fff; }
.mgv-sc-coach { background: #fff; border-style: dashed; }
.mgv-sc-role em, .mgv-pos em { font-style: normal; font-size: 13px; font-weight: 800; align-self: flex-start; margin-top: 8px; padding: 1px 10px; background: var(--mgv-mustard); color: var(--mgv-ink); }
.mgv-sc-coach em { background: var(--mgv-teal-soft); color: var(--mgv-blue); }
.mgv-pitch { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); min-height: 260px; border: 2px solid var(--mgv-ink); background: var(--mgv-teal-soft); }
.mgv-pitch-lines { position: absolute; inset: 0; pointer-events: none; }
.mgv-pitch-lines i { position: absolute; border: 2px solid rgba(23, 59, 65, .22); display: block; }
.mgv-line-mid { left: 50%; top: 0; bottom: 0; border-width: 0 0 0 2px !important; }
.mgv-circle { left: 50%; top: 50%; width: 120px; height: 120px; margin: -60px 0 0 -60px; border-radius: 50%; }
.mgv-box { top: 22%; bottom: 22%; width: 12%; }
.mgv-box-l { left: 0; border-left: 0 !important; }
.mgv-box-r { right: 0; border-right: 0 !important; }
.mgv-pos { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 20px 16px; border-right: 2px dashed rgba(23, 59, 65, .3); }
.mgv-pos:last-child { border-right: 0; }
.mgv-pos b { font: 900 clamp(34px, 5vw, 56px)/1 "Helvetica Neue", Arial, sans-serif; color: var(--mgv-blue); }
.mgv-pos span { font-size: 17px; font-weight: 800; }
.mgv-pos small { font-size: 14px; color: var(--mgv-mute); }
.mgv-fw { background: rgba(53, 186, 186, .28); }
.mgv-fw b { color: var(--mgv-ink); }
.mgv-arrow-note { margin-top: 10px; text-align: right; font-size: 14px; font-weight: 800; color: var(--mgv-blue); }
.mgv-sc-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.mgv-sc-compare > div { padding: 16px 20px; border-top: 6px solid var(--mgv-teal); background: #f6fbfb; }
.mgv-sc-compare > div:last-child { border-top-color: var(--mgv-blue); }
.mgv-sc-compare h3 { font-size: 17px; font-weight: 800; margin-bottom: 4px; }
.mgv-sc-compare p { font-size: 15px; }

/* ---- domains ---- */
.mgv-dm-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: stretch; gap: 0; }
.mgv-dm-node { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px 20px 18px; border: 2px solid var(--mgv-ink); color: var(--mgv-ink); text-decoration: none; background: #fff; transition: transform .2s, box-shadow .2s; }
.mgv-dm-node:hover, .mgv-dm-node:focus-visible { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--mgv-teal); outline: none; }
.mgv-dm-node:focus-visible { outline: 3px solid var(--mgv-blue); outline-offset: 3px; }
.mgv-dm-no { font: 900 14px/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .2em; color: var(--mgv-blue); }
.mgv-dm-node b { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.3; font-weight: 900; }
.mgv-dm-what { font-size: 15px; flex: 1; }
.mgv-dm-more { font-size: 14px; font-weight: 800; color: var(--mgv-blue); border-bottom: 2px solid var(--mgv-mustard); align-self: flex-start; }
.mgv-dm-back { background: var(--mgv-ink); color: #fff; }
.mgv-dm-back .mgv-dm-no, .mgv-dm-back .mgv-dm-more { color: var(--mgv-teal); }
.mgv-dm-ops { background: var(--mgv-teal-soft); }
.mgv-dm-front { background: #fff; border-top: 8px solid var(--mgv-blue); }
.mgv-dm-link { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; width: clamp(110px, 14vw, 170px); padding: 0 10px; text-align: center; font-size: 14px; font-weight: 800; line-height: 1.5; }
.mgv-dm-arr { display: block; width: 100%; height: 14px; background: linear-gradient(var(--mgv-ink), var(--mgv-ink)) 0 50% / calc(100% - 8px) 3px no-repeat; position: relative; }
.mgv-dm-arr::after { content: ""; position: absolute; right: 0; top: 50%; width: 12px; height: 12px; border-top: 3px solid var(--mgv-ink); border-right: 3px solid var(--mgv-ink); transform: translateY(-50%) rotate(45deg) scale(.8); transform-origin: 70% 30%; }
.mgv-dm-return { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 10px 16px; border: 2px dashed var(--mgv-blue); font-size: 14px; font-weight: 800; color: var(--mgv-blue); }
.mgv-dm-arr-back { flex: 0 0 56px; width: 56px; transform: scaleX(-1); }
.mgv-dm-arr-back, .mgv-dm-arr-back::after { filter: none; }
.mgv-dm-return .mgv-dm-arr { background-image: linear-gradient(var(--mgv-blue), var(--mgv-blue)); }
.mgv-dm-return .mgv-dm-arr::after { border-color: var(--mgv-blue); }
.mgv-dm-examples { margin-top: 22px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.mgv-dm-examples li { padding: 14px 16px; font-size: 15px; background: #f6fbfb; border-top: 4px solid var(--mgv-teal); }
.mgv-dm-examples b { background: linear-gradient(transparent 60%, rgba(211, 170, 53, .45) 60%); }

.mgv-dm-sub { align-self: flex-start; margin-top: -2px; padding: 0 10px; font-size: 14px; font-weight: 800; background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-dm-ops .mgv-dm-sub, .mgv-dm-front .mgv-dm-sub { background: var(--mgv-teal-soft); color: var(--mgv-blue); border: 1px solid var(--mgv-blue); }

/* ---- numbers ---- */
.mgv-nm-lanes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mgv-nm-lane { padding: 16px 18px; border: 2px solid var(--mgv-ink); background: #f6fbfb; border-top: 8px solid var(--mgv-teal); }
.mgv-nm-cf { background: #f4f8fd; border-top-color: var(--mgv-blue); }
.mgv-nm-lab { font-size: 16px; font-weight: 800; margin-bottom: 10px; }
.mgv-nm-lab small { font-size: 14px; font-weight: 700; color: var(--mgv-mute); }
.mgv-nm-eq { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.mgv-nm-eq b { padding: 8px 14px; font-size: clamp(16px, 2vw, 20px); background: #fff; border: 2px solid var(--mgv-ink); }
.mgv-nm-eq i { font-style: normal; font-size: 22px; font-weight: 900; color: var(--mgv-blue); }
.mgv-nm-eq .mgv-nm-res { background: var(--mgv-ink); color: #fff; }
.mgv-nm-sep { margin-top: 10px; font-size: 14px; font-weight: 800; color: var(--mgv-blue); }
.mgv-nm-step { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 16px 18px; border: 2px solid var(--mgv-ink); background: #fff; }
.mgv-nm-step > b { font-size: clamp(19px, 2.4vw, 24px); font-weight: 900; }
.mgv-nm-no { display: grid; place-items: center; width: 32px; height: 32px; font: 900 16px/1 "Helvetica Neue", Arial, sans-serif; background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-nm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.mgv-nm-chips li { padding: 4px 14px; font-size: 15px; font-weight: 800; background: var(--mgv-teal-soft); border: 2px solid var(--mgv-ink); }
.mgv-nm-s3 { background: var(--mgv-ink); color: #fff; border-left: 10px solid var(--mgv-mustard); }
.mgv-nm-s3 .mgv-nm-chips li { background: #fff; color: var(--mgv-ink); }

/* ---- priority ---- */
.mgv-pr-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: none; }
.mgv-pr-step { position: relative; padding: 24px 20px 22px 26px; border: 2px solid var(--mgv-ink); margin-left: -2px; background: #fff; }
.mgv-pr-step:first-child { margin-left: 0; }
.mgv-pr-step:not(:last-child)::after { content: ""; position: absolute; z-index: 2; right: -15px; top: 34px; width: 26px; height: 26px; background: var(--mgv-mustard); border: 2px solid var(--mgv-ink); transform: rotate(45deg); clip-path: polygon(0 0, 100% 0, 100% 100%); }
.mgv-pr-no { display: block; font: 900 clamp(44px, 5vw, 64px)/1 "Helvetica Neue", Arial, sans-serif; color: var(--mgv-teal); }
.mgv-pr-step h3 { margin: 8px 0 10px; font-size: clamp(18px, 2vw, 22px); line-height: 1.4; font-weight: 800; }
.mgv-pr-see { display: inline-block; font-size: 13px; font-weight: 800; padding: 1px 10px; background: var(--mgv-teal-soft); color: var(--mgv-blue); margin-bottom: 8px; }
.mgv-pr-step li { position: relative; padding-left: 1.1em; font-size: 15px; line-height: 1.6; margin-top: 6px; }
.mgv-pr-step li::before { content: ""; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; background: var(--mgv-blue); }
.mgv-pr-3 { background: var(--mgv-teal-soft); }
.mgv-pr-4 { background: var(--mgv-ink); color: #fff; }
.mgv-pr-4 .mgv-pr-no { color: var(--mgv-mustard); }
.mgv-pr-4 .mgv-pr-see { background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-pr-res { display: flex; gap: 8px; }
.mgv-pr-res b { flex: 1; text-align: center; padding: 8px 0; font-size: 20px; background: #fff; color: var(--mgv-ink); }
.mgv-pr-last { margin-top: 10px; font-size: 15px; }

/* ---- early ---- */
.mgv-er-track { position: relative; height: 54px; margin-bottom: 14px; }
.mgv-er-wedge { position: absolute; inset: 0; background: linear-gradient(90deg, var(--mgv-teal), var(--mgv-teal-soft)); clip-path: polygon(0 0, 100% 62%, 100% 100%, 0 100%); }
.mgv-er-track span { position: absolute; left: 12px; top: 8px; font-size: 14px; font-weight: 800; color: var(--mgv-ink); }
.mgv-er-phases { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.mgv-er-p { position: relative; padding: 18px 16px 16px; border: 2px solid var(--mgv-ink); background: #fff; }
.mgv-er-p:not(:last-child)::after { content: ""; position: absolute; right: -11px; top: 50%; z-index: 2; width: 14px; height: 14px; border-top: 3px solid var(--mgv-ink); border-right: 3px solid var(--mgv-ink); background: #fff; transform: translateY(-50%) rotate(45deg); }
.mgv-er-p h3 { margin: 10px 0 4px; font-size: clamp(17px, 1.9vw, 21px); line-height: 1.4; font-weight: 800; }
.mgv-er-p p { font-size: 14px; line-height: 1.65; }
.mgv-er-width { font-weight: 800; margin-bottom: 4px; }
.mgv-er-width b { background: linear-gradient(transparent 60%, rgba(211, 170, 53, .5) 60%); }
.mgv-er-lv { display: flex; gap: 4px; }
.mgv-er-lv i { flex: 1; height: 12px; background: #e5eced; }
.mgv-er-lv i.on { background: var(--mgv-blue); }
.mgv-er-p3 { background: #f6fbfb; }
.mgv-er-p4 { background: #f1f4f4; }
.mgv-er-parallel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 14px; padding: 12px 16px; background: var(--mgv-ink); color: #fff; border-left: 10px solid var(--mgv-mustard); }
.mgv-er-parallel b { font-size: 15px; margin-right: 4px; }
.mgv-er-parallel span { padding: 2px 12px; font-size: 14px; font-weight: 800; background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-er-parallel small { flex-basis: 100%; font-size: 13px; color: #cfe9ea; }
.mgv-er-quote { margin-top: 18px; padding: clamp(16px, 2.6vw, 28px); border: 2px solid var(--mgv-blue); background: #f4f8fd; }
.mgv-er-quote h3 { font-size: clamp(17px, 2vw, 21px); font-weight: 800; margin-bottom: 12px; }
.mgv-er-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 2px solid var(--mgv-ink); background: #fff; }
.mgv-er-three p { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; font-size: 14px; border-right: 2px solid var(--mgv-ink); }
.mgv-er-three p:last-child { border-right: 0; }
.mgv-er-three b { font-size: 18px; color: var(--mgv-blue); }

/* ---- revenue ---- */
.mgv-rv-views { margin-bottom: 18px; }
.mgv-rv-view { position: relative; padding-top: 44px !important; }
.mgv-rv-no { position: absolute; left: 16px; top: 10px; display: grid; place-items: center; width: 26px; height: 26px; font: 900 14px/1 "Helvetica Neue", Arial, sans-serif; background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-rv-3 { background: var(--mgv-teal-soft); }
.mgv-rv-path { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-bottom: 4px; }
.mgv-rv-path li { position: relative; padding: 12px 8px; text-align: center; font-size: 16px; font-weight: 800; color: #fff; background: var(--mgv-ink); }
.mgv-rv-path li:last-child { background: var(--mgv-blue); }
.mgv-rv-path li:not(:last-child)::after { content: ""; position: absolute; right: -17px; top: 50%; width: 12px; height: 12px; border-top: 4px solid var(--mgv-mustard); border-right: 4px solid var(--mgv-mustard); transform: translateY(-50%) rotate(45deg); }
.mgv-rv-eq { margin: 4px 0 8px; font-size: 16px; line-height: 1.6; }
.mgv-rv-eq b { background: linear-gradient(transparent 60%, rgba(211, 170, 53, .45) 60%); }

/* ---- funding ---- */
.mgv-fd-lane { padding: 14px; border: 2px solid var(--mgv-ink); background: #f6fbfb; }
.mgv-fd-sub { margin-top: 14px; border-style: dashed; border-color: var(--mgv-blue); background: #f4f8fd; }
.mgv-fd-lab { margin-bottom: 10px; font-size: 14px; font-weight: 800; color: var(--mgv-blue); }
.mgv-fd-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; }
.mgv-fd-s { position: relative; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 12px 10px; background: #fff; border: 2px solid var(--mgv-ink); font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.mgv-fd-s b { font-size: 16px; line-height: 1.4; }
.mgv-fd-no { align-self: flex-start; padding: 0 8px; font: 900 14px/1.5 "Helvetica Neue", Arial, sans-serif; background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-fd-s:not(:last-child)::after { content: ""; position: absolute; right: -17px; top: 50%; width: 12px; height: 12px; border-top: 4px solid var(--mgv-ink); border-right: 4px solid var(--mgv-ink); transform: translateY(-50%) rotate(45deg); }
.mgv-fd-sub .mgv-fd-s { border-style: dashed; border-color: var(--mgv-blue); }
.mgv-fd-sub .mgv-fd-s:not(:last-child)::after { border-color: var(--mgv-blue); }
.mgv-fd-sub .mgv-fd-no { background: var(--mgv-mustard); }
.mgv-fd-last { background: var(--mgv-teal-soft); }
.mgv-fd-diff { margin-top: 14px; }

/* ---- operations ---- */
.mgv-op-goal, .mgv-op-intake { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 14px 18px; background: var(--mgv-ink); color: #fff; border-left: 10px solid var(--mgv-mustard); }
.mgv-op-goal b, .mgv-op-intake b { font-size: clamp(20px, 2.6vw, 26px); font-weight: 900; }
.mgv-op-goal span, .mgv-op-intake span { padding: 0 10px; font-size: 13px; font-weight: 800; background: var(--mgv-teal); color: var(--mgv-ink); }
.mgv-op-intake { background: var(--mgv-teal-soft); color: var(--mgv-ink); border-left-color: var(--mgv-blue); border: 2px solid var(--mgv-ink); border-left: 10px solid var(--mgv-blue); }
.mgv-op-intake small { flex-basis: 100%; font-size: 14px; color: var(--mgv-mute); }
.mgv-op-arrow { display: flex; justify-content: center; height: 28px; }
.mgv-op-arrow i { position: relative; display: block; width: 3px; height: 100%; background: var(--mgv-ink); }
.mgv-op-arrow i::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 12px; height: 12px; border-right: 3px solid var(--mgv-ink); border-bottom: 3px solid var(--mgv-ink); transform: translateX(-50%) rotate(45deg); transform-origin: 70% 70%; }
.mgv-op-roles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.mgv-op-roles li { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 14px; border: 2px solid var(--mgv-ink); border-top: 8px solid var(--mgv-blue); background: #fff; font-size: 14px; line-height: 1.55; }
.mgv-op-roles b { font-size: clamp(17px, 2vw, 20px); font-weight: 900; }
.mgv-op-scope { margin-top: 8px; font-size: 14px; font-weight: 800; color: var(--mgv-blue); text-align: center; }
.mgv-op-hire { padding: 14px; border: 2px solid var(--mgv-ink); background: #fbf7e8; }
.mgv-op-hire-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 10px; }
.mgv-op-hire-t b { font-size: clamp(20px, 2.6vw, 26px); font-weight: 900; }
.mgv-op-hire-t span { padding: 0 10px; font-size: 13px; font-weight: 800; background: var(--mgv-mustard); color: var(--mgv-ink); }
.mgv-op-hire ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.mgv-op-hire li { display: flex; flex-direction: column; padding: 10px 14px; background: #fff; border: 2px solid var(--mgv-ink); font-size: 14px; }
.mgv-op-hire li b { font-size: 17px; color: var(--mgv-blue); }
.mgv-op-back { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 10px 16px; border: 2px dashed var(--mgv-blue); font-size: 14px; font-weight: 800; color: var(--mgv-blue); }
.mgv-op-back-arr { flex: 0 0 40px; height: 14px; position: relative; background: linear-gradient(var(--mgv-blue), var(--mgv-blue)) 0 50% / 100% 3px no-repeat; }
.mgv-op-back-arr::before { content: ""; position: absolute; left: 0; top: 50%; width: 10px; height: 10px; border-left: 3px solid var(--mgv-blue); border-bottom: 3px solid var(--mgv-blue); transform: translateY(-50%) rotate(45deg); }

/* ---- tablet / mobile ---- */
@media (max-width: 960px) {
  .mgv-ctx-grid { grid-template-columns: 1fr 1fr; }
  .mgv-ctx-main { grid-column: 1 / -1; border-right: 0; border-bottom: 2px solid var(--mgv-ink); }
  .mgv-pr-steps { grid-template-columns: 1fr 1fr; gap: 14px; }
  .mgv-pr-step { margin-left: 0; }
  .mgv-pr-step::after { display: none; }
  .mgv-er-phases { grid-template-columns: 1fr 1fr; }
  .mgv-er-p::after { display: none; }
}
@media (max-width: 720px) {
  .mgv { padding: 20px 16px; font-size: 14px; box-shadow: 6px 6px 0 var(--mgv-teal-soft); }
  .mgv-note, .mgv-caution, .mgv-label, .mgv-pos small, .mgv-er-p p, .mgv-er-three p { font-size: 14px; }
  .mgv-year, .mgv-sc-role em, .mgv-pos em, .mgv-bar-row, .mgv-pr-see { font-size: 13px; }
  .mgv-ctx-grid { grid-template-columns: 1fr; }
  .mgv-ctx-card { border-right: 0; border-bottom: 2px solid var(--mgv-ink); }
  .mgv-ctx-card:last-child { border-bottom: 0; }
  .mgv-bar-row { grid-template-columns: 6.5em 1fr auto; gap: 6px; }

  .mgv-sc-top, .mgv-sc-compare { grid-template-columns: 1fr; }
  .mgv-pitch { grid-template-columns: 1fr; min-height: 0; }
  .mgv-pos { display: grid; grid-template-columns: 64px 1fr; column-gap: 12px; align-items: center; padding: 14px; border-right: 0; border-bottom: 2px dashed rgba(23, 59, 65, .3); }
  .mgv-pos:last-child { border-bottom: 0; }
  .mgv-pos b { grid-row: 1 / span 3; font-size: 36px; }
  .mgv-pos em { justify-self: start; }
  .mgv-line-mid { left: 0; right: 0; top: 50%; bottom: auto; border-width: 2px 0 0 !important; }
  .mgv-circle, .mgv-box { display: none; }
  .mgv-arrow-note { font-size: 0; text-align: left; }
  .mgv-arrow-note::after { content: "守り → つなぎ → 決める（上から下へ）"; font-size: 14px; }

  .mgv-dm-flow { grid-template-columns: 1fr; }
  .mgv-dm-link { width: auto; flex-direction: row; justify-content: flex-start; gap: 12px; padding: 12px 6px 12px 22px; text-align: left; }
  .mgv-dm-link .mgv-dm-arr { flex: 0 0 14px; width: 14px; height: 40px; background: linear-gradient(var(--mgv-ink), var(--mgv-ink)) 50% 0 / 3px calc(100% - 6px) no-repeat; }
  .mgv-dm-link .mgv-dm-arr::after { right: auto; left: 50%; top: auto; bottom: 0; transform: translateX(-50%) rotate(135deg); transform-origin: center; }
  .mgv-dm-return { align-items: flex-start; }
  .mgv-dm-arr-back { transform: none; flex-basis: 14px; width: 14px; height: 36px; background: linear-gradient(var(--mgv-blue), var(--mgv-blue)) 50% 6px / 3px calc(100% - 6px) no-repeat !important; }
  .mgv-dm-arr-back::after { right: auto; left: 50%; top: 0; bottom: auto; transform: translateX(-50%) rotate(-45deg); }
  .mgv-dm-examples { grid-template-columns: 1fr; }

  .mgv-nm-lanes { grid-template-columns: 1fr; }
  .mgv-nm-eq b { padding: 6px 10px; font-size: 16px; }
  .mgv-nm-chips { margin-left: 0; flex-basis: 100%; }
  .mgv-nm-chips li { font-size: 14px; }
  .mgv-nm-step { padding: 14px 12px; }
  .mgv-nm-s3 { border-left-width: 8px; }

  .mgv-pr-steps { grid-template-columns: 1fr; gap: 0; }
  .mgv-pr-step { margin: 0 0 -2px; padding: 16px 16px 16px 76px; }
  .mgv-pr-no { position: absolute; left: 16px; top: 12px; font-size: 44px; }
  .mgv-pr-step:not(:last-child)::after { display: block; right: auto; left: 28px; top: auto; bottom: -17px; transform: rotate(135deg); }
  .mgv-pr-step li, .mgv-pr-last { font-size: 14px; }

  .mgv-er-track { height: 36px; }
  .mgv-er-phases { grid-template-columns: 1fr; gap: 0; }
  .mgv-er-p { margin-bottom: -2px; }
  .mgv-er-p:not(:last-child)::after { display: block; right: auto; left: 24px; top: auto; bottom: -9px; transform: rotate(135deg); }
  .mgv-er-three { grid-template-columns: 1fr; }
  .mgv-er-three p { border-right: 0; border-bottom: 2px solid var(--mgv-ink); }
  .mgv-er-three p:last-child { border-bottom: 0; }

  .mgv-rv-path { grid-template-columns: 1fr; gap: 20px; }
  .mgv-rv-path li { font-size: 15px; }
  .mgv-rv-path li:not(:last-child)::after { right: auto; left: 50%; top: auto; bottom: -17px; transform: translateX(-50%) rotate(135deg); }
  .mgv-rv-eq { font-size: 15px; }

  .mgv-fd-lane { padding: 12px 10px; }
  .mgv-fd-steps { grid-template-columns: 1fr; gap: 20px; }
  .mgv-fd-s:not(:last-child)::after { right: auto; left: 50%; top: auto; bottom: -17px; transform: translateX(-50%) rotate(135deg); }

  .mgv-op-roles { grid-template-columns: 1fr 1fr; gap: 10px; }
  .mgv-op-roles li, .mgv-op-hire li, .mgv-op-intake small, .mgv-op-back, .mgv-op-scope { font-size: 14px; }
  .mgv-op-hire ul { grid-template-columns: 1fr; }
  .mgv-op-hire { padding: 12px 10px; }
  .mgv-op-goal, .mgv-op-intake { padding: 12px 12px; border-left-width: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .mgv-dm-node { transition: none; }
  .mgv-dm-node:hover, .mgv-dm-node:focus-visible { transform: none; }
}
