/* =================================================================
 timetable
================================================================= */
.timetable {
  --stage-num: 8;
  --time-division-num: 7;
  //--box-height: 310px;
  --box-height: 340px;
  --timetable-gap: 4px;
  --tt-min-width: calc(250px * 8 + 4px * 7);
  --tt-min-width-sp: calc(220px * 8 + 4px * 7);
  --color-bg-odd: #EFF3FB;
  --color-bg-even: #F7F9FD;
}
.timetable .timetable-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto 1fr;
  column-gap: var(--timetable-gap);
  position: relative;
}
.timetable .datetime {
  display: flex;
  align-items: center;
  flex-flow: row nowrap;
  justify-content: center;
  font-weight: 600;
  font-size: 30px;
  gap: 0.3333333333em;
}
@media screen and (max-width: 1180px) {
  .timetable .datetime {
    font-size: 27px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .datetime {
    font-size: 23px;
  }
}
.timetable .datetime .week-day {
  font-size: 0.6666666667em;
}
.timetable .datetime .time {
  font-size: 0.8em;
}
.timetable .example-list {
  width: 100%;
  max-width: 720px;
  display: flex;
  align-items: center;
  flex-flow: row wrap;
  justify-content: center;
  margin: 3.125em auto 0;
  padding-bottom: 1.25em;
  gap: 1em;
}
@media screen and (max-width: 767px) {
  .timetable .example-list {
    margin: 1.4285714286em auto 0;
    padding-bottom: 0.7142857143em;
  }
}
.timetable .example-list .example-item {
  font-size: 14px;
  padding-left: 1em;
  position: relative;
  line-height: 1;
  letter-spacing: normal;
}
@media screen and (max-width: 1180px) {
  .timetable .example-list .example-item {
    font-size: 13px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .example-list .example-item {
    font-size: 12px;
  }
}
.timetable .example-list .example-item::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  left: 0;
  aspect-ratio: 1;
  width: 0.8em;
  height: auto;
  background: #143CBA;
  clip-path: circle(45%);
}
.timetable .example-list .example-item.keynote::before {
  background: #940D40;
}
.timetable .example-list .example-item.sponsored::before {
  background: #7B777A;
}
.timetable .example-list .example-item.theme::before {
  background: #8D7036;
}
.timetable .example-list .example-item.student::before {
  background: #C83B79;
}
.timetable .example-list .example-item.exhibitor::before {
  background: #368845;
}
.timetable .example-list .example-item.jema::before {
  background: #4675AE;
}
.timetable .example-list .example-item.neca_jemima::before {
  background: #E77700;
}
.timetable .example-list .example-item.neca::before {
  background: #7E5DA7;
}
.timetable .example-list .example-item.jemima::before {
  background: #BE552E;
}
.timetable .timetable-head {
  grid-area: 1/2/span 1/span 1;
  position: sticky;
  top: 90px;
  left: 0;
  z-index: 10;
  overflow-x: auto;
  background-color: #FFFFFF;
}
@-moz-document url-prefix() {
  .timetable .timetable-head {
    scrollbar-width: 0;
  }
}
.timetable .timetable-head::-webkit-scrollbar {
  display: none;
}
@media screen and (max-width: 1180px) {
  .timetable .timetable-head {
    top: 80px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .timetable-head {
    top: 70px;
  }
}
.timetable .timetable-head .heads {
  display: grid;
  grid-template-columns: repeat(var(--stage-num), 1fr);
  grid-template-rows: 1fr;
  column-gap: var(--timetable-gap);
  min-width: var(--tt-min-width);
}
@media screen and (max-width: 767px) {
  .timetable .timetable-head .heads {
    min-width: 768px;
    min-width: var(--tt-min-width-sp);
  }
}
.timetable .timetable-head .head {
  display: flex;
  align-items: center;
  flex-flow: column nowrap;
  justify-content: center;
  min-height: 2.5em;
  background: #474747;
  color: #FFFFFF;
  font-weight: 700;
  text-align: center;
  border-radius: 5px;
  letter-spacing: 0;
}
.timetable .timeline {
  grid-area: 2/1/span 1/span 1;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(var(--time-division-num), var(--box-height));
  position: relative;
}
.timetable .timeline .time {
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  position: relative;
  top: -0.5em;
}
@media screen and (max-width: 1180px) {
  .timetable .timeline .time {
    font-size: 13px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .timeline .time {
    font-size: 12px;
  }
}
.timetable .card-lists {
  grid-area: 2/2/span 1/span 1;
  overscroll-behavior-x: none;
  overflow-y: auto;
  overflow-x: auto;
}
@-moz-document url-prefix() {
  .timetable .card-lists {
    scrollbar-width: 0.375em;
    scrollbar-color: #a0a0a0 #F0F0F0;
  }
}
.timetable .card-lists::-webkit-scrollbar {
  background: #F0F0F0;
  width: 0.375em;
  border-radius: 999px;
}
.timetable .card-lists::-webkit-scrollbar-thumb {
  background: #a0a0a0;
  border-radius: 999px;
}
.timetable .card-lists::-webkit-scrollbar {
  width: auto;
  height: 0.375em;
}
.timetable .card-lists-inner {
  display: grid;
  grid-template-columns: repeat(var(--stage-num), 1fr);
  grid-template-rows: repeat(var(--time-division-num), var(--box-height));
  column-gap: var(--timetable-gap);
  min-width: var(--tt-min-width);
}
@media screen and (max-width: 767px) {
  .timetable .card-lists-inner {
    min-width: 768px;
    min-width: var(--tt-min-width-sp);
  }
}
.timetable .column-bg {
  background: #F0F0F0;
  background: var(--color-bg-odd);
}
.timetable .column-bg:nth-child(2n) {
  background: var(--color-bg-even);
}
.timetable .column-bg.bg-1 {
  grid-area: 1/1/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-2 {
  grid-area: 1/2/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-3 {
  grid-area: 1/3/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-4 {
  grid-area: 1/4/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-5 {
  grid-area: 1/5/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-6 {
  grid-area: 1/6/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-7 {
  grid-area: 1/7/span var(--time-division-num)/span 1;
}
.timetable .column-bg.bg-8 {
  grid-area: 1/8/span var(--time-division-num)/span 1;
}
.timetable .row-bg {
  position: relative;
  border-bottom: solid 1px #a0a0a0;
}
.timetable .row-bg::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-image: linear-gradient(to right, #a0a0a0 1px, transparent 1px);
  background-size: 5px 1px;
  background-repeat: repeat-x;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
}
.timetable .row-bg.bg-1 {
  grid-area: 1/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-2 {
  grid-area: 2/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-3 {
  grid-area: 3/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-4 {
  grid-area: 4/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-5 {
  grid-area: 5/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-6 {
  grid-area: 6/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-7 {
  grid-area: 7/1/span 1/span var(--stage-num);
}
.timetable .row-bg.bg-8 {
  grid-area: 8/1/span 1/span var(--stage-num);
}
.timetable .card-list {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(calc(60 * var(--time-division-num)), calc(var(--box-height) / 60));
  position: relative;
}
.timetable .card-list.stage-a {
  grid-area: 1/1/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-b {
  grid-area: 1/2/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-c {
  grid-area: 1/3/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-d {
  grid-area: 1/4/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-e {
  grid-area: 1/5/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-f {
  grid-area: 1/6/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-g {
  grid-area: 1/7/span var(--time-division-num)/span 1;
}
.timetable .card-list.stage-h {
  grid-area: 1/8/span var(--time-division-num)/span 1;
}
.timetable .card-list .card-box {
  display: flex;
  align-items: center;
  flex-flow: column nowrap;
  justify-content: flex-start;
  padding: calc(var(--timetable-gap) * 2) var(--timetable-gap);
}
.timetable .card-list .card-box .card-box-inner {
  flex: 1;
  display: flex;
  align-items: flex-start;
  flex-flow: column nowrap;
  justify-content: flex-start;
  padding: 0.75em 1em 1em;
  width: 100%;
  background: #FFFFFF;
  text-decoration: none;
  box-shadow: 0.1875em 0.1875em 0.375em 0 rgba(0, 0, 0, 0.16);
  border-radius: 10px;
  position: relative;
  transition: all 0.3s;
  overflow-y: auto;
}
@media (hover: hover) {
  .timetable .card-list .card-box .card-box-inner:hover {
    box-shadow: 0 0.375em 0.75em 0 rgba(0, 0, 0, 0.16);
  }
}
.timetable .card-list .card-box .text-box {
  width: 100%;
}
.timetable .card-list .card-box .time {
  margin: 0;
  color: #4F4F4F;
  font-size: 12px;
  line-height: 1;
}
@media screen and (max-width: 1180px) {
  .timetable .card-list .card-box .time {
    font-size: 11px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .card-list .card-box .time {
    font-size: 10px;
  }
}
.timetable .card-list .card-box .card-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
@media screen and (max-width: 1180px) {
  .timetable .card-list .card-box .card-title {
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .card-list .card-box .card-title {
    font-size: 14px;
  }
}
.timetable .card-list .card-box .explanation {
  margin-top: 0.5714285714em;
  font-size: 14px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media screen and (max-width: 1180px) {
  .timetable .card-list .card-box .explanation {
    font-size: 13px;
  }
}
@media screen and (max-width: 767px) {
  .timetable .card-list .card-box .explanation {
    font-size: 12px;
  }
}
.timetable .card-list .card-box .buttons {
  margin-top: 1em;
  width: 100%;
}
.timetable .card-list .card-box .button {
  width: 100%;
  max-width: 17.1428571429em;
  position: relative;
  z-index: 1;
}
.timetable .card-list .card-box .detail-btn {
  display: block;
  position: absolute;
  inset: 0;
  text-decoration: none;
  padding: 30px var(--timetable-gap) calc(var(--timetable-gap) * 2);
}