@charset "UTF-8";
/* ==============================
   プログラム（program.html）・一般演題（poster.html）2026-10-21 新設
   原稿は平田様「学術大会プログラム_役職確認中.docx」（2026-10-16 受領）
   参加者へのご案内と同じ作り: 節見出し → 薄い水色の帯 → 白いカード（.note-card）
   文字は 32／24／18 の3段・太さは 400／900・余白は 8／16／24／32／48・線は #dde3e8・名前（セッション名・演題名）は濃い水色 #0080a6
   css/32jsce-site.css の後に読み込む（共通CSSは触らない）
   ============================== */

/* ---------- 冒頭: 開催日（節見出し）→ 会場・閲覧時間 → 帯（間は 24） ---------- */
.reg .pg-day {
  gap: 16px;
}

.reg .pg-day span {
  line-height: inherit;
}

.pg-lead + .reg__band {
  margin-top: 24px;
}

/* カードの中は本文と同じ 18px（.note-card p の 16px を使わない） */
.reg :is(.pg__card, .ps-item) p {
  font-size: var(--fs-body);
  line-height: 1.8;
}

/* 見出しの中の句（.nobr）は見出しの行間のまま（span の 1.8 を受けない） */
.reg .pg__name span {
  line-height: inherit;
}

/* 演題名・テーマの副題（～…～ ／ ―…―）: 1行に入る幅なら途中で折らずに次の行へ送る。入らない幅では句ごとに折り返す */
.reg .tsub {
  display: inline-block;
  max-width: 100%;
}

/* 座長・演者・発表者の所属（〜）: 名前の横に入りきらないときは所属をまとめて次の行へ送る。
   行頭に来た「（」は左の空き（半角分）を詰めて、名前の左端とそろえる（名前の右の 0.5em と相殺するので、同じ行のときの見た目は変わらない） */
.reg .aff {
  display: inline-block;
  max-width: 100%;
}

.reg .aff > .nobr:first-child {
  margin-left: -0.5em;
}

.reg .aff-name {
  margin-right: 0.5em;
}

/* PC・タブレットは幅に余裕があるので、所属も名前の横から続けて流す */
@media (min-width: 601px) {
  .reg .aff {
    display: inline;
  }

  .reg .aff-name,
  .reg .aff > .nobr:first-child {
    margin: 0;
  }
}

/* ---------- 時間割（program.html） ---------- */
.pg {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* 1行 = 左に時間・右にカード。時間はカードの1行目（セッション名）とベースラインをそろえる */
.pg__row {
  display: grid;
  grid-template-columns: 6.5em minmax(0, 1fr);
  column-gap: 24px;
  align-items: baseline;
}

.reg .pg__time {
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.reg .pg__card {
  margin-top: 0;
}

/* 休憩: カードにせず、カードの中の文字の左端にそろえる */
.reg .pg__break {
  margin-top: 0;
  padding: 0 24px;
}

/* セッション名（1行目）とテーマ（2行目） */
.reg .pg__name {
  font-size: clamp(20px, 2.4vw, 24px);
  font-weight: 900;
  line-height: 1.4;
  color: var(--reg-cyan);
}

.pg__name-line {
  display: block;
}

/* 共催・座長・演者・挨拶: ラベル＋名前。名前が折り返しても頭をそろえる */
.pg__meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 16px;
}

.pg__meta > div {
  display: contents;
}

.pg__meta dt {
  white-space: nowrap;
}

.pg__name + .pg__meta {
  margin-top: 16px;
}

/* 演題（①②③）: 座長の下 24・演題どうし 24・演題名と演者の間 8 */
.pg__talks {
  margin-top: 24px;
}

.pg__talk + .pg__talk {
  margin-top: 24px;
}

.reg .pg__title {
  font-weight: 900;
  color: var(--reg-cyan);
}

.pg__title--no {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 8px;
}

.pg__title + .pg__meta {
  margin-top: 8px;
}

/* ---------- 一般演題（poster.html）: 1件 = 白いカード。左に番号、右に演題名・発表者 ---------- */
.ps-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.reg .ps-item {
  display: grid;
  grid-template-columns: 2.5em minmax(0, 1fr);
  column-gap: 16px;
  align-items: baseline;
  margin-top: 0;
}

.reg .ps-item__no {
  font-weight: 900;
  white-space: nowrap;
}

.reg .ps-item__title {
  font-weight: 900;
  color: var(--reg-cyan);
}

.reg .ps-item .ps-item__who {
  margin-top: 8px;
}

/* ---------- スマホ ---------- */
@media (max-width: 600px) {
  /* 時間をカードの上に置いて1列に。行どうしは 24・時間とカードの間は 8 */
  .pg {
    gap: 24px;
  }

  .pg__row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 8px;
  }

  /* 休憩は短いので時間の横に置いたまま */
  .pg__row--break {
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 16px;
  }

  .reg .pg__break {
    padding: 0;
  }

  /* スマホの節見出しの段（参加登録ページと同じ min(20px, 5vw)） */
  .reg .pg__name {
    font-size: min(20px, 5vw);
  }

  .pg__meta,
  .reg .ps-item {
    column-gap: 8px;
  }
}

/* ---------- 2026-10-21 Shun指示: 2列をやめ、PCも「大きな時刻 → 内容のカード」を縦に並べる（スマホと同じ並び）
   時刻はセッション名と同じ大きさ。時刻とカードの間は 8・行どうしは 24。休憩は短いので時刻の横に置いたまま ---------- */
.pg { gap: 24px; }
.pg__row { grid-template-columns: minmax(0, 1fr); row-gap: 8px; }
.pg__row--break { grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; }
.reg .pg__break { padding: 0; }
.reg .pg__time { font-size: clamp(20px, 2.4vw, 24px); line-height: 1.4; }
@media (max-width: 600px) {
  .reg .pg__time { font-size: min(20px, 5vw); }
}

/* 共催: 時刻の行の右端（カードの右端）に置き、時刻とベースラインをそろえる（2026-10-21 Shun指示）。入りきらないときは次の行の右端へ */
.pg__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 16px;
}
.reg .pg__co {
  margin: 0 0 0 auto;
  text-align: right;
}
.pg__co-label { margin-right: 16px; }
.pg__co-name { white-space: nowrap; }
.pg__co-name .nobr { display: inline; }
@media (max-width: 600px) {
  .pg__co-label { margin-right: 8px; }  /* スマホの「座長」「演者」と名前の間と同じ */
}

/* 一般演題: 番号の右に並べるのをやめ、番号の下に間をあけて演題名・発表者を置く（2026-10-21 Shun指示）。番号→演題名 16・演題名→発表者 8 */
.reg .ps-item { display: block; }
.reg .ps-item .ps-item__body { margin-top: 16px; }

/* 学術大会プログラム⇔一般演題の行き来: 節見出しの右端にテキストリンク（見出しの文字とベースラインをそろえる）。スマホは入りきらないので次の行の右端（2026-10-21 Shun指示） */
.reg .reg__h3--link { align-items: baseline; }
@media (max-width: 600px) {
  .reg .reg__h3--link .reg__h3-links { justify-content: flex-end; }
}

/* 行き来のテキストリンク: タイトルのすぐ下に中央寄せ（タイトル→16→リンク→48→本文）（2026-10-21 Shun指示） */
.reg .reg__title + .pg-xlink { margin: -32px 0 48px; }

/* 行き来のテキストリンクは閲覧時間（会場）の行の下・左揃え（閲覧時間→8→リンク→24→帯）（2026-10-21 Shun指示） */
.reg .pg-lead + .pg-xlink { margin-top: 8px; text-align: left; }
.reg .pg-xlink + .reg__band { margin-top: 24px; }

/* 一般演題: 閲覧時間の節見出しのすぐ下に行き来のリンク（見出しの下の 24 のあと）・左揃え */
.reg .reg__h3 + .pg-xlink { margin-top: 0; text-align: left; }

/* 閲覧時間の見出し: 下の区切り線なし・すぐ下（8）に行き来のリンク（2026-10-21 Shun指示） */
.reg .reg__h3--plain { padding-bottom: 0; margin-bottom: 8px; border-bottom: 0; }

/* 学術大会プログラム: 青い帯の先頭の「学術大会 1月8日(金)」（節見出しと同じ文字・区切り線なし・下の時刻との間 24）（2026-10-21 Shun指示） */
.reg .pg-band-day { padding-bottom: 0; margin: 0 0 24px; border-bottom: 0; }

/* 共催の企業名: ウェイトをこのページで使っているひとつ上の 900 に（新しい太さは足さない・400／900 の2段のまま）（2026-10-21 Shun指示） */
.reg .pg__co,
.reg .pg__co span { font-weight: 900; }  /* 「共催」も企業名も同じ 900 */

/* 学術大会プログラム・一般演題の帯: トップ（協賛・開催日）と同じ淡いグラデーション（2026-10-21 Shun指示） */
.reg .pg-band { background: linear-gradient(135deg, #d7ebfe 0%, #ddf0ff 30%, #e9eeff 65%, #f5ebff 100%); }

/* 学術大会プログラム: 行き来のリンクは帯の右端にそろえる（帯との間 16）。帯の中は「学術大会 1月8日(金)」→8→会場（本文）→24→時刻（2026-10-21 Shun指示） */
.reg .pg-xlink--right { margin: 0 0 16px; text-align: right; }
.reg .pg-xlink--right + .reg__band { margin-top: 0; }
.reg .pg-band-day { margin-bottom: 8px; }
.reg .pg-band-venue { margin: 0 0 24px; }

/* セッション名: 参加登録ページのコース名（.acc__name）と同じ本文サイズに下げ、下に区切り線（中身が続くカードだけ・線の上下 16）（2026-10-21 Shun指示・試し） */
.reg .pg__name { font-size: var(--fs-body); line-height: 1.6; }
.reg .pg__name:not(:last-child) { padding-bottom: 16px; border-bottom: 1px solid var(--reg-line); }
@media (max-width: 600px) {
  .reg .pg__name { font-size: var(--fs-body); }
}

/* 学術大会プログラム: 会場の下に「参加登録はこちら」のテキストリンク（会場→8→リンク→24→時刻・左揃え）（2026-10-21 Shun指示） */
.reg .pg-band-venue:has(+ .pg-band-entry) { margin-bottom: 0; }
.reg .pg-band-entry { margin: 8px 0 24px; text-align: left; }
