html{zoom:0.9;}

/* ===== News hub layout (unique to list pages) ===== */
.news-hub .container { padding-top: 6px; }
.hub { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 58px; border-top: 1px solid var(--border-cool); margin-top: 26px; }
.hub-rail { padding-top: 30px; }
.hub-cat { display: flex; align-items: baseline; justify-content: space-between; width: 100%; text-align: left; font-family: var(--font-cond); font-weight: 700; font-size: 14.5px; letter-spacing: .03em; text-transform: uppercase; color: var(--fg-3); background: none; border: 0; border-bottom: 1px solid var(--border-cool); padding: 13px 0; cursor: pointer; position: relative; transition: color .18s var(--ease); }
.hub-cat:first-child { border-top: 0; }
.hub-cat:hover { color: var(--zju-red); }
.hub-cat.on,.hub-cat.selected { color: var(--zju-red); }
.hub-cat.on::before,.hub-cat.selected::before { content: ''; position: absolute; left: -14px; top: 12px; bottom: 12px; width: 3px; background: var(--zju-red); }
.hub-cat .c-n { font-family: var(--font-body); font-weight: 400; font-size: 12px; color: var(--fg-3); }
.hub-cat.on .c-n,.hub-cat.selected .c-n { color: var(--zju-red-soft); }
.hub-main { min-width: 0; padding-top: 30px; }
.hub-lead { display: grid; grid-template-columns: 1.1fr 1fr; gap: 38px; align-items: center; padding-bottom: 34px; margin-bottom: 6px; border-bottom: 1px solid var(--border-cool); }
.hub-lead:has(img[src=""]) { display: none; }
.hi.show{display:none;}
.hub-lead:has(img[src=""]) ~ #listWrap .hi.show { display: block; }
.hub-lead.noimg { grid-template-columns: 1fr; max-width: 70ch; }
.hub-lead .lead-media { display: block; aspect-ratio: 16/9; overflow: hidden; box-shadow: var(--shadow-soft); }
.hub-lead .lead-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.hub-lead .lead-media:hover img { transform: scale(1.03); }
.hub-lead .lead-kicker { font-family: var(--font-cond); font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--zju-red); }
.hub-lead h2 { font-family: var(--font-news); font-weight: 500; font-size: clamp(21px, 2.2vw, 29px); line-height: 1.18; margin: 10px 0 12px; }
.hub-lead h2 a { color: var(--ink-pine); text-decoration: none; }
.hub-lead h2 a:hover { color: var(--zju-red); }
.hub-lead .dek { color: var(--fg-2); line-height: 1.6; max-width: 50ch; }
.hub-lead .date { font-size: 13px; color: var(--fg-3); margin-top: 15px; }
.hi { display: block; text-decoration: none; border-bottom: 1px solid var(--border-cool); padding: 20px 0; }
.hi-m { display: flex; gap: 10px; align-items: baseline; }
.hi-k { font-family: var(--font-cond); font-weight: 700; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: var(--zju-red); }
.hi-d { font-size: 12px; color: var(--fg-3); }
.hi h3 { font-family: var(--font-news); font-weight: 500; font-size: 17.5px; line-height: 1.32; margin: 7px 0 5px; color: var(--ink-pine); transition: color .18s var(--ease); }
.hi:hover h3 { color: var(--zju-red); }
.hi-dek { font-size: 13.5px; color: var(--fg-2); line-height: 1.5; max-width: 74ch; }
@media(max-width:820px) {
  .hub { grid-template-columns: 1fr; gap: 0; }
  .hub-rail { display: flex; flex-wrap: wrap; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--border-cool); }
  .hub-cat { width: auto; border-bottom: 0; padding: 4px 0; }
  .hub-cat.on::before { display: none; }
  .hub-cat .c-n { display: none; }
  .hub-lead { grid-template-columns: 1fr; gap: 20px; }
  .hub-main { padding-top: 22px; }
}

/* List page override for news items */
.news-item h4 { font-weight: 400; }

/* ===== Research directory (light variant for list pages) ===== */
.research-sec { background: var(--paper-silk); }
.research-sec .sec-head h2 { color: var(--ink-pine); }
.research-sec .sec-label { color: var(--zju-red); }
.research-sec .see-all { color: var(--fg-2); }
.research-sec .see-all:hover { color: var(--zju-red); }
.res-intro { font-size: 16.5px; line-height: 1.7; color: var(--fg-2); max-width: 70ch; margin: 4px 0 46px; }
.res-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 56px; }
.res-group { border-top: 2px solid var(--zju-red); padding-top: 14px; }
.rg-label { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--ink-pine); margin: 0; }
.rg-label .ct { font-family: var(--font-cond); font-weight: 700; font-size: 15px; color: var(--zju-red); letter-spacing: 0; }
.res-group ul { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--border-cool); }
.res-group li { border-bottom: 1px solid var(--border-cool); }
.res-group li a { display: block; padding: 13px 0; font-size: 15px; color: var(--fg-1); text-decoration: none; line-height: 1.42; transition: padding-left var(--dur) var(--ease), color var(--dur) var(--ease); }
.res-group li a:hover { padding-left: 8px; color: var(--zju-red); }
