/* Custom styles for academic site */

/* Page width: cap the body at a comfortable reading width and let any
   extra horizontal space split evenly between left/right gutters (so the
   content is centered, never touches the screen edge, and never feels
   too wide). */
@media (min-width: 992px) {
  .quarto-container.page-columns {
    grid-template-columns:
      [screen-start] 2em
      [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start]
      minmax(500px, 1150px)
      [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset]
      minmax(2em, 1fr)
      [screen-end];
  }
}

/* Trestles about-block: keep the left column compact and don't let it
   stretch to match the (long) right column. */
@media (min-width: 992px) {
  .quarto-about-trestles {
    align-items: flex-start;
  }
  .quarto-about-trestles .about-entity {
    max-width: 280px;
    padding-right: 0.5em;
  }
}

/* About page image sizing */
@media (min-width: 992px) {
  .about-entity .about-image {
    max-width: 220px;
  }
}

/* Typography */
p { line-height: 1.7; }

strong { color: #1a1a1a; }

/* Section dividers — subtle, not red */
hr {
  border: none;
  border-top: 1px solid #eaeaea;
  margin: 2em 0;
}

/* Headings — quiet, no red underline */
h2 {
  margin-top: 1.8em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid #ececec;
  font-weight: 600;
}

h3 {
  color: #2c3e50;
  margin-top: 1.4em;
}

/* Links — the one place we keep the OSU scarlet accent */
a {
  color: #c41230;
  text-decoration: none;
}

a:hover {
  color: #8b0000;
  text-decoration: underline;
}

/* Tables (CV) */
table { width: 100%; margin: 1em 0; }

th {
  text-align: left;
  border-bottom: 1px solid #d0d0d0;
  padding: 0.5em 0.75em;
  font-weight: 600;
}

td {
  padding: 0.5em 0.75em;
  border-bottom: 1px solid #eee;
}

tr:hover td { background-color: #f8f8f8; }

/* Navbar */
.navbar {
  font-size: 0.95rem;
  border-bottom: 1px solid #ececec;
}

.navbar-brand { font-weight: 700; }

/* Footer */
.nav-footer { border-top: 1px solid #ececec; }

/* Blockquotes */
blockquote {
  border-left: 3px solid #d0d0d0;
  background: #fafafa;
  padding: 0.8em 1.2em;
  margin: 1em 0;
}

/* Publication grid: keep thumbnails compact on desktop, responsive on mobile. */
.grid img {
  max-width: 100%;
  height: auto;
  border-radius: 3px;
}

@media (min-width: 992px) {
  .g-col-md-3 img {
    max-width: 180px;
  }
}

.grid {
  align-items: center;
  margin-bottom: 1.5em;
}

/* Older News disclosure — neutral, no red */
details { margin: 1em 0; }

details summary {
  cursor: pointer;
  font-weight: 600;
  color: #2c3e50;
  padding: 0.4em 0;
  list-style: none;
}

details summary::-webkit-details-marker { display: none; }

details summary::before {
  content: "▸ ";
  display: inline-block;
  width: 1em;
}

details[open] summary::before { content: "▾ "; }
