/* Homepage layout: preserve the academic page and normalize nested desktop geometry. */
body.homepage-layout {
  --homepage-page-width: 1080px;
  --homepage-ink: #30343b;
  --homepage-rule: #e5e7eb;
}

body.homepage-layout a:focus-visible,
body.homepage-layout button:focus-visible {
  outline: 2px solid #1a73e8;
  outline-offset: 4px;
}

/* These are the original controls and cards, with one consistent edge/rhythm. */
body.homepage-layout .section-divider { border-top-color: var(--homepage-rule); }
body.homepage-layout .pub-card { border-radius: 5px; }
body.homepage-layout .pub-card:hover { transform: none; }
body.homepage-layout .pub-title { line-height: 1.4; }
body.homepage-layout .pub-authors,
body.homepage-layout .pub-meta { line-height: 1.45; }
body.homepage-layout .pub-cites { border-radius: 4px; }

@media (min-width: 1000px) {
  body.homepage-layout > .container,
  body.homepage-layout .navbar > .container {
    width: calc(100% - 64px) !important;
    max-width: var(--homepage-page-width) !important;
    padding: 0 !important;
    margin-inline: auto !important;
  }

  /* Only this outer row establishes the two columns. */
  body.homepage-layout > .container > .row {
    display: grid !important;
    grid-template-columns: 220px minmax(0, 1fr);
    column-gap: 52px;
    align-items: start;
    margin: 0 !important;
  }
  body.homepage-layout > .container > .row::before,
  body.homepage-layout > .container > .row::after { display: none; }

  /* Override the old global #main-content offsets at every nesting level. */
  body.homepage-layout #main-content,
  body.homepage-layout #sidebar,
  body.homepage-layout .col-md-3,
  body.homepage-layout .col-md-9,
  body.homepage-layout .col-md-12 {
    float: none !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
    position: relative !important;
  }
  body.homepage-layout > .container > .row > #main-content.col-md-3 {
    position: sticky !important;
    top: 70px !important;
    align-self: start;
  }
  body.homepage-layout #sidebar { display: block !important; }

  /* A nested .container must stay inside the reading column. */
  body.homepage-layout > .container .container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.homepage-layout > .container .container > .row {
    display: block !important;
    margin: 0 !important;
  }

  body.homepage-layout #logo_h2.site-logo {
    position: relative;
    left: auto;
    padding-left: 0 !important;
    margin-left: 92px !important;
  }
  body.homepage-layout #profile-header {
    display: block !important;
    width: 100% !important;
    padding: 8px 0 22px;
    margin: 0;
    box-shadow: none;
  }
  body.homepage-layout #profile-header h1 { line-height: 1.2; }
  body.homepage-layout #profile-header h2 { line-height: 1.55; }
  body.homepage-layout #profile-header h2:last-child {
    max-width: 590px;
    margin-inline: auto !important;
  }
  body.homepage-layout #sidebar .desktop-profile-avatar {
    width: 180px;
    max-width: 180px !important;
    height: auto;
    margin: 0 auto !important;
  }
  body.homepage-layout #sidebar .desktop-avatar-container { margin-bottom: 22px; }
  body.homepage-layout #sidebar .sidebar-desktop { width: 100%; }

  /* Set the same actual size on both nested bio wrappers: no em compounding. */
  body.homepage-layout .bio-text {
    font-size: 14px !important;
    line-height: 1.7 !important;
    letter-spacing: 0;
    color: var(--homepage-ink);
  }
}

@media (min-width: 1000px) and (max-width: 1199px) {
  body.homepage-layout > .container > .row {
    grid-template-columns: 200px minmax(0, 1fr);
    column-gap: 36px;
  }
  body.homepage-layout #logo_h2.site-logo { margin-left: 82px !important; }
}

@media (max-width: 999px) {
  /* Retain the original compact portrait/name row and original section order. */
  body.homepage-layout .bio-text {
    font-size: 12px !important;
    line-height: 1.7 !important;
    letter-spacing: 0;
    text-align: left !important;
  }
  body.homepage-layout .pub-card { gap: 10px; }
}

/* Bootstrap columns switch at 992px, but this site's mobile profile switches
   at 1000px. Keep the narrow 992–999 interval in the existing stacked layout. */
@media (min-width: 992px) and (max-width: 999px) {
  body.homepage-layout > .container {
    width: 100%;
    max-width: 100%;
  }
  body.homepage-layout > .container > .row > #main-content.col-md-3,
  body.homepage-layout > .container > .row > #main-content.col-md-9,
  body.homepage-layout #sidebar.col-md-3 {
    float: none;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  body.homepage-layout > .container > .row > .col-md-9 .container {
    width: 100%;
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.homepage-layout .pub-card { transition: none; }
}
