/* Conference Program（2026-10-03 新設。暫定プログラム）
 *
 * 日付・時刻・内容の 3 列の表。書体はサイト本文と同じ Inter だけを使う。
 * 日付と時刻は rowspan でまとめ、日ごとに太い線で区切る。
 * 640px 以下では日付の列を隠し、各日の先頭に日付の行（.pg-dayrow）を出す。
 * 2026-10-15 から時刻入り。各論文のセッション割り当ては未定なので、ここでは載せない。
 */

.pg {
  --pg-ink: #1a2233;
  --pg-ink-2: #5b6576;
  --pg-line: #e4e8ee;
  --pg-line-strong: #c9d0db;
  --pg-head: #f3f5f8;
  background: var(--bg-light, #f8f9fa);
  color: var(--pg-ink);
  padding: 4.5rem 1.5rem 5.5rem;
}
.pg-wrap { width: min(980px, 100%); margin: 0 auto; }

/* ---------- Intro ---------- */
.pg-intro { margin-bottom: 2rem; }
.pg-eyebrow {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--theme-primary);
  margin: 0 0 0.6rem;
}
.pg-intro h2 {
  font-size: clamp(1.6rem, 3.4vw, 2.2rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0 0 0.6rem;
}
.pg-lead { font-size: 1rem; line-height: 1.7; color: var(--pg-ink-2); margin: 0; }

/* ---------- Table ---------- */
.pg-table-wrap {
  background: #fff;
  border: 1px solid var(--pg-line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 25, 45, 0.05);
}
.pg-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.97rem;
  line-height: 1.5;
}
.pg-table thead th {
  background: var(--pg-head);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pg-ink-2);
  text-align: left;
  padding: 0.85rem 1.25rem;
  border-bottom: 1px solid var(--pg-line-strong);
}
.pg-table td,
.pg-table tbody th {
  text-align: left;
  vertical-align: top;
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-table tbody + tbody { border-top: 2px solid var(--pg-line-strong); }
.pg-table tbody:last-child tr:last-child > * { border-bottom: 0; }

.pg-col-date { width: 11.5rem; }
.pg-col-time { width: 8.5rem; }

/* 日付のセル（rowspan） */
.pg-date { font-weight: 400; }
.pg-date__md { display: block; font-size: 1.05rem; font-weight: 700; color: var(--pg-ink); }
.pg-date__wd { display: block; font-size: 0.85rem; color: var(--pg-ink-2); }

/* 時刻のセル（rowspan） */
.pg-time {
  font-weight: 600;
  color: var(--theme-primary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  border-left: 1px solid var(--pg-line);
}
.pg-event { font-weight: 500; border-left: 1px solid var(--pg-line); }
.pg-event--quiet { color: var(--pg-ink-2); font-weight: 400; }
.pg-event a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--pg-line-strong);
  text-underline-offset: 0.2em;
}
.pg-event a:hover,
.pg-event a:focus-visible { color: var(--theme-primary); text-decoration-color: currentColor; }
.pg-event__sub { color: var(--pg-ink-2); font-weight: 400; }

.pg-table .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* 狭い画面だけで出す日付の行 */
.pg-dayrow { display: none; }

/* ---------- Note ---------- */
.pg-note {
  margin: 1.25rem 0 0;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--pg-ink-2);
}
.pg-note strong { color: var(--pg-ink); }

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
  .pg { padding: 3rem 1rem 4rem; }
  .pg-table { font-size: 0.93rem; }
  .pg-table thead { display: none; }
  .pg-date { display: none; }
  /* 日付のセルを隠すと列が左に詰まるので、列幅の指定も外す */
  .pg-col-date, .pg-col-time { width: auto; }
  .pg-dayrow { display: table-row; }
  .pg-dayrow th {
    background: var(--pg-head);
    padding: 0.7rem 1rem;
    font-size: 0.95rem;
    font-weight: 700;
    border-bottom: 1px solid var(--pg-line-strong);
  }
  .pg-dayrow span { font-weight: 400; color: var(--pg-ink-2); margin-left: 0.4rem; }
  .pg-table td { padding: 0.65rem 1rem; }
  .pg-time { border-left: 0; width: 5.5rem; }
}

/* ---------- 2026-10-15 時刻入りの日程 ---------- */
/* 終わりの時刻。広い画面では「09:00–10:15」と 1 行、狭い画面では 2 行に分ける */
.pg-time__end { font-weight: 500; }
/* セッションの番号はチップで並べる。オンラインは塗りの色を変える */
.pg-chips { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; list-style: none; margin: 0 0 0 0.5rem; padding: 0; vertical-align: 0.05em; }
.pg-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.1rem 0.6rem;
  border: 1px solid var(--pg-line-strong);
  border-radius: 999px;
  background: var(--pg-head);
  font-size: 0.82rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--pg-ink);
  line-height: 1.5;
}
.pg-chip--online { border-color: var(--theme-primary); background: #fff; color: var(--theme-primary); }
.pg-chip--online span { font-size: 0.72rem; font-weight: 500; }
.pg-note .pg-chip { font-size: 0.78rem; }

/* 11/26 午前だけ、セッションと並ぶ講堂の催しを右の列に出す */
.pg-col-side { width: 15rem; }
.pg-side { border-left: 1px solid var(--pg-line); background: #fbfcfd; font-weight: 500; }
.pg-side__place {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pg-ink-2);
  margin-bottom: 0.2rem;
}
.pg-side__time { display: block; font-weight: 600; color: var(--theme-primary); font-variant-numeric: tabular-nums; }
.pg-side a { color: inherit; text-decoration: underline; text-decoration-color: var(--pg-line-strong); text-underline-offset: 0.2em; }
.pg-side a:hover, .pg-side a:focus-visible { color: var(--theme-primary); text-decoration-color: currentColor; }
.pg-side .pg-event__sub { display: block; }
@media (max-width: 640px) {
  .pg-time__end { display: block; color: var(--pg-ink-2); }
  .pg-chips { display: flex; gap: 0.25rem; margin: 0.35rem 0 0; }
  .pg-chip { padding: 0.05rem 0.45rem; font-size: 0.76rem; }
  /* 日付のセルが消えて列が 1 つ左に詰まるので、幅は列でなく右の列のセルに付ける */
  .pg-col-side { width: auto; }
  .pg-table td.pg-side { width: 32%; padding: 0.65rem 0.6rem; font-size: 0.85rem; }
}
