/* Shared skeleton for the six project pages: hero, numbered sections, lists,
   captions and footer. Colours come from theme.css; page components stay in
   each page. Long text uses --body at 17px, about 34 characters a line;
   grey (--muted) is only for captions, labels and table notes. */
.case{width:min(1160px,calc(100% - 80px));margin-inline:auto}
.case-hero{padding:56px 0 44px}
.case-eyebrow{margin:0 0 16px;font-size:13px;color:var(--muted)}
.case-hero h1{margin:0 0 20px}
.case-intro{max-width:42em}
.case-intro p{max-width:34em;margin:0 0 14px;color:var(--body);font-size:17px;line-height:1.95;letter-spacing:.02em}
.case-section{display:grid;grid-template-columns:180px minmax(0,1fr);gap:40px;padding:44px 0 52px;border-top:1px solid var(--line)}
.case-label{margin:7px 0 0;font-size:14px;color:var(--ink)}
.case-label b{margin-right:10px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.case-body{min-width:0}
.case-body h2{margin:0 0 12px;line-height:1.5}
.case-body h3{margin:36px 0 10px;font-size:17px;font-weight:600;line-height:1.6}
.case-body p{margin:0 0 22px}
.case-body>p:not([class]),.case-text{max-width:34em;color:var(--body);font-size:17px;line-height:1.95;letter-spacing:.02em}
.case-lede{max-width:34em;color:var(--body);font-size:17px;line-height:1.95;letter-spacing:.02em}
.case-note{max-width:34em;margin:20px 0;color:var(--body);font-size:17px;line-height:1.95;letter-spacing:.02em}
.case-caption{max-width:52em;margin:12px 0 0!important;font-size:13px;line-height:1.75;color:var(--muted)}
.case-list{margin:18px 0 0;border-top:1px solid var(--line)}
.case-list>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}
.case-list dt{font-weight:600}
.case-list dd{margin:0;font-size:16px;line-height:1.9;color:var(--body)}
.case-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;margin:22px 0 0;padding:0;list-style:none;counter-reset:case-step;border-top:1px solid var(--line)}
.case-steps li{counter-increment:case-step;padding:14px 18px 4px 0}
.case-steps li::before{content:counter(case-step);display:block;margin-bottom:4px;font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.case-steps strong{display:block;font-weight:600}
.case-steps span{display:block;font-size:14px;color:var(--body)}
.case-link{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.case-link:hover{text-decoration-thickness:2px}
.case-files{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:6px}
.case-table{max-width:100%;overflow-x:auto;margin:22px 0 0;border-top:1px solid var(--ink)}
.case-table table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.case-table th{padding:10px 12px;text-align:left;font-weight:600;color:var(--ink);border-bottom:1px solid var(--ink);white-space:nowrap}
.case-table td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.case-table .numeric{text-align:right}
/* Totals follow ledger practice: a single rule above, a double rule below. */
.case-table tr:has(+ .detail-total) td{border-bottom-color:var(--ink)}
.case-table .detail-total td{font-weight:600;border-bottom:3px double var(--ink)}
.case-table .detail-total + tr td{padding-top:14px}
.case-footer{display:flex;justify-content:space-between;gap:24px;padding:22px 0 8px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
@media(max-width:760px){
  .case{width:calc(100% - 40px)}
  .case-hero{padding:34px 0 30px}
  .case-intro p,.case-body>p:not([class]),.case-text,.case-lede,.case-note{font-size:16px;line-height:1.9}
  .case-section{display:block;padding:30px 0 36px}
  .case-label{margin:0 0 14px}
  .case-list>div{grid-template-columns:96px minmax(0,1fr);gap:14px}
  .case-footer{display:block}
  .case-footer span{display:block}
}
/* Wide figures (network maps, dashboards) may run under the label column. */
@media(min-width:761px){.case-bleed{margin-left:-220px;width:calc(100% + 220px)}}
.case-meta{display:flex;flex-wrap:wrap;gap:6px 32px;margin:22px 0 0;font-size:14px;color:var(--muted)}
.case-meta div{display:flex;gap:10px}
.case-meta dd{margin:0;color:var(--ink)}
