
/* program1 */
  main.program .timeTable{width: 100%;}
  main.program .tableTitle,
  main.program .tableSession,
  main.program .tableProgram,
  main.program .tableBreak{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #ddd;
  }
  main.program .tableTitle > div,
  main.program .tableSession > div,
  main.program .tableProgram > div,
  main.program .tableBreak > div{
    padding: 10px;
    text-align: center;
  }
  main.program .tableTitle{
    background-color: #3d4970;
    color: white;
    font-weight: bold;
  }
  main.program .tableSession{
    background-color: lightpink;
    font-weight: bold;
  }
  main.program .tableProgram .program{
    text-align: left;
  }
  main.program .tableBreak{
    background-color: #e2e2e2;
  }
  main.program div.t_time, main.program div.time{width: 30%;}
  main.program .tableTitle > div.t_program, main.program .tableProgram > div.program{width: 30%;}
  main.program .tableTitle > div.t_speaker, main.program .tableProgram > div.speaker{width: 40%;}
  main.program .tableSession > div{width: 100%;}
  main.program .tableProgram > div.program strong{display: block; margin-bottom: 8px;}
  main.program .tableBreak > div.break{width: 70%;}

  @media (max-width: 500px){

    main.program div.time{background-color: #f2f2f2;}
    main.program div.t_time, main.program div.time,
    main.program .tableTitle > div.t_program, main.program .tableProgram > div.program,
    main.program .tableTitle > div.t_speaker, main.program .tableProgram > div.speaker,
    main.program .tableBreak > div.break{
      width: 100%;
      border-bottom: 1px solid #ddd;
    }
    main.program .tableProgram > div.program{
      text-align: center;
    }
    main.program .tableProgram > div.speaker{
      border-bottom: 2px solid #3d4970;
    }
  }

  /* // program1 */




  /* program2 */

  #speakers{
    display: flex;
    flex-wrap: wrap;
  }
  #speakers .speakerBox{
    min-width: calc(25% - 24px);
    margin: 10px;
    text-align: center;
  }
  #speakers .speakerBox .profile{
    border-radius: 50%;
    cursor: pointer;
    width: 230px;
    height: 230px;
    overflow: hidden;
    margin: 0 auto;
  }
  #speakers .speakerBox .profile img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    object-position: top;
  }
  #speakers .speakerBox .name, #speakers .speakerBox .com{padding: 2px 2px 0;}
  #speakers .speakerBox .name{
    font-size: 1.2em;
    font-weight: bold;
    color: #3d4970;
  }
  #speakers .speakerBox .comImg{
    margin-top: 10px;
  }
  #speakers .speakerBox .comImg img{width: 100%; max-width: 80px}

  #speakers .modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0; top: 0;
    width: 100%; height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.7);
  }

  #speakers .modal-content {
    background-color: #fff;
    padding: 10px;
    display: flex;
    max-width: 900px;
    border-radius: 8px;
    position: relative;
  }

  #speakers .close {
    position: absolute;
    right: 20px; top: 15px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
  }

  /* modal */
  .modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.7);
  }
  .modal-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #fff;
    padding: 20px;
    display: flex;
    border-radius: 8px;
    width: 90%;
    max-width: 900px;
  }

  .modal-content span{
    position: absolute;
    right: 0;
    text-align: right;
    font-weight: bold;
    font-size: 2em;
    padding: 4px 12px;
    cursor: pointer;
    z-index: 99;
  }
  .program .modal-body {
    display: flex;
    width: 100%;
  }

  .program .modal-left {
    width: 35%;
    text-align: center;
    padding: 10px;
  }

  .program .modal-left img#modalImg {
    border-radius: 50%;
    width: 180px;
    height: 180px;
    object-fit: cover;
    margin-bottom: 10px;
  }
  .program .modal-left p{
    word-break: keep-all;
  }

  .program .logo-img {
    max-width: 80px;
    margin-top: 10px;
  }

  .program .modal-right {
    width: 65%;
    max-height: 500px;
    padding: 10px;
    line-height: 1.6;
    font-size: 0.95rem;
    overflow: auto;
  }

  @media (max-width: 700px){

    #speakers .speakerBox .profile{
      width: 150px;
      height: 150px;
    }
    .modal-content,
    .program .modal-body{
      padding: 10px 10px 10px 0;
    }
    .program .modal-left img#modalImg{
      width: 120px;
      height: 120px;
    }
    .modal-content span{
      font-size: 1.4em;
    }
    .program .modal-left{
      padding: 4px;
    }
    #modalName{
      font-size: 1.1em;
    }
    #modalAffiliation{
      font-size: 0.9em;
    }
    .program .modal-right{
      padding: 10px 10px 0 0;
      font-size: 0.9em;
      height: 290px;
    }
  }

  @media (max-width: 450px){
    .program .modal-body{
      flex-wrap: wrap;
    }
    .program .modal-left, .program .modal-right{width: 100%;}
    .modal-content, .program .modal-body{padding: 10px;}
    #modalAffiliation{margin-bottom: 5px;}
    .program .logo-img{max-width: 60px;}
  }

  /* // program2 */
  