/* =====================================================
   FGE2026 conference template overrides
   ===================================================== */

:root{
  --fge-ink:#1f2a44;
  --fge-primary:#eac55b;
  --fge-line:#e6e9ef;
  --fge-primary-soft:#fff7dd;
}

    /* ---------- Footer helper ---------- */
    .footer-area{
      background: #eac55b !important;
    }

    .footer-area .container{
      max-width: 1400px;
    }

    .footer-logo-row{
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 24px;
      flex-wrap: nowrap;
    }

    .footer-logo-item{
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .footer-area .spnsors-logo{
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
    }

    .footer-area .spnsors-logo img{
      display: block;
      max-width: 100%;
      max-height: 64px;
      width: auto;
      height: auto;
      object-fit: contain;
    }

    /* tablet */
    @media (max-width: 991px){
      .footer-logo-row{
        flex-wrap: wrap;
        gap: 20px;
      }

      .footer-logo-item{
        flex: 0 0 30%;
      }

      .footer-area .spnsors-logo img{
        max-height: 64px;
      }
    }

@media (max-width: 767px){
  .footer-logo-row{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .footer-logo-item{
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .footer-area .spnsors-logo,
  .footer-area .spnsors-logo a{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }

  /* reset all old img sizing rules */
  .footer-area .spnsors-logo img{
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
  }

  /* control size by wrapper width, not by img */
  .logo-fge .spnsors-logo{
    max-width: 240px;
    min-height: 60px;
  }

  .logo-cuhk .spnsors-logo{
    max-width: 270px;
    min-height: 60px;
  }

  .logo-oge .spnsors-logo{
    max-width: 260px;
    min-height: 60px;
  }

  .logo-cuhksz .spnsors-logo{
    max-width: 280px;
    min-height: 60px;
  }

  .logo-hss .spnsors-logo{
    max-width: 280px;
    min-height: 60px;
  }
}

/* ---------- Homepage ---------- */
#homepage-hero{
  margin-top: 80px;
  background: linear-gradient(to bottom, #fbfaf7 0%, #f7f2e7 100%);
}

.homepage-hero-full{
  width: 100%;
  aspect-ratio: 2.29 / 1;
  overflow: hidden;
  background: #eed273;
}

.homepage-hero-full picture,
.homepage-hero-full img{
  width: 100%;
  height: 100%;
  display: block;
}

.homepage-hero-full img{
  object-fit: cover;
  object-position: center center;
  background: #eed273;
}

/* mobile */
@media (max-width: 767px){
  #homepage-hero{
    margin-top: 78px;
  }

  .homepage-hero-full{
    aspect-ratio: 2000 / 2853;
    background: #fbfaf7;
  }

  .homepage-hero-full img{
    object-fit: contain;
    object-position: center center;
  }
}

/* ---------- Top banner (desktop + mobile) ---------- */
.fge-banner{
  position: relative;
  width: 100%;
  padding-top: 35px;
  background: #ffffff;
  border-bottom: 1px solid var(--fge-line);
}

.fge-banner-wrap{
  position: relative;
  width: 100%;
}

.fge-banner img{
  display:block;
  width:100%;
  height:auto;
  max-height: 260px;
  object-fit: contain;
}

.fge-banner .banner-mobile{ display:none; }

/* Transparent clickable overlays */
.fge-banner .logo-link{
  position:absolute;
  display:block;
  /* debug: background:rgba(255,0,0,.15); */
}

/* Desktop overlay coordinates (same as current fge2026 site baseline) */
.fge-banner .logo-1{ left:25%; width:11%; top:70%; height:25%; }
.fge-banner .logo-2{ left:49%; width:11%; top:70%; height:25%; }
.fge-banner .logo-3{ left:36%; width:13%; top:70%; height:25%; }
.fge-banner .logo-4{ left:60%; width:12%; top:70%; height:25%; }

/* ---------- Navbar tweaks (many Chinese items) ---------- */
.navigation{
  /* keep the theme's sticky nav behaviour */
}

.navbar-nav .nav-link,
.navbar-nav .page-scroll{
  font-size: 14px;
  padding: 8px 10px !important;
}

.navbar{
  padding-top: 18px;
  padding-bottom: 18px;
}

.navbar-brand img{
  max-height: 42px;
}

/* ---------- Navbar dropdown ---------- */
.navbar-nav .dropdown-menu{
  border: 1px solid rgba(234,197,91,.28);
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  padding: 8px 0;
  margin-top: 10px;
  text-align: center;
  background: #fff;
}

.navbar-nav .dropdown-item{
  font-size: 14px;
  padding: 10px 18px;
  color: #222;
  transition: background .2s ease, color .2s ease;
}

.navbar-nav .dropdown-item:hover,
.navbar-nav .dropdown-item:focus{
  background: #fff7dd;
  color: var(--fge-primary);
}

.navbar-nav .dropdown-item::before,
.navbar-nav .dropdown-item::after{
  display:none !important;
  content:none !important;
}

/* ---------- Navbar dropdown button ---------- */
.navbar-nav .nav-dropdown-btn{
  background: transparent;
  border: 0;
  outline: none;
  cursor: pointer;
  text-align: left;
  color: inherit;
  font-size: 14px;
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  padding: 8px 10px !important;
}

.navbar-nav .nav-dropdown-btn:focus{
  outline: none;
  box-shadow: none;
}

.navbar-nav .nav-dropdown-btn:hover,
.navbar-nav .nav-dropdown-btn:focus,
.navbar-nav .dropdown.show .nav-dropdown-btn,
.navbar-nav .nav-dropdown-btn[aria-expanded="true"]{
  color: var(--fge-primary);
  background: transparent;
  box-shadow: none;
}

.navbar-nav .nav-dropdown-btn.dropdown-toggle::after{
  margin-left: 6px;
  vertical-align: middle;
}

@media (min-width: 992px){
  .navbar-nav .dropdown{
    position: relative;
  }

  .navbar-nav .nav-dropdown-btn{
    position: relative;
  }

  .navbar-nav .nav-dropdown-btn::before{
    content: "";
    position: absolute;
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background: var(--fge-primary);
    transition: width .25s ease;
  }

  .navbar-nav .nav-dropdown-btn:hover::before,
  .navbar-nav .nav-dropdown-btn:focus::before,
  .navbar-nav .dropdown.show > .nav-dropdown-btn::before,
  .navbar-nav .nav-dropdown-btn[aria-expanded="true"]::before{
    width: 15px;
  }
}

/* desktop: support both hover and click-open */
@media (min-width: 992px){
  .navbar-nav .dropdown.show > .dropdown-menu{
    display: block;
  }

  .navbar-nav .dropdown.show > .nav-dropdown-btn{
    color: var(--fge-primary);
  }
}

.navbar-nav .nav-item.dropdown.active > .nav-dropdown-btn{
  color: var(--fge-primary) !important;
}

.navbar-nav .nav-item.dropdown.active > .nav-dropdown-btn::before{
  width: 15px;
}

.navbar-nav .nav-item.dropdown.active > .nav-dropdown-btn:hover{
  color: var(--fge-primary) !important;
}

/* mobile / shrunk view */
@media (max-width: 991px){
  .navbar-nav .dropdown{
    position: relative;
  }

  .navbar-nav .dropdown-menu{
    display: none;
    position: static;
    float: none;
    width: 100%;
    margin-top: 0;
    padding: 4px 0 6px 14px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    text-align: left;
  }

  .navbar-nav .dropdown-menu.show{
    display: block;
  }

  .navbar-nav .dropdown-item{
    display: block;
    padding: 8px 0;
    color: #212121;
    white-space: nowrap;
    background: transparent;
  }

  .navbar-nav .dropdown-item:hover,
  .navbar-nav .dropdown-item:focus{
    background: transparent;
    color: var(--fge-primary);
  }
}

/* ---------- Speaker helper ---------- */
#speakers-opening{
  padding-top: 140px;
}

.speaker-feature{
  margin-top:40px;
  padding:28px;
  border:1px solid #e6e9ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.05);
  scroll-margin-top: 120px;
}

.speaker-feature-img{
  width:100%;
  height:auto;
  display:block;
  border-radius:10px;
}

.speaker-feature-meta{
  margin-top:16px;
}

.speaker-feature-meta h3{
  font-size:24px;
  margin-bottom:8px;
}

.speaker-feature-meta p{
  margin-bottom:0;
  color:#666;
  line-height:1.8;
}

.speaker-feature-right{
  padding-left:10px;
}

.speaker-feature-block + .speaker-feature-block{
  margin-top:24px;
}

.speaker-feature-block h4{
  font-size:16px;
  margin-bottom:12px;
  color:#1f2a44;
}

.speaker-feature-block p{
  line-height: 1.9;
  color: #333;
  margin-bottom: 16px;
}

.speaker-feature-block p:last-child{
  margin-bottom: 0;
}

.speaker-role-badge{
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.moderator-badge{
  background: var(--fge-primary-soft);
  color: var(--fge-ink);
  border: 1px solid rgba(234,197,91,.45);
}

.speaker-feature-moderator{
  border-color: rgba(234,197,91,.55);
  box-shadow: 0 10px 24px rgba(234,197,91,.12);
}

.speaker-topic-block{
  margin-bottom: 24px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.speaker-topic-block h4{
  margin-bottom: 6px;
  font-size: 16px;
  color: var(--fge-ink);
}

.speaker-topic-block p{
  margin-bottom: 0 !important;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--fge-ink);
}

@media (max-width:768px){
  .speaker-feature{
    padding:20px;
  }

  .speaker-feature-right{
    padding-left:0;
    margin-top:20px;
  }
}

/* ---------- Speaker pill toggle trial ---------- */
.speaker-pill-nav{
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.speaker-pill-btn{
  border: 1px solid rgba(234,197,91,.45);
  background: #fff;
  color: #212121;
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  transition: all .2s ease;
}

.speaker-pill-btn:hover{
  background: var(--fge-primary-soft);
}

.speaker-pill-btn.active{
  background: var(--fge-primary);
  color: #212121;
  border-color: var(--fge-primary);
}

.speaker-pill-panel{
  display: none;
}

.speaker-pill-panel.active{
  display: block;
}

@media (max-width: 767px){
  .speaker-pill-nav{
    gap: 8px;
  }

  .speaker-pill-btn{
    width: 100%;
    text-align: center;
  }
}

/* ---------- Forum speaker page ---------- */
#speakers-forums{
  padding-top: 140px;
}

.forum-speaker-group{
  scroll-margin-top: 135px;
}

.forum-speaker-group{
  margin-top: 56px;
  margin-bottom: 56px;
}

.forum-speaker-group h3{
  font-size: 24px;
  margin-bottom: 24px;
  color: #1f2a44;
  border-left: 4px solid #eac55b;
  padding-left: 12px;
  line-height: 1.5;
}

/* Use CSS Grid instead of Bootstrap row/col */
.forum-speaker-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 28px;
  align-items: start;
}

.forum-speaker-card{
  display: flex;
  flex-direction: column;
  padding: 20px 20px 18px;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  height: auto;
  align-self: start;
}

.forum-speaker-img{
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: 10px;
  margin-bottom: 16px;
}

.forum-speaker-meta{
  flex-grow: 1;
}

.forum-speaker-meta h4{
  font-size: 20px;
  margin-bottom: 8px;
  line-height: 1.5;
}

.forum-speaker-meta p{
  margin-bottom: 14px;
  color: #666;
  line-height: 1.8;
}

.forum-speaker-toggle{
  margin-top: auto;
  padding-top: 8px;
}

.forum-speaker-toggle .btn{
  width: 100%;
}

.forum-speaker-detail{
  margin-top: 16px;
}

.forum-speaker-detail-inner{
  border-top: 1px solid #e6e9ef;
  padding-top: 16px;
}

.forum-speaker-detail-inner h5{
  font-size: 16px;
  margin-bottom: 8px;
  color: #1f2a44;
}

.forum-speaker-detail-inner p{
  color: #333;
  line-height: 1.85;
  margin-bottom: 14px;
}

.forum-speaker-detail-inner p:last-child{
  margin-bottom: 0;
}

/* spacing between forum sections */
.forum-speaker-group + .forum-speaker-group{
  padding-top: 8px;
  border-top: none;
}

/* tablet */
@media (max-width: 991px){
  .forum-speaker-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* mobile */
@media (max-width: 767px){
  .forum-speaker-group{
    margin-top: 40px;
    margin-bottom: 40px;
  }

  .forum-speaker-group h3{
    font-size: 21px;
  }

  .forum-speaker-grid{
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .forum-speaker-meta h4{
    font-size: 18px;
  }
}

/* ---------- Forum speakers pill ---------- */
.speaker-badge{
  background: #f6f6f6;
  color: #212121;
  border: 1px solid #e6e6e6;
}

.forum-speaker-meta .speaker-role-badge{
  margin-bottom: 8px;
  margin-right: 6px;
}

.forum-speaker-detail-inner h5{
  margin-top: 16px;
  margin-bottom: 8px;
}

.forum-speaker-detail-inner h5:first-child{
  margin-top: 0;
}

/* ---------- Page header helper ---------- */
.fge-page-title{
  padding: 28px 0 10px;
}
.fge-page-title h1{
  font-size: 30px;
  color: var(--fge-ink);
  margin: 0;
}
.fge-page-title p{
  margin: 10px 0 0;
  color:#556;
}

/* ----------  Schedule page helper ---------- */
#schedules{
  padding-top: 140px;
}

    /* ---------- Page helpers ---------- */
    .schedule-day-location{
      margin-bottom: 18px;
      padding: 12px 16px;
      background: #fff7dd;
      border-radius: 10px;
      line-height: 1.8;
      color: #444;
    }

    .schedule-session-note{
      margin-bottom: 18px;
      padding: 12px 16px;
      border-left: 4px solid var(--fge-primary);
      background: #fff;
      color: #444;
      line-height: 1.8;
      border-radius: 8px;
      box-shadow: 0 4px 12px rgba(0,0,0,.03);
    }

    .schedule-old-list{
      background: #fff;
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(0,0,0,.04);
      border: 1px solid #e6e9ef;
      margin-bottom: 24px;
    }

    .schedule-simple-card{
      border-top: 1px solid #e6e9ef;
      background: #fff;
    }

    .schedule-simple-card:first-child{
      border-top: 0;
    }

    .schedule-simple-card-header{
      padding: 16px 18px;
    }

    .schedule-simple-card-header .time{
      display: inline-block;
      font-size: 14px;
      color: #777;
      margin-bottom: 4px;
    }

    .schedule-simple-card-header h4{
      font-size: 18px;
      line-height: 1.6;
      color: #1f2a44;
      margin-bottom: 0;
    }

    .schedule-simple-card-header p{
      margin: 6px 0 0;
      line-height: 1.8;
      color: #444;
    }

    .schedule-forum-gap{
      height: 14px;
    }

    /* ---------- Opening forum style ---------- */
    .schedule-old-item{
      border-top: 1px solid #e6e9ef;
      background: #fff;
    }

    .schedule-old-item:first-child{
      border-top: 0;
    }

    .schedule-old-item-header{
      display: flex;
      align-items: flex-start;
      gap: 20px;
      padding: 16px 18px;
      cursor: pointer;
    }

    .schedule-old-item .images-box{
      flex: 0 0 150px;
      text-align: left;
    }

    .schedule-old-item .images-box img{
      width: 72px;
      height: 72px;
      object-fit: cover;
      object-position: center top;
      border-radius: 50%;
      display: block;
      margin-bottom: 12px;
    }

    .schedule-old-item-person strong{
      display: block;
      font-size: 16px;
      line-height: 1.6;
      color: #212121;
      font-weight: 700;
      margin-bottom: 4px;
    }

    .schedule-old-item-person span{
      display: block;
      font-size: 14px;
      line-height: 1.8;
      color: #666;
    }

    .schedule-old-item-main{
      flex: 1 1 auto;
      min-width: 0;
    }

    .schedule-old-item-main .time{
      display: block;
      font-size: 14px;
      color: #777;
      margin-bottom: 4px;
    }

    .schedule-old-item-main h4{
      font-size: 18px;
      margin-bottom: 8px;
      color: #1f2a44;
      line-height: 1.5;
    }

    .schedule-old-item-main p{
      margin: 0;
      line-height: 1.8;
      color: #444;
      font-size: 16px;
    }

    .schedule-old-item-body{
      padding: 0 18px 16px 188px;
    }

    .schedule-old-item-body p{
      margin: 0;
      line-height: 1.9;
      color: #555;
    }

    .schedule-old-item-body a{
      text-decoration: none;
      font-weight: 600;
    }

    .schedule-old-item-body a:hover{
      text-decoration: underline;
    }

.schedule-session-note{
  background: #fcfaf3;
  border: 1px solid #eee4bf;
  border-left: 4px solid var(--fge-primary);
  border-radius: 12px;
  padding: 18px 20px;
  margin: 14px 0 0px;
  box-shadow: 0 4px 12px rgba(0,0,0,.03);
}

.schedule-session-note p{
  margin: 0;
  line-height: 1.9;
  color: #444;
}

.schedule-session-note p + p{
  margin-top: 6px;
}

.schedule-session-note p:first-child{
  font-size: 18px;
  font-weight: 700;
  color: #1f2a44;
  margin-bottom: 4px;
}

.schedule-session-note .schedule-session-remark{
  color: #666;
  font-size: 14px;
}

    /* ---------- Forums overview ---------- */
    .schedule-forums-overview{
      border: 1px solid #e6e9ef;
      border-radius: 14px;
      background: #fff;
      box-shadow: 0 8px 20px rgba(0,0,0,.04);
      overflow: hidden;
      margin-bottom: 20px;
    }

    .schedule-forums-overview-header{
      padding: 18px 20px;
      border-bottom: 1px solid #ececec;
      background: #fff;
    }

    .schedule-forums-overview-header .time{
      display: inline-block;
      font-size: 14px;
      color: #777;
      margin-bottom: 6px;
    }

    .schedule-forums-overview-header h4{
      font-size: 20px;
      line-height: 1.6;
      color: #1f2a44;
      margin-bottom: 6px;
    }

    .schedule-forums-overview-header p{
      margin: 0;
      color: #555;
      line-height: 1.8;
    }

    .schedule-forum-grid-overview{
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      padding: 18px;
    }

    .schedule-forum-card-detailed{
      border: 1px solid #e6e9ef;
      border-radius: 14px;
      background: #fff;
      box-shadow: 0 4px 12px rgba(0,0,0,.03);
      overflow: hidden;
    }

    .schedule-forum-card-header{
      padding: 18px 20px;
      cursor: pointer;
    }

    .schedule-forum-card-header .time{
      display: inline-block;
      font-size: 14px;
      color: #777;
      margin-bottom: 6px;
    }

    .schedule-forum-card-header h5{
      font-size: 19px;
      line-height: 1.6;
      color: #1f2a44;
      margin-bottom: 10px;
    }

    .schedule-forum-card-header .schedule-forum-meta{
      line-height: 1.9;
      color: #444;
      margin-bottom: 8px;
      font-size: 14px;
    }

    .schedule-forum-card-header .schedule-forum-note{
      color: #666;
      line-height: 1.8;
      font-size: 14px;
    }

    .schedule-forum-detail-inner{
      padding: 0 20px 20px;
      border-top: 1px solid #eee;
    }

    .schedule-forum-session-block{
      margin-top: 18px;
    }

    .schedule-forum-session-block h6{
      font-size: 16px;
      color: #1f2a44;
      margin-bottom: 12px;
      font-weight: 700;
    }

    .schedule-forum-talk{
      display: flex;
      gap: 16px;
      padding: 10px 0;
      border-top: 1px dashed #ececec;
    }

    .schedule-forum-talk:first-of-type{
      border-top: 0;
    }

    .schedule-forum-time{
      flex: 0 0 110px;
      font-size: 14px;
      color: #777;
      line-height: 1.8;
    }

    .schedule-forum-info{
      flex: 1 1 auto;
      min-width: 0;
    }

    .schedule-forum-topic{
      margin: 0 0 4px;
      line-height: 1.8;
      color: #212121;
    }

    .schedule-forum-speaker{
      margin: 0;
      line-height: 1.8;
      color: #666;
      font-size: 14px;
    }

    .schedule-forum-break{
      margin-top: 18px;
      padding: 12px 14px;
      border-radius: 10px;
      background: #faf7ef;
    }

    .schedule-forum-break-text{
      color: #555;
      line-height: 1.8;
      font-size: 14px;
    }

    .schedule-forum-footer-link{
      margin-top: 18px;
    }

    .schedule-forum-footer-link a{
      color: var(--fge-primary);
      font-weight: 600;
      text-decoration: none;
    }

    .schedule-forum-footer-link a:hover{
      text-decoration: underline;
    }

    @media (max-width: 991px){
      .schedule-forum-grid-overview{
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 767px){
      .schedule-simple-card-header{
        padding: 14px 16px;
      }

      .schedule-old-item-header{
        padding: 14px 16px;
        gap: 14px;
      }

      .schedule-old-item .images-box{
        flex: 0 0 112px;
      }

      .schedule-old-item .images-box img{
        width: 56px;
        height: 56px;
        margin-bottom: 10px;
      }

      .schedule-old-item-person strong{
        font-size: 14px;
        line-height: 1.5;
      }

      .schedule-old-item-person span{
        font-size: 12px;
        line-height: 1.6;
      }

      .schedule-old-item-main h4{
        font-size: 17px;
      }

      .schedule-old-item-main p{
        font-size: 15px;
        line-height: 1.7;
      }

      .schedule-old-item-body{
        padding: 0 16px 16px 16px;
      }

      .schedule-forum-card-header{
        padding: 16px;
      }

      .schedule-forum-detail-inner{
        padding: 0 16px 16px;
      }

      .schedule-forum-talk{
        flex-direction: column;
        gap: 4px;
      }

      .schedule-forum-time{
        flex: none;
      }
    }

.schedule-sharing-body{
  padding: 16px 18px 16px 18px;
}

.schedule-sharing-intro{
  margin-bottom: 18px;
}

.schedule-sharing-intro p{
  margin: 0;
  line-height: 1.9;
  color: #555;
}

.schedule-sharing-list{
  border-top: 1px dashed #ececec;
}

.schedule-sharing-row{
  display: flex;
  gap: 18px;
  padding: 14px 0;
  border-top: 1px dashed #ececec;
}

.schedule-sharing-row:first-child{
  border-top: 0;
}

.schedule-sharing-speaker{
  flex: 0 0 260px;
}

.schedule-sharing-speaker strong{
  display: block;
  font-size: 15px;
  line-height: 1.7;
  color: #212121;
  margin-bottom: 4px;
}

.schedule-sharing-speaker span{
  display: block;
  font-size: 14px;
  line-height: 1.8;
  color: #666;
}

.schedule-sharing-topic{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  line-height: 1.9;
  color: #212121;
}

.schedule-sharing-head{
  display: flex;
  gap: 18px;
  padding: 12px 0;
  border-top: 1px dashed #ececec;
  border-bottom: 1px dashed #ececec;
  font-size: 14px;
  font-weight: 700;
  color: #1f2a44;
}

.schedule-sharing-head-speaker{
  flex: 0 0 260px;
}

.schedule-sharing-head-topic{
  flex: 1 1 auto;
  min-width: 0;
}

.schedule-sharing-row{
  align-items: flex-start;
}

.schedule-topic-list-multi{
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.schedule-topic-list-multi li{
  margin-bottom: 14px;
  line-height: 1.9;
  color: #212121;
}

.schedule-topic-list-multi li:last-child{
  margin-bottom: 0;
}

@media (max-width: 767px){
  .schedule-sharing-row{
    flex-direction: column;
    gap: 6px;
  }

  .schedule-sharing-speaker{
    flex: none;
  }

  .schedule-sharing-body{
    padding: 14px 16px 16px 16px;
  }

  .schedule-sharing-head{
    display: none;
  }
}

/* ---------- Registration page ---------- */
#registration{
  padding-top: 140px;
}

.registration-test-wrap{
  align-items: flex-start;
}

.registration-faq-panel,
.registration-action-panel{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  padding: 24px 28px;
  height: 100%;
}

.registration-faq-panel{
  text-align: left;
}

.registration-action-panel{
  text-align: center;
  position: sticky;
  top: 110px;
}

.registration-faq-title,
.registration-action-title{
  font-size: 24px;
  color: #1f2a44;
  margin-bottom: 18px;
}

.registration-faq-item{
  padding: 16px 0;
  border-top: 1px solid #ececec;
}

.registration-faq-item:first-of-type{
  border-top: 0;
  padding-top: 0;
}

.registration-faq-q,
.registration-faq-a{
  margin: 0;
  line-height: 1.9;
  color: #333;
}

.registration-faq-a{
  margin-top: 8px;
}

.registration-faq-a p{
  margin: 6px 0;
}

.registration-backup-pay{
  margin: 14px 0 10px;
  text-align: center;
}

.registration-backup-pay img{
  max-width: 140px;
  width: 100%;
  height: auto;
  display: inline-block;
}

.registration-qr-test{
  margin-bottom: 18px;
}

.registration-qr-test img{
  max-width: 200px;
  width: 100%;
  height: auto;
  display: inline-block;
}

.registration-note-test{
  line-height: 1.9;
  color: #555;
  margin-bottom: 20px;
}

.registration-link-test{
  margin-top: 18px;
  line-height: 1.9;
  word-break: break-all;
}

.registration-link-test a{
  color: var(--fge-primary);
  font-weight: 600;
}

.registration-btn-wrap{
  margin-top: 16px;
}

@media (max-width: 991px){
  .registration-action-panel{
    position: static;
    margin-top: 24px;
    margin-bottom: 20px;
  }
}

@media (max-width: 767px){
  .registration-faq-panel,
  .registration-action-panel{
    padding: 20px 18px;
    margin-bottom: 20px;
  }

  .registration-faq-title,
  .registration-action-title{
    font-size: 21px;
  }

  .registration-qr-test img{
    max-width: 220px;
  }
}

.registration-top-note{
  background: #fff7dd;
  border: 1px solid rgba(234,197,91,.45);
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 22px;
  line-height: 1.9;
  color: #444;
  box-shadow: 0 8px 20px rgba(0,0,0,.03);
}

@media (max-width: 767px){
  .registration-top-note{
    padding: 14px 16px;
    margin-bottom: 18px;
  }
}

/* ---------- Hotel page ---------- */
#hotel-info{
  padding-top: 140px;
}

.hotel-intro{
  font-size: 16px;
  line-height: 1.9;
  color: #444;
  text-align: center;
  max-width: 850px;
  margin: 0 auto 10px;
}

.hotel-table-wrap{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  overflow: hidden;
}

.hotel-table{
  margin-bottom: 0;
}

.hotel-table thead th{
  background: #faf7ef;
  color: #1f2a44;
  font-weight: 700;
  vertical-align: middle;
  white-space: nowrap;
}

.hotel-table td,
.hotel-table th{
  vertical-align: top;
  font-size: 14px;
  line-height: 1.8;
  padding: 14px 12px;
}

.hotel-table td{
  color: #444;
}

.hotel-table td:nth-child(2),
.hotel-table th:nth-child(2){
  white-space: nowrap;
  width: 190px;
}

.hotel-table tbody tr:hover{
  background: #f7eed2;
}

.hotel-detail-section-title{
  margin-top: 42px;
  margin-bottom: 20px;
  font-size: 28px;
  color: #1f2a44;
  text-align: center;
}

.hotel-detail-list{
  margin-top: 10px;
}

.hotel-detail-card{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  padding: 22px;
  margin-bottom: 24px;
}

.hotel-detail-photo img{
  width: 100%;
  height: 240px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

.hotel-detail-content h3{
  font-size: 24px;
  margin-bottom: 14px;
  color: #1f2a44;
}

.hotel-detail-content p{
  margin-bottom: 10px;
  line-height: 1.9;
  color: #444;
}

.hotel-note{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  padding: 24px 28px;
}

.hotel-note h3{
  font-size: 24px;
  margin-bottom: 14px;
  color: #1f2a44;
}

.hotel-note ol{
  margin-bottom: 0;
  padding-left: 22px;
}

.hotel-note li{
  line-height: 1.9;
  color: #444;
  margin-bottom: 8px;
}

.hotel-download{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  padding: 24px 28px;
}

.hotel-download p{
  margin-bottom: 16px;
  line-height: 1.8;
  color: #444;
}

.hotel-table-tip{
  display: none;
}

@media (max-width: 767px){
  .hotel-detail-card,
  .hotel-note,
  .hotel-download{
    padding: 18px;
  }

  .hotel-detail-photo{
    margin-bottom: 16px;
  }

  .hotel-detail-photo img{
    height: 220px;
  }

  .hotel-detail-content h3,
  .hotel-note h3{
    font-size: 21px;
  }

  .hotel-detail-section-title{
    font-size: 24px;
  }

  .hotel-table-wrap{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .hotel-table{
    min-width: 720px;
  }

  .hotel-table td,
  .hotel-table th{
    word-break: keep-all;
  }

  .hotel-table-tip{
    display: block;
    margin-top: 15px;
    color: #666;
    font-size: 13px;
    text-align: center;
  }
}

/* ---------- Join helper ---------- */
#join-federation{
  padding-top: 140px;
}

#join-footer{
  margin-top: 20px;
}

.join-intro p{
  font-size:16px;
  line-height:1.9;
  color:#444;
}

#join-federation .col-md-6{
  margin-bottom:30px;
}

/* ---------- Location helper ---------- */
#venue{
  padding-top: 140px;
}

#location-counter{
  background: #ffffff !important;
}

#location-counter .counter p,
#location-counter .counter span,
#location-counter .counter .icon i{
  color: #1f2a44 !important;
}

/* ---------- Location single image ---------- */
.location-single-intro{
  max-width: 920px;
  margin: 0 auto 24px;
  text-align: center;
  color: #444;
  line-height: 1.9;
}

.location-single-card{
  max-width: 1100px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  padding: 18px;
}

.location-single-frame{
  width: 100%;
  background: #f6f7f9;
  border-radius: 10px;
  overflow: hidden;
}

.location-single-frame img{
  width: 100%;
  height: auto;
  display: block;
}

/* tablet */
@media (max-width: 991px){
  .location-single-card{
    padding: 14px;
  }
}

/* mobile */
@media (max-width: 767px){
  .location-single-intro{
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.8;
  }

  .location-single-card{
    padding: 8px;
    border-radius: 12px;
  }

  .location-single-frame{
    border-radius: 8px;
  }

  .location-single-frame img{
    width: 100%;
    height: auto;
    display: block;
  }
}

/* ---------- Contact helper ---------- */
#contact-info{
  padding-top: 140px;
}

.contact-block{
  padding: 30px 28px;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.05);
}

.contact-block-title{
  font-size: 26px;
  margin-bottom: 12px;
  color: #1f2a44;
}

.contact-intro{
  color: #555;
  line-height: 1.9;
  margin-bottom: 24px;
}

.contact-card{
  height: 100%;
  padding: 20px 22px;
  border: 1px solid #edf0f4;
  border-radius: 12px;
  background: #fafbfc;
  margin-bottom: 20px;
}

.contact-card h4{
  font-size: 20px;
  margin-bottom: 14px;
  color: #212121;
}

.contact-card p{
  margin-bottom: 10px;
  line-height: 1.85;
  color: #444;
}

.contact-card p:last-child{
  margin-bottom: 0;
}

.emergency-grid{
  margin-top: 10px;
}

.emergency-card{
  text-align: center;
  height: 100%;
  padding: 24px 16px;
  border: 1px solid #edf0f4;
  border-radius: 12px;
  background: #fafbfc;
  margin-bottom: 20px;
}

.emergency-icon{
  margin-bottom: 12px;
}

.emergency-icon i{
  font-size: 34px;
  color: #eac55b;
}

.emergency-card h4{
  font-size: 28px;
  margin-bottom: 8px;
  color: #212121;
}

.emergency-card p{
  margin-bottom: 0;
  color: #555;
  line-height: 1.8;
}

.emergency-note{
  margin-top: 8px;
  padding-top: 8px;
}

.emergency-note p{
  color: #555;
  line-height: 1.9;
  margin-bottom: 0;
}

@media (max-width: 767px){
  .contact-block{
    padding: 22px 18px;
  }

  .contact-block-title{
    font-size: 22px;
  }

  .contact-card h4{
    font-size: 18px;
  }

  .emergency-card h4{
    font-size: 24px;
  }
}

/* ---------- Contact page update ---------- */
.contact-subsection + .contact-subsection{
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #ececec;
}

.contact-subtitle{
  font-size: 22px;
  color: #1f2a44;
  margin-bottom: 16px;
}

.contact-person-list,
.contact-email-list{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.contact-person-row,
.contact-email-row{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  line-height: 1.9;
  color: #444;
}

.contact-person-role,
.contact-email-label{
  min-width: 140px;
  font-weight: 700;
  color: #1f2a44;
}

.contact-person-name{
  min-width: 90px;
  font-weight: 600;
  color: #222;
}

.contact-person-phone,
.contact-email-value{
  color: #444;
}

.contact-email-row{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 16px;
  line-height: 1.9;
  color: #444;
}

.contact-email-org{
  min-width: 210px;
  font-weight: 700;
  color: #1f2a44;
}

.contact-email-text{
  min-width: 88px;
  color: #444;
}

.contact-email-value{
  color: #444;
}

.contact-email-value a{
  color: var(--fge-primary);
  font-weight: 600;
  word-break: break-all;
}

@media (max-width: 767px){
  .contact-subtitle{
    font-size: 20px;
  }

  .contact-person-role,
  .contact-email-label{
    min-width: 100%;
  }

  .contact-person-name{
    min-width: auto;
  }

  .contact-email-org{
    min-width: 100%;
  }

  .contact-email-text{
    min-width: auto;
  }
}

/* ---------- Guide page ---------- */
#guide-info{
  padding-top: 140px;
}

#guide-info .section-title-header{
  margin-bottom: 26px;
}

.guide-section{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.04);
  padding: 28px;
  margin-bottom: 28px;
}

.guide-section-header{
  margin-bottom: 20px;
}

.guide-section-header h2{
  font-size: 28px;
  color: #1f2a44;
  margin-bottom: 0;
}

.guide-campus-card{
  background: #faf7ef;
  border-radius: 12px;
  padding: 18px;
  margin-bottom: 24px;
}

.guide-campus-photo img{
  width: 100%;
  height: 240px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

.guide-campus-content h3{
  font-size: 24px;
  color: #1f2a44;
  margin-bottom: 12px;
}

.guide-campus-content p{
  margin-bottom: 10px;
  line-height: 1.9;
  color: #444;
}

.guide-subsection{
  margin-bottom: 38px;
}

.guide-subsection:last-child{
  margin-bottom: 0;
}

.guide-subsection h3{
  font-size: 22px;
  color: #1f2a44;
  margin-bottom: 14px;
}

.guide-method{
  margin-bottom: 22px;
}

.guide-method:last-child{
  margin-bottom: 0;
}

.guide-method h4{
  font-size: 17px;
  color: #1f2a44;
  margin-bottom: 8px;
}

.guide-list,
.guide-method ul{
  margin-bottom: 12px;
  padding-left: 20px;
}

.guide-list li,
.guide-method li{
  line-height: 1.9;
  color: #444;
  margin-bottom: 10px;
}

.guide-table-wrap{
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 12px;
  overflow: hidden;
}

.guide-table{
  margin-bottom: 0;
}

.guide-table thead th{
  background: #faf7ef;
  color: #1f2a44;
  font-weight: 700;
  vertical-align: middle;
}

.guide-table td{
  color: #444;
  line-height: 1.8;
  vertical-align: top;
}

.guide-highlight-box{
  background: #fff7dd;
  border-left: 4px solid var(--fge-primary);
  border-radius: 10px;
  padding: 18px 20px;
}

.guide-highlight-box p{
  margin-bottom: 10px;
  line-height: 1.9;
  color: #444;
}

.guide-highlight-box p:last-child{
  margin-bottom: 0;
}

.guide-deadline-item{
  list-style-position: outside;
}

.guide-deadline-label{
  display: inline-block;
  min-width: 7.5em;
  vertical-align: top;
}

.guide-deadline-value{
  display: block;
  margin-left: 7.0em;
}

@media (max-width: 767px){
  .guide-section{
    padding: 20px 18px;
  }

  .guide-section-header h2{
    font-size: 24px;
  }

  .guide-campus-photo{
    margin-bottom: 16px;
  }

  .guide-campus-photo img{
    height: 220px;
  }

  .guide-campus-content h3{
    font-size: 21px;
  }

  .guide-subsection h3{
    font-size: 19px;
  }

  .guide-method h4{
    font-size: 16px;
  }
}

/* ---------- Guide check-in update ---------- */
.guide-checkin-subtitle{
  font-size: 18px;
  font-weight: 700;
  color: #1f2a44;
  margin: 10px 0 14px;
}

.guide-checkin-main-card{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,.04);
  padding: 20px 20px 18px;
  margin-bottom: 18px;
}

.guide-checkin-main-card h4{
  font-size: 20px;
  color: #1f2a44;
  margin-bottom: 12px;
  line-height: 1.6;
}

.guide-checkin-main-card p{
  margin-bottom: 0;
  line-height: 1.9;
  color: #444;
}

.guide-checkin-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.guide-checkin-card{
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,.04);
  padding: 18px 18px 16px;
}

.guide-checkin-card h4{
  font-size: 18px;
  color: #1f2a44;
  margin-bottom: 12px;
  line-height: 1.6;
}

.guide-checkin-card p{
  margin-bottom: 10px;
  line-height: 1.9;
  color: #444;
}

.guide-checkin-card p:last-child{
  margin-bottom: 0;
}

@media (max-width: 767px){
  .guide-checkin-main-card{
    padding: 16px;
    margin-bottom: 16px;
  }

  .guide-checkin-main-card h4{
    font-size: 18px;
  }

  .guide-checkin-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .guide-checkin-card{
    padding: 16px;
  }

  .guide-checkin-card h4{
    font-size: 17px;
  }
}

/* ---------- Guide dining simple layout ---------- */
.guide-dining-simple-text{
  margin-bottom: 18px;
  padding-left: 24px;
}

.guide-dining-simple-text p{
  margin-bottom: 10px;
  line-height: 1.9;
  color: #444;
  font-size: 16px;
}

.guide-dining-simple-text p:last-child{
  margin-bottom: 0;
}

.guide-dining-route-title{
  margin-top: 18px;
}

.guide-dining-photo-row{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.guide-dining-photo-item{
  background: #fff;
}

.guide-dining-photo-box{
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f6f7f9;
}

.guide-dining-photo-box img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.guide-dining-photo-label{
  background: #eac55b;
  color: #111;
  text-align: center;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.5;
  padding: 8px 10px;
}

@media (max-width: 767px){
  .guide-dining-photo-row{
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .guide-dining-photo-label{
    font-size: 13px;
    padding: 8px;
  }
}

/* ---------- Page min-height helper ---------- */
.fge-page-section{
  min-height: calc(100vh - 300px);
}

/* ---------- Section title accent ---------- */
.section-title{
  color: var(--fge-ink) !important;
}

/* ---------- Mobile banner + overlay coordinates ---------- */
@media (max-width: 768px){
  .fge-banner{ padding: 50px 0 8px; }

  .fge-banner .banner-desktop{ display:none; }
  .fge-banner .banner-mobile{ display:block; }

  /* Mobile overlay coordinates (same as your current fge2026 site baseline) */
  .fge-banner .logo-1{ left:7%; top:68%; width:19%; height:26%; }
  .fge-banner .logo-2{ left:51%; top:68%; width:20%; height:26%; }
  .fge-banner .logo-3{ left:27%; top:68%; width:23%; height:26%; }
  .fge-banner .logo-4{ left:72%; top:68%; width:22%; height:26%; }

  /* Allow navbar items to wrap more comfortably */
  .navbar-nav .nav-link,
  .navbar-nav .page-scroll{ padding: 10px 12px !important; }
}
