/* ═══════════════════════════════════════
   ICSC 2026 — Book of Abstracts
   abstracts.css — loaded only by book-of-abstracts.html, after style.css
   (page layout reuses .page-header, .section, .sec-kicker, .sec-title, .intro,
    .section-divider from style.css; everything new is prefixed "boa-")
═══════════════════════════════════════ */

/* ── Anchors: keep headings clear of the fixed navbar ── */
.boa-anchor,
.boa-dayblock,
.boa-item,
#top { scroll-margin-top: calc(var(--nav-h) + 1.25rem); }

/* ── Index (links to the three parts and to each day) ── */
.boa-index {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1px;
  background: rgba(18,24,74,.12);
  border: 1px solid rgba(18,24,74,.12);
  margin-bottom: 3rem;
}
.boa-index-group {
  background: rgba(255,255,255,.7);
  padding: 1.5rem 1.6rem;
}
.boa-index-title {
  display: block;
  font-family: var(--font-mono); font-weight: 300;
  font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--navy); text-decoration: none;
  margin-bottom: .7rem;
}
.boa-index-group ul { list-style: none; }
.boa-index-group li a {
  display: block;
  padding: .22rem 0;
  font-size: .9rem; font-weight: 300;
  color: var(--navy-lt); text-decoration: none;
  transition: color var(--ease);
}
.boa-index-title:hover,
.boa-index-group li a:hover { color: var(--navy); text-decoration: underline; }

/* ── Day heading (the small "Day 1 · Tuesday" line above uses .sec-kicker) ── */
.boa-day {
  font-family: var(--font-mono); font-weight: 300;
  font-size: clamp(1.1rem, 2.4vw, 1.5rem);
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--navy); line-height: 1.1;
  margin-bottom: 1.2rem;
}

/* ── Session heading (papers) ── */
.boa-session {
  font-family: var(--font-mono); font-weight: 300;
  font-size: .72rem; letter-spacing: .1em; line-height: 1.55;
  text-transform: uppercase;
  color: var(--navy-mid);
  margin: 2.2rem 0 0;
  padding-bottom: .45rem;
  border-bottom: 1px solid rgba(18,24,74,.18);
}
.boa-group:first-of-type .boa-session { margin-top: 1.2rem; }

/* ── Entry ── */
.boa-item { padding: 1.5rem 0 1.6rem; }
.boa-item + .boa-item { border-top: 1px solid rgba(18,24,74,.1); }
.boa-session + .boa-item { padding-top: 1.3rem; }

.boa-label {
  display: block; margin-bottom: .35rem;
  font-family: var(--font-mono); font-weight: 300;
  font-size: .62rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--navy); opacity: .6;
}
.boa-title {
  font-family: var(--font-mono); font-weight: 300;
  font-size: .95rem; line-height: 1.5; letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: .35rem;
  overflow-wrap: break-word;
}

/* Paper titles are links to the PDF (opens in a new tab). They look like plain titles;
   a small "PDF" tag after the title shows that they can be clicked. */
.boa-title a,
.boa-title a:visited { color: inherit; text-decoration: none; }
.boa-title a:hover,
.boa-title a:focus-visible {
  color: #2f8fc7;
  text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px;
}
.boa-title a:focus-visible { outline-offset: 3px; }
.boa-title a::after {
  content: "PDF";
  display: inline-block;
  margin-left: .7em; padding: .12em .5em .06em;
  vertical-align: .15em;
  border: 1px solid currentColor; border-radius: 2px;
  font-size: .56rem; letter-spacing: .18em; line-height: 1.4;
  opacity: .55; white-space: nowrap; text-decoration: none;
  transition: opacity var(--ease);
}
.boa-title a:hover::after,
.boa-title a:focus-visible::after { opacity: .9; }
.boa-sub {
  font-size: .86rem; font-weight: 300;
  color: var(--navy); opacity: .7;
  margin: 0 0 .15rem;
}
.boa-authors {
  font-size: .86rem; font-weight: 300; font-style: italic;
  color: var(--navy); opacity: .7;
  margin: 0 0 .15rem;
}
.boa-authors span { display: block; }
.boa-meta {
  margin-top: .3rem;
  font-family: var(--font-mono); font-weight: 300;
  font-size: .66rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--navy); opacity: .65;
}

/* ── Abstract text ── */
.boa-abstract { margin-top: .85rem; max-width: 46rem; }
.boa-abstract p,
.boa-abstract li {
  font-size: .95rem; font-weight: 300; line-height: 1.72;
  color: var(--navy);
}
.boa-abstract p + p,
.boa-abstract p + ul,
.boa-abstract ul + p { margin-top: .75rem; }
.boa-abstract ul { margin: .75rem 0 0 1.3rem; list-style: disc outside; }
.boa-abstract a,
.boa-abstract a:visited { color: #2f8fc7; text-decoration: none; overflow-wrap: anywhere; }
.boa-abstract a:hover { text-decoration: underline; }
.boa-abstract p.boa-fn { margin-top: .6rem; font-size: .84rem; opacity: .85; }

/* Empty fields (to be filled in by hand) take no space */
.boa-authors:empty,
.boa-abstract:empty { display: none; }

/* ── Small screens ── */
@media (max-width: 720px) {
  .boa-index { grid-template-columns: 1fr; }
  .boa-index-group { padding: 1.2rem 1.3rem; }
  .boa-title { font-size: .88rem; }
  .boa-abstract p,
  .boa-abstract li { font-size: .93rem; }
}

/* ── Print / save as PDF ── */
@media print {
  .nav-wrapper, footer, .boa-index { display: none !important; }
  html { scroll-behavior: auto; }
  body { background: #fff !important; color: #000; font-size: 11pt; }
  main { padding-top: 0; }
  .content-bg { background: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .section { max-width: none; padding: 0; }
  .page-header { padding: 0 0 1rem; }
  .boa-item { break-inside: avoid; page-break-inside: avoid; }
  .boa-session, .boa-day, .sec-kicker, .sec-title { break-after: avoid; page-break-after: avoid; }
  .boa-part { break-before: page; page-break-before: always; }
  .boa-abstract { max-width: none; }
  .boa-title a::after { display: none; }
}
