/* Page-specific visual research overview. Shared site styles remain unchanged. */
.mobility-page .page-hero-inner { padding-block: 30px 34px; }
.mobility-page .page-hero h1 { font-size: clamp(33px, 3.6vw, 52px); max-width: none; }
.mobility-page .page-hero p { margin-top: 12px; }
.mobility-page .page-section { padding-block: 56px; }
.mobility-page .detail-jumps .site-container { padding-block: 15px; }
.mobility-page .detail-jumps a { font-size: 15px; }
.mobility-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; margin-bottom: 36px; }
.mobility-heading h2 { font-size: clamp(32px, 3.5vw, 46px); margin-bottom: 0; }
.mobility-heading > p { font-size: 19px; max-width: 500px; color: var(--muted); line-height: 1.65; }
.mobility-heading .eyebrow { margin-bottom: 12px; font-size: 12px; letter-spacing: .11em; }
.mobility-ecosystem { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(0, 2.5fr) minmax(190px, 1fr); grid-template-rows: repeat(3, auto); gap: 10px 24px; scroll-margin-top: 145px; }
.mobility-scene { grid-column: 2; grid-row: 1 / 4; margin: 0; align-self: center; min-width: 0; }
.mobility-scene img { display: block; width: 100%; height: auto; }
.mobility-scene figcaption { margin: 16px 10px 0; text-align: center; font-size: 14px; font-weight: 600; color: var(--navy); }
.mobility-scene figcaption span { display: block; margin-top: 4px; font-size: 11px; font-weight: 400; color: var(--muted); }
.mobility-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; margin-top: 19px; padding-top: 16px; border-top: 1px solid var(--line); }
.mobility-legend span { font-size: 11px; font-weight: 600; color: #216a7b; }
.mobility-legend span::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 6px; background: #21a6b5; }
.mobility-theme { padding: 16px 0; border-top: 1px solid #bedce6; scroll-margin-top: 145px; }
.mobility-theme:target { outline: 2px solid var(--blue); outline-offset: 6px; }
.theme-1 { grid-area: 1 / 1; }.theme-2 { grid-area: 2 / 1; }.theme-3 { grid-area: 3 / 1; }
.theme-4 { grid-area: 1 / 3; }.theme-5 { grid-area: 2 / 3; }.theme-6 { grid-area: 3 / 3; }
.mobility-theme-top { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.mobility-number { font-size: 12px; font-weight: 700; letter-spacing: .08em; color: #147d8b; }
.mobility-theme svg { width: 28px; height: 28px; stroke: #147d8b; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mobility-page .mobility-theme h3 { font: 700 19px/1.25 Arial, sans-serif; margin-bottom: 9px; }
.mobility-theme p { color: var(--muted); font-size: 14px; line-height: 1.5; }
.mobility-theme small { display: block; font-size: 11px; line-height: 1.5; font-weight: 600; color: #257287; margin-top: 10px; }
.mobility-approach { background: #eff6f8; }
.mobility-section-heading { max-width: 770px; }
.mobility-page .mobility-section-heading h2 { font-size: clamp(28px,3vw,38px); }
.mobility-process { list-style: none; padding: 0; margin: 30px 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 26px; }
.mobility-process li { position: relative; border-top: 2px solid #8cc4d1; padding: 20px 4px 0 0; }
.mobility-process li:not(:last-child)::after { content: '→'; position: absolute; top: -17px; right: -19px; background: #eff6f8; color: #237f94; font-size: 20px; }
.mobility-process span { color: #257287; font-size: 11px; font-weight: 700; letter-spacing: .09em; }
.mobility-page .mobility-process h3 { font: 700 18px/1.35 Arial,sans-serif; margin: 12px 0 8px; }
.mobility-process p { font-size: 15px; line-height: 1.55; color: var(--muted); }
.mobility-technical { margin-top: 36px; border-top: 1px solid #c5dce4; border-bottom: 1px solid #c5dce4; }
.mobility-technical summary { padding: 19px 0; font-size: 16px; font-weight: 700; color: var(--navy); cursor: pointer; }
.mobility-technical summary span { margin-left: 16px; color: var(--muted); font-size: 13px; font-weight: 400; }
.mobility-layers { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; padding-bottom: 18px; }
.mobility-layers > div { background: white; padding: 18px; border-top: 3px solid #21a6b5; }
.mobility-layers strong { font-size: 16px; color: var(--navy); }
.mobility-layers p { margin-top: 8px; font-size: 14px; line-height: 1.5; }
.mobility-technical-note { font-size: 13px; padding-bottom: 20px; color: var(--muted); }
.mobility-technical-note a { text-decoration: underline; }
.mobility-page #faculty { background: white; }
.mobility-page .detail-faculty-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.mobility-page .detail-faculty { grid-template-columns: 110px minmax(0,1fr); gap: 22px; padding: 20px 0; border: 0; border-top: 1px solid var(--line); }
.mobility-page .detail-faculty img { width: 110px; height: 138px; }
.mobility-page .detail-faculty h3 { font-size: 18px; }
.mobility-page .detail-faculty p { font-size: 14px; line-height: 1.5; }
.mobility-page .detail-links { gap: 8px 14px; margin-top: 12px; }
.mobility-page .detail-links a { font-size: 13px; }
.mobility-page #publications { padding-top: 0; }
.mobility-page .detail-publications { gap: 0 28px; }
.mobility-page .detail-publications li { border: 0; border-top: 1px solid var(--line); padding: 20px 0; }
.mobility-page .detail-publications h3 { font-size: 18px; }
.mobility-page .detail-publications p { font-size: 14px; }
.mobility-page .detail-publications p + p { margin-top: 5px; }
.mobility-page .detail-related { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.mobility-page .detail-related a { padding: 12px 16px; }
.mobility-page .detail-related strong { font-size: 17px; }
.mobility-page .detail-related span { font-size: 14px; }
.mobility-page .detail-sources { padding-top: 18px; margin-top: 28px; }
.mobility-page .detail-sources summary { cursor: pointer; font-size: 15px; color: var(--navy); }
.mobility-page .detail-sources ul { margin-top: 18px; font-size: 14px; }
@media(min-width:1500px) { .mobility-page .site-container { width: min(1380px,calc(100% - 80px)); } }
@media(max-width:1050px) {
  .mobility-ecosystem { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
  .mobility-scene { grid-column: 1 / -1; grid-row: 1; width: min(800px,100%); justify-self: center; }
  .mobility-theme { grid-area: auto; }
  .mobility-heading { gap: 30px; }
  .mobility-page .detail-faculty-grid { grid-template-columns: 1fr; }
  .mobility-page .detail-faculty { grid-template-columns: 100px minmax(0,1fr); gap: 18px; }
  .mobility-page .detail-faculty img { width: 100px; height: 126px; }
  .mobility-page .detail-related { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .mobility-page .page-section { padding-block: 36px; }
  .mobility-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 25px; }
  .mobility-heading > p { font-size: 17px; }
  .mobility-ecosystem { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 20px; }
  .mobility-theme p { font-size: 14px; }
  .mobility-page .mobility-theme h3 { font-size: 18px; }
  .mobility-theme small { font-size: 11px; }
  .mobility-process, .mobility-layers { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
  .mobility-process li::after { display: none; }
  .mobility-technical summary span { display: block; margin: 5px 0 0 20px; }
  .mobility-legend { gap: 8px 12px; }
}
@media(max-width:400px) {
  .mobility-ecosystem, .mobility-process, .mobility-layers, .mobility-page .detail-related { grid-template-columns: 1fr; }
  .mobility-scene { grid-column: 1; }
}

/* System and network research map with legible vector symbols. */
.hex-intro { text-align:center; margin:0 auto 38px; max-width:1000px; }
.mobility-page .hex-intro h2 { margin-bottom:16px; }
.hex-intro > p:last-child { color:var(--muted); font-size:18px; max-width:800px; margin-inline:auto; }
.hex-intro .eyebrow { font-size:12px; }
.hex-map { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr); gap:18px; isolation:isolate; scroll-margin-top:145px; }
.hex-connections { position:absolute; inset:0; height:100%; width:100%; z-index:-1; pointer-events:none; }
.hex-level { display:grid; grid-template-rows:76px repeat(3,minmax(230px,1fr)); gap:20px; min-width:0; }
.network-level { grid-template-rows:76px repeat(3,minmax(230px,1fr)); }
.hex-level-heading { border-bottom:1px solid #b1dee1; background:white; }
.hex-level-heading > span { color:#176e75; font-size:12px; font-weight:800; letter-spacing:.12em; }
.mobility-page .hex-level-heading h3 { font:600 17px/1.4 Arial,sans-serif; margin:8px 0 0; }
.network-level .hex-level-heading { border-color:#a9cadc; }
.network-level .hex-level-heading > span { color:#27688c; }
.hex-theme { display:grid; grid-template-columns:minmax(0,1fr) 130px; gap:18px; align-items:center; scroll-margin-top:145px; }
.hex-copy { background:white; padding-block:8px; }
.mobility-page .hex-copy h3 { font:700 19px/1.3 Arial,sans-serif; margin:0 0 10px; color:#162c3a; }
.hex-copy p { font-size:15px; line-height:1.55; color:#455764; }
.research-symbol { margin:0; width:100%; }
.research-symbol img { display:block; width:100%; height:auto; }
.network-level .hex-theme { grid-template-columns:110px minmax(0,1fr); }
.network-level .research-symbol { grid-column:1; grid-row:1; }
.network-level .hex-copy { grid-column:2; grid-row:1; }
.hex-centre { align-self:center; margin:76px 0 0; min-width:0; }
.hex-image { position:relative; aspect-ratio:1.12; background:#61cbd1; clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.hex-image img { position:absolute; inset:6px; width:calc(100% - 12px); height:calc(100% - 12px); object-fit:cover; clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.hex-centre figcaption { background:white; text-align:center; color:var(--navy); font-size:18px; font-weight:700; padding:12px 0; }
.hex-centre figcaption span { display:block; color:var(--muted); font-size:12px; font-weight:400; margin-top:5px; }
.hex-bridge { display:flex; justify-content:center; align-items:center; gap:24px; margin-top:28px; font-size:14px; color:#36616f; }
.hex-bridge b { color:#218f9c; font-size:24px; font-weight:400; }
.research-agenda { background:#f1f6f8; }
.agenda-heading { max-width:800px; margin-bottom:32px; }
.agenda-heading > p:last-child { color:var(--muted); font-size:17px; }
.agenda-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.agenda-grid article { min-width:0; }
.agenda-grid figure { margin:0 0 22px; height:210px; display:flex; align-items:center; justify-content:center; background:white; }
.agenda-grid img { width:100%; height:100%; object-fit:contain; }
.agenda-grid article > span { color:#176e75; font-size:11px; font-weight:700; letter-spacing:.12em; }
.mobility-page .agenda-grid h3 { font:700 22px/1.3 Arial,sans-serif; margin:12px 0; }
.agenda-grid p { font-size:16px; color:var(--muted); line-height:1.65; }
.standards-research { display:grid; grid-template-columns:1fr 1.5fr; gap:20px 40px; margin-top:48px; padding-block:30px; border-block:1px solid #ccdfe5; }
.standards-research .eyebrow { font-size:11px; margin-bottom:10px; }
.mobility-page .standards-research h3 { font:700 22px/1.35 Arial,sans-serif; margin:0; }
.standards-research > p { font-size:16px; color:var(--muted); }
.standards-links { grid-column:2; display:flex; gap:24px; }
.standards-links a,.research-invitation a { font-size:14px; font-weight:700; color:var(--blue-link); text-decoration:underline; text-underline-offset:4px; }
.research-invitation { padding-top:28px; display:flex; justify-content:space-between; align-items:center; gap:30px; }
.research-invitation p { max-width:500px; font-size:17px; color:var(--navy); }
.research-invitation > div { display:flex; flex-direction:column; gap:10px; }
@media(min-width:1500px) { .hex-map { grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr); gap:24px; }.hex-theme { grid-template-columns:minmax(0,1fr) 145px; }.network-level .hex-theme { grid-template-columns:125px minmax(0,1fr); } }
@media(max-width:1150px) {
 .hex-map { grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr); gap:12px; }
 .hex-theme { grid-template-columns:minmax(0,1fr) 90px; gap:12px; }
 .network-level .hex-theme { grid-template-columns:90px minmax(0,1fr); }
 .hex-level { grid-template-rows:86px repeat(3,minmax(265px,1fr)); }
 .network-level { grid-template-rows:86px repeat(3,minmax(265px,1fr)); }
 .mobility-page .hex-copy h3 { font-size:18px; }.hex-copy p { font-size:14px; }
 .hex-centre figcaption { font-size:15px; }
}
@media(max-width:900px) {
 .hex-map { grid-template-columns:1fr 1fr; gap:32px; }
 .hex-connections { display:none; }
 .hex-centre { grid-row:1; grid-column:1/-1; width:220px; margin:0 auto 10px; }
 .hex-level,.network-level { grid-row:2; display:flex; flex-direction:column; gap:24px; }
 .hex-theme,.network-level .hex-theme { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
 .research-symbol { order:-1; width:130px; }
 .hex-level-heading { min-height:85px; width:100%; }
 .agenda-grid { grid-template-columns:1fr; }
 .agenda-grid article { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
 .agenda-grid figure { grid-column:1; grid-row:1/4; height:220px; margin:0; }
 .agenda-grid article > span,.agenda-grid h3,.agenda-grid p { grid-column:2; }
 .standards-research { gap:24px; }.research-invitation { align-items:flex-start; }
}
@media(max-width:600px) {
 .hex-intro { text-align:left; margin-bottom:28px; }.hex-intro > p:last-child { font-size:16px; }
 .hex-map { grid-template-columns:1fr; gap:30px; }.hex-centre { grid-column:1; width:210px; }
 .hex-level,.network-level { grid-row:auto; gap:26px; }.hex-level-heading { min-height:0; padding-bottom:16px; }
 .hex-theme,.network-level .hex-theme { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:center; gap:16px; }
 .research-symbol,.network-level .research-symbol { grid-column:1; grid-row:1; width:90px; }
 .hex-copy,.network-level .hex-copy { grid-column:2; grid-row:1; }
 .mobility-page .hex-copy h3 { font-size:17px; }
 .hex-bridge { gap:12px; font-size:12px; text-align:center; }
 .agenda-grid article { display:block; }.agenda-grid figure { height:200px; margin-bottom:18px; }
 .agenda-grid { gap:36px; }.standards-research { grid-template-columns:1fr; }
 .standards-links { grid-column:1; }.research-invitation { flex-direction:column; gap:18px; }
}

.mobility-page .detail-faculty:only-child { grid-column: 1 / -1; max-width: 650px; }
