/* partonmap — shared shell for the four Map ▸ collaboration walkthroughs */
:root { --fm:"SF Mono",Menlo,Consolas,monospace; }

.gwrap { max-width:1560px; margin:0 auto; padding:0 24px 60px; }

/* ---- hero ---- */
.ghero { border-bottom:1px solid var(--line-soft); padding:26px 0 22px; margin-bottom:26px; }
.gkick { font:10px var(--fm); font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--orange); margin-bottom:9px; }
.ghero h1 { font-family:Georgia,serif; font-size:38px; line-height:1.1; color:var(--ink); margin:0 0 4px; }
.ghero .expand { font-size:15px; color:var(--muted); margin:0 0 14px; font-style:italic; }
.ghero .lede { font-size:16.5px; line-height:1.6; color:var(--body); max-width:96ch; margin:0; }
.ghero .lede b { color:var(--ink); }
.badges { display:flex; flex-wrap:wrap; gap:9px; margin-top:17px; }
.badge { font:11px var(--fm); border:1px solid var(--line); background:#fff; border-radius:20px;
  padding:6px 13px; color:var(--body); display:inline-flex; align-items:center; gap:7px; }
.badge b { color:var(--ink); font-weight:700; }
.badge .bk { color:var(--faint); text-transform:uppercase; letter-spacing:.1em; font-size:9.5px; }

/* ---- two-column: sticky left nav + content ---- */
.glayout { display:grid; grid-template-columns:232px 1fr; gap:38px; align-items:start; }
@media(max-width:1000px){ .glayout{grid-template-columns:1fr} .gnav{position:static !important; max-height:none !important} }
.gnav { position:sticky; top:18px; max-height:calc(100vh - 40px); overflow:auto; }
.gnav .nt { font:9.5px var(--fm); font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--faint); padding:0 0 9px 11px; }
.gnav a { display:block; font-size:13.5px; line-height:1.35; color:var(--muted); padding:7px 11px;
  border-left:2px solid var(--line-soft); text-decoration:none; }
.gnav a:hover { color:var(--ink); background:var(--panel); text-decoration:none; }
.gnav a.on { color:var(--teal-dark); border-left-color:var(--tealc); background:#f2f9f8; font-weight:600; }
.gnav a .n { font:10px var(--fm); color:var(--faint); margin-right:7px; }
.gnav a.on .n { color:var(--tealc); }

/* ---- content sections ---- */
.sec { scroll-margin-top:18px; padding-bottom:34px; margin-bottom:34px; border-bottom:1px solid var(--line-soft); }
.sec:last-child { border-bottom:none; }
.sec > h2 { font-family:Georgia,serif; font-size:25px; color:var(--ink); margin:0 0 4px; }
.sec > .sub { font-size:13.5px; color:var(--muted); margin:0 0 18px; }
.sec p { font-size:15px; line-height:1.68; color:var(--body); max-width:88ch; margin:0 0 13px; }
.sec p b { color:var(--ink); }
.sec ul { margin:0 0 14px; padding-left:20px; max-width:88ch; }
.sec li { font-size:15px; line-height:1.62; color:var(--body); margin-bottom:7px; }

/* plain-English callout — the "what this actually means" layer */
.plain { background:#f2f9f8; border:1px solid #b9ddd8; border-left:4px solid var(--tealc);
  border-radius:10px; padding:14px 18px; margin:0 0 18px; max-width:88ch; }
.plain .pl { font:9.5px var(--fm); font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--teal-dark); margin-bottom:6px; }
.plain p { font-size:14.5px; margin:0; color:#14514e; }
.plain p + p { margin-top:9px; }

/* caution / honesty callout */
.caution { background:#fbf3e3; border:1px solid #e7cf9a; border-left:4px solid var(--orange);
  border-radius:10px; padding:14px 18px; margin:0 0 18px; max-width:88ch; }
.caution .pl { font:9.5px var(--fm); font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:#a86a10; margin-bottom:6px; }
.caution p { font-size:14.5px; margin:0; color:#7a5210; }

/* ---- fact table ---- */
.ftab { width:100%; border-collapse:collapse; margin:0 0 16px; font-size:14px; }
.ftab th, .ftab td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--line-soft);
  vertical-align:top; line-height:1.5; }
.ftab th { font:9.5px var(--fm); font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--faint); border-bottom:1px solid var(--line); }
.ftab td:first-child { color:var(--muted); white-space:nowrap; width:1%; padding-right:26px; }
.ftab td b { color:var(--ink); }
.ftab tr:last-child td { border-bottom:none; }
.tscroll { overflow-x:auto; margin-bottom:16px; }

/* ---- charts ---- */
.gfig { background:#fff; border:1px solid var(--line-soft); border-radius:13px; padding:15px 17px 10px;
  box-shadow:0 5px 20px #16222e0c; margin:0 0 18px; position:relative; }
.gfig h4 { font-size:14.5px; color:var(--ink); margin:0 0 3px; font-weight:700; }
.gfig .fs { font-size:12.5px; color:var(--muted); margin:0 0 12px; line-height:1.5; }
.gfig svg { width:100%; height:auto; display:block; }
.gfig .fcap { font-size:12.5px; color:var(--muted); line-height:1.55; margin-top:11px;
  border-top:1px solid var(--line-soft); padding-top:10px; }
.gfig .fcap b { color:var(--ink); }
.figctl { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:12px; }
.figctl button { font:12px "Helvetica Neue",sans-serif; border:1px solid var(--line); background:#fdfcfa;
  color:var(--muted); border-radius:18px; padding:5px 12px; cursor:pointer; }
.figctl button:hover { background:var(--panel); }
.figctl button.on { border-color:var(--tealc); background:#eef6f5; color:var(--ink); font-weight:600; }
.gro { position:absolute; pointer-events:none; background:#fffef9; border:1px solid var(--line);
  border-radius:9px; padding:8px 11px; font:11.5px var(--fm); color:var(--body);
  box-shadow:0 6px 20px #16222e1f; display:none; z-index:5; }
.gro b { color:var(--ink); }
.gro .rr { display:flex; justify-content:space-between; gap:14px; margin-top:3px; }

/* ---- citations ---- */
.cites { list-style:none; padding:0; margin:0; }
.cites li { font-size:14px; line-height:1.6; color:var(--body); padding:11px 0;
  border-bottom:1px solid var(--line-soft); margin:0; }
.cites li:last-child { border-bottom:none; }
.cites .ct { color:var(--ink); font-weight:600; }
.cites .cw { color:var(--muted); font-size:13px; display:block; margin-top:2px; }
.cites a { color:var(--teal-dark); font-family:var(--fm); font-size:12.5px; }

/* ---- prev/next between the four groups ---- */
.gjump { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:34px; }
@media(max-width:700px){ .gjump{grid-template-columns:1fr} }
.gjump a { display:block; background:#fff; border:1px solid var(--line-soft); border-radius:12px;
  padding:13px 17px; text-decoration:none; }
.gjump a:hover { border-color:var(--tealc); text-decoration:none; }
.gjump .jl { font:9.5px var(--fm); font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:var(--faint); }
.gjump .jt { font-size:15.5px; color:var(--ink); font-weight:700; margin-top:3px; }
.gjump .jd { font-size:12.5px; color:var(--muted); margin-top:2px; }
.gjump .r { text-align:right; }
