@charset "UTF-8";
/* Instructions for Presenters (English) */

/* ---------- 箇条書き ---------- */
.ul-middle-dot {
  margin: 0.5rem 0 0 0;
  padding: 0;
  list-style: none;
}
.ul-middle-dot li {
  position: relative;
  padding-left: 1.1em;
  margin-bottom: 0.4em;
  line-height: 1.6;
}
.ul-middle-dot li::before {
  content: '\30FB';
  position: absolute;
  left: 0;
}
.ol-paren {
  margin: 0 0 0 0.25em;
  padding: 0;
  list-style: none;
  counter-reset: ol-paren-counter;
}
.ol-paren > li {
  counter-increment: ol-paren-counter;
  position: relative;
  padding-left: 1.75em;
  margin-bottom: 0.5em;
  line-height: 1.6;
}
.ol-paren > li::before {
  content: counter(ol-paren-counter) ')';
  position: absolute;
  left: 0;
}
.bg-light {
  background-color: #fcfcfd !important;
}

/* ---------- 小見出し（1) 2) …） ---------- */
.ip-sub {
  margin: 1.6rem 0 0.5rem;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.5;
  color: #19204d;
}
.ip-sub:first-child {
  margin-top: 0;
}
.ip-sub-num {
  margin-right: 0.35em;
}
.ip-p {
  margin: 0 0 0.6rem;
  line-height: 1.8;
}

/* ---------- 発表時間の一覧 ---------- */
.ip-times {
  margin: 0 0 0.8rem;
}
.ip-times dt {
  font-weight: 700;
  line-height: 1.6;
}
.ip-times dd {
  /* 説明文も見出しと同じ左位置にそろえる */
  margin: 0.15rem 0 0.7rem 0;
  line-height: 1.6;
}

/* ---------- 表 ---------- */
.ip-table {
  width: 100%;
  margin: 0;
  background: #fff;
}
.ip-table th,
.ip-table td {
  vertical-align: middle;
  padding: 0.55rem 0.75rem;
  line-height: 1.6;
  font-size: 0.95rem;
}
.ip-table th {
  width: 11em;
  background: #f7f7f7;
  font-weight: 600;
}
.ip-table-poster th {
  width: 13em;
}

/* ---------- PC受付（会場ごと） ---------- */
.ip-pv-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
  /* 上は本文と離し、下の注記とは近づけて「ひとかたまり」に見せる */
  margin: 1rem 0 0.5rem;
}
@media (min-width: 768px) {
  /* 2列のときは「見出しの段」「表の段」に分けて置き、見出しが2行でも表の頭をそろえる */
  .ip-pv-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    grid-auto-flow: column;
    column-gap: 1.1rem;
    row-gap: 0.25rem;
  }
  .ip-pv-grid > div {
    display: contents;
  }
  .ip-pv-grid .ip-pv-ttl {
    margin-bottom: 0;
  }
}
.ip-pv-ttl {
  font-weight: 700;
  margin: 0 0 0.4rem;
  line-height: 1.5;
  align-self: end;
}
/* 受付名と会場名を必ず2段に分け、左右の見出しの形をそろえる */
.ip-pv-no,
.ip-pv-place {
  display: block;
}
.ip-pv-no {
  font-size: 0.9rem;
  color: #0c6577;
  letter-spacing: 0.02em;
}
.ip-pv-grid .ip-table th {
  width: 9em;
}
/* p.ab-note 側が !important を使っているので、同じ強さで上書きする */
p.ab-note.ip-pv-note {
  margin-top: 0.4rem !important;
  margin-bottom: 1.6rem !important;
}

/* ---------- ポスターパネルの図（クリックで拡大） ---------- */
.ip-zoom {
  display: inline-block;
  padding: 0.4rem;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  background: #fff;
  cursor: zoom-in;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.ip-zoom:hover,
.ip-zoom:focus {
  border-color: #17a2b8;
  box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.2);
  outline: none;
}
.ip-zoom img {
  display: block;
  width: 280px;
  max-width: 100%;
  height: auto;
}
.ip-zoom-hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  color: #0c6577;
  font-weight: 600;
}
.ip-lightbox {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100000;
  background: rgba(0, 0, 0, 0.78);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.2rem 1rem 1rem;
  cursor: zoom-out;
}
.ip-lightbox[hidden] {
  display: none !important;
}
.ip-lightbox img {
  /* 図は透過PNGなので、暗い背景でも線が見えるよう白地を敷く */
  background: #fff;
  padding: 12px;
  border-radius: 4px;
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  width: auto;
  object-fit: contain;
  cursor: default;
}
.ip-lightbox-close {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #212529;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.ip-noscroll {
  overflow: hidden;
}

/* ---------- 狭い画面 ---------- */
@media (max-width: 575px) {
  .ip-table th,
  .ip-table td {
    padding: 0.5rem;
    font-size: 0.88rem;
  }
  .ip-table th {
    width: 8.5em;
  }
  .ip-table-poster th {
    width: 9em;
  }
}
