/* Presentations table: Date, Title, Core concepts, Format, Event, Request.
   Wide screens get a table; phones get one card per presentation. */
.pres-lead { margin: -.5rem 0 1.5rem; opacity: .85; max-width: 38rem; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pres-table { width: 100%; border-collapse: collapse; font-size: .96rem; }
.pres-table thead th {
  text-align: left; font-size: .8rem; font-weight: 600; letter-spacing: .02em; opacity: .7;
  padding: 0 1rem .6rem 0; border-bottom: 1.5px solid var(--pres-accent, #222);
}
.pres-table td, .pres-table tbody th { text-align: left; vertical-align: top; padding: 1.1rem 1rem 1.1rem 0; border-bottom: 1px solid var(--rule, rgba(0,0,0,.15)); }
.p-date { white-space: nowrap; font-weight: 600; font-variant-numeric: tabular-nums; }
.pres-table tbody th.p-title { font-size: 1.12rem; font-weight: 600; line-height: 1.3; min-width: 11rem; }
.p-concepts { opacity: .85; min-width: 14rem; max-width: 24rem; line-height: 1.45; }
.p-format, .p-event { line-height: 1.4; }
.p-req { padding-right: 0 !important; text-align: right; }
.pres-btn {
  display: inline-block; white-space: nowrap; background: var(--pres-accent, #222); color: var(--pres-on, #fff);
  text-decoration: none; font-weight: 600; font-size: .92rem; padding: .55rem 1.2rem; border-radius: 999px;
  border: 1.5px solid var(--pres-accent, #222); transition: background-color .15s, color .15s;
}
.pres-btn:hover { background: transparent; color: var(--pres-accent, #222); }
.pres-btn:focus-visible { outline: 2px solid var(--pres-accent, #222); outline-offset: 3px; }

@media (max-width: 52rem) {
  .pres-table thead { display: none; }
  .pres-table, .pres-table tbody, .pres-table tr, .pres-table td, .pres-table tbody th { display: block; width: auto; }
  .pres-table tr { padding: 1.25rem 0; border-bottom: 1px solid var(--rule, rgba(0,0,0,.15)); display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: .35rem 1rem; }
  .pres-table tr:first-child { border-top: 1.5px solid var(--pres-accent, #222); }
  .pres-table td, .pres-table tbody th { padding: 0; border: 0; }
  .pres-table tbody th.p-title { grid-column: 1 / -1; order: -1; font-size: 1.2rem; margin-bottom: .25rem; }
  .pres-table td[data-label]::before { content: attr(data-label); font-size: .82rem; font-weight: 600; opacity: .65; display: block; }
  .p-date, .p-format, .p-event, .p-concepts { grid-column: 1 / -1; display: grid !important; grid-template-columns: 6rem minmax(0, 1fr); gap: .75rem; max-width: none; min-width: 0; }
  .pres-table td[data-label]::before { display: inline; }
  .p-req { grid-column: 1 / -1; text-align: left; margin-top: .6rem; }
}
@media (prefers-reduced-motion: reduce) { .pres-btn { transition: none; } }
