body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.page-heading { padding-block: 25px 30px; background: var(--soft); border-bottom: 1px solid var(--line); }
.page-heading nav { font-size: calc(12px * var(--text-scale, 1)); color: var(--muted); margin-bottom: 16px; }
.page-heading h1 { font-family: 'Noto Sans', 'Noto Sans Devanagari', sans-serif; font-size: clamp(25px, 3vw, 38px); line-height: 1.4; color: var(--brand); font-weight: 600; max-width: 1040px; margin: 0; overflow-wrap: anywhere; }
.page-layout { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 32px; align-items: start; padding-block: 32px 48px; }
.gh-content { background: var(--surface); border: 1px solid var(--line); padding: 28px; min-width: 0; font-size: calc(14px * var(--text-scale, 1)); line-height: 1.85; }
.gh-content:empty { display: none; }
.gh-content h2, .gh-content h3, .gh-content h4 { color: var(--brand); line-height: 1.5; }
.gh-content h2 { font-size: calc(22px * var(--text-scale, 1)); margin-block: 28px 16px; }
.gh-content h3 { font-size: calc(18px * var(--text-scale, 1)); margin-block: 24px 12px; }
.gh-content h4 { font-size: calc(16px * var(--text-scale, 1)); }
.gh-content p, .gh-content li { line-height: 1.85; }
.gh-content > :first-child { margin-top: 0; }
.gh-content [style*="color:"] { color: inherit !important; }
.gh-content [style*="background"] { background: transparent !important; }
.gh-content a { color: var(--brand) !important; text-decoration: underline; text-underline-offset: 3px; }
.gh-content a[href$=".pdf"]::after { content: 'PDF'; display: inline-block; font-size: calc(9px * var(--text-scale, 1)); font-weight: 600; border: 1px solid var(--line); padding: 0 4px; margin-left: 7px; vertical-align: middle; text-decoration: none; }
.gh-content li { margin-block: 7px; }
.gh-content ul, .gh-content ol { padding-left: 23px; }
.gh-content figure { margin-block: 22px; }
.gh-content img { max-width: 100%; height: auto; max-height: 660px; object-fit: contain; }
.gh-content figure > a { display: block; }
.gh-content figure > a img { margin-inline: auto; }
.gh-content iframe, .gh-content video { max-width: 100%; }
.gh-content blockquote { border-left: 3px solid var(--accent); background: var(--soft); padding: 16px 20px; margin: 22px 0; }
.table-scroll { width: 100%; overflow-x: auto; margin-block: 20px; scrollbar-width: thin; }
.table-scroll table { display: table; width: 100%; max-width: none; overflow: visible; border-collapse: collapse; margin: 0; }
.table-scroll th, .table-scroll td { padding: 13px; border: 1px solid var(--line); vertical-align: top; font-size: calc(13px * var(--text-scale, 1)); text-align: left; }
.table-scroll th { background: var(--soft); color: var(--brand); font-weight: 600; }
.table-scroll tbody > tr:nth-child(even) { background: var(--soft); }
.gh-content[data-slug="funded-research-projects"] table { min-width: 900px; }
.gh-content[data-slug="funded-research-projects"] tr:first-child { background: var(--soft); font-weight: 600; }
.gh-content[data-slug="funded-research-projects"] td:nth-child(5) { min-width: 75px; }
.gh-content[data-slug="funded-research-projects"] td:nth-child(n+6) { min-width: 100px; }
.gh-content[data-slug="notices"] td:first-child, .gh-content[data-slug="archive"] td:first-child, .gh-content[data-slug="events-highlights"] td:first-child { min-width: 110px; color: var(--brand); font-weight: 600; }
.page-aside { position: sticky; top: 20px; border-top: 3px solid var(--secondary); background: var(--surface); padding: 20px; }
.page-aside h2 { font-size: calc(17px * var(--text-scale, 1)); margin-bottom: 10px; }
.page-aside a { display: block; border-bottom: 1px solid var(--line); padding-block: 11px; font-size: calc(12px * var(--text-scale, 1)); }
.page-aside a.is-active { color: var(--brand); font-weight: 700; }
.primary-nav a.is-active { color: var(--brand); text-decoration: underline; text-underline-offset: 5px; }
.section-links { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 22px; }
.section-links h2 { font-size: calc(19px * var(--text-scale, 1)); margin-top: 0; }
.section-links__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.section-links__grid a { display: block; padding: 16px; border: 1px solid var(--line); border-left: 3px solid var(--accent); background: var(--soft); font-size: calc(13px * var(--text-scale, 1)); text-decoration: none; }
.section-links__grid a:hover { text-decoration: underline; }
.document-list > p:has(> a), .document-list > p:has(> strong > a) { padding-block: 12px; border-bottom: 1px solid var(--line); margin: 0; }
.faculty-grid { display: grid; gap: 20px; }
.faculty-card { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 20px; padding: 20px; border: 1px solid var(--line); border-top: 3px solid var(--secondary); }
.faculty-card__portrait img { width: 120px; max-height: 160px; object-fit: contain; object-position: top; }
.faculty-card__portrait p { margin: 0; line-height: 0; }
.faculty-card__details p { margin-bottom: 10px; }
.faculty-card__contact { grid-column: 2; padding-top: 10px; border-top: 1px solid var(--line); font-size: calc(12px * var(--text-scale, 1)); }
.faculty-card__contact p { margin-bottom: 8px; }
.gallery-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.gallery-content > :not(figure) { grid-column: 1 / -1; }
.gallery-content > figure { margin: 0; padding: 12px; border: 1px solid var(--line); background: var(--soft); }
.gallery-content > figure img { max-height: 430px; }
.gh-content:is([data-slug="director"], [data-slug="joint-director"], [data-slug="director-s-message"]) > figure:first-of-type { float: left; width: 180px; margin: 0 25px 20px 0; }
.gh-content:is([data-slug="director"], [data-slug="joint-director"], [data-slug="director-s-message"])::after { content: ''; display: block; clear: both; }
.site-directory { padding-block: 30px 48px; }
.site-directory > p { color: var(--muted); }
.site-directory h2 { font-size: calc(21px * var(--text-scale, 1)); color: var(--brand); margin-top: 30px; }
.site-directory ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 20px; }
.site-directory li { min-width: 0; }
.site-directory li a { display: block; padding: 12px 15px; background: var(--surface); border: 1px solid var(--line); font-size: calc(13px * var(--text-scale, 1)); }
.site-directory .directory-filter { width: min(100%, 480px); font: inherit; padding: 11px 14px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
@media (max-width: 1050px) {
  .page-layout { grid-template-columns: minmax(0, 1fr) 200px; gap: 20px; }
  .gh-content { padding: 22px; }
  .faculty-card { grid-template-columns: 100px minmax(0, 1fr); padding: 15px; gap: 15px; }
}
@media (max-width: 800px) {
  .page-layout { grid-template-columns: 1fr; }
  .page-aside { position: static; }
  .site-directory ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 550px) {
  .gh-content { padding: 18px; font-size: calc(13px * var(--text-scale, 1)); }
  .page-heading { padding-block: 22px; }
  .page-layout { padding-block: 22px 32px; }
  .section-links__grid, .gallery-content, .site-directory ul { grid-template-columns: 1fr; }
  .table-scroll th, .table-scroll td { font-size: calc(12px * var(--text-scale, 1)); padding: 10px; }
  .faculty-card { grid-template-columns: 1fr; }
  .faculty-card__contact { grid-column: 1; }
  .faculty-card__portrait img { width: 110px; max-height: 130px; }
  .gh-content:is([data-slug="director"], [data-slug="joint-director"], [data-slug="director-s-message"]) > figure:first-of-type { float: none; width: 150px; margin: 0 0 20px; }
}
