
  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
  body { margin: 0; background: #eef1f6; }
  html { scrollbar-width: none; -ms-overflow-style: none; }
  html::-webkit-scrollbar { width: 0; height: 0; display: none; }
  ::selection { background: #1e2a6b; color: #fff; }
  a { color: inherit; text-decoration: none; }
  [data-reveal] { transition: opacity .6s ease, transform .6s ease; }
  .lk { transition: color .15s; }
  .lk:hover { color: #2f57b5; }
  .cta { transition: background .15s; }
  .cta:hover { background: #16204f; }
  .ctao { transition: background .15s, color .15s; }
  .ctao:hover { background:#1e2a6b; color:#fff; }
  .yr { transition: background .15s; }
  .yr:hover { background:#e8edf6; }
  .spk:hover { border-color:#9fb0d6; }
  /* ===== nav dropdowns ===== */
  .navitem { position:relative; display:flex; align-items:center; align-self:stretch; }
  nav.ibcc-nav { align-self:stretch; }
  .navitem > .dropdown {
    position:absolute; top:100%; left:0; transform:none;
    margin-top:0; padding-top:0;
    display:none; flex-direction:column; min-width:152px; z-index:60;
  }
  .navitem:hover > .dropdown, .navitem:focus-within > .dropdown { display:flex; }
  .navitem > .dropdown > a {
    background:#fff; padding:11px 18px; font-size:14px; font-weight:500; color:#3f4660;
    white-space:nowrap; text-align:center; border-bottom:1px solid #eef1f6;
    transition:background .15s, color .15s;
  }
  .navitem > .dropdown {
    box-shadow:0 14px 30px rgba(22,32,79,.13); border:1px solid #d7dce8; background:#fff;
  }
  .navitem > .dropdown > a:first-child { border-top:0; }
  .navitem > .dropdown > a:last-child { border-bottom:0; }
  .navitem > .dropdown > a:hover { background:#f1f4fa; color:#1e2a6b; }
  .spk-nav:hover { background:#1e2a6b !important; color:#fff !important; border-color:#1e2a6b !important; }
  [ref] ::-webkit-scrollbar { display:none; }
  .spk-track::-webkit-scrollbar { display:none; }
  @media (max-width: 860px) {
    .ibcc-burger { display:flex !important; }
    nav.ibcc-nav {
      position:absolute; top:64px; left:0; right:0;
      flex-direction:column !important; align-items:stretch !important; gap:0 !important;
      background:#fff; border-bottom:1px solid #d7dce8; box-shadow:0 10px 24px rgba(22,32,79,.08);
      padding:8px 0 14px; display:none !important;
      max-height:calc(100vh - 64px); overflow-y:auto; -webkit-overflow-scrolling:touch;
    }
    nav.ibcc-nav.open { display:flex !important; }
    .navitem { flex-direction:column; align-items:stretch; }
    .navitem > .navtop { position:relative; padding:13px clamp(18px,5vw,40px); font-size:15.5px !important; font-weight:700 !important; }
    /* 아코디언: 기본 접힘, .open 일 때만 펼침 */
    .navitem > .navtop::after { content:"⌄"; position:absolute; right:clamp(18px,5vw,40px); top:50%; transform:translateY(-60%); color:#9aa3bd; font-size:14px; transition:transform .15s; }
    .navitem.open > .navtop::after { transform:translateY(-40%) rotate(180deg); }
    .navitem > .dropdown {
      position:static; transform:none; display:none !important; min-width:0;
      box-shadow:none; border:0; padding-top:0; background:#f6f8fc;
    }
    .navitem.open > .dropdown { display:flex !important; }
    .navitem > .dropdown > a { text-align:left; padding:11px clamp(30px,8vw,56px); border-bottom:1px solid #eaeef5; }
    nav.ibcc-nav > .navtop { padding:13px clamp(18px,5vw,40px); font-size:15.5px !important; }
    nav.ibcc-nav > #lang { margin:10px clamp(18px,5vw,40px) 4px; align-self:flex-start; }
    nav.ibcc-nav > .cta { margin:6px clamp(18px,5vw,40px) 0; text-align:center; }
  }
  .ov-logo { border-right: 0 !important; }
  @media (max-width: 720px) {
    .ov-logo { border-right: 1px solid #c9d0e0 !important; border-bottom: 0 !important; }
  }

  /* ===== 기관 로고: 흰색 로고를 dark footer에 직접(박스 없음) ===== */
  .org-logo { background:transparent; padding:0; }

  /* ===== 연사 캐러셀: 어느 해상도나 카드 정수개로 딱 맞게(우측 잘림 없음) ===== */
  #spkTrack { gap:16px !important; scroll-padding:0 !important; }
  #spkTrack .spk { flex:0 0 calc((100% - 48px) / 4) !important; }                 /* 4개 (gap 16×3) */
  @media (max-width:1024px) { #spkTrack .spk { flex-basis:calc((100% - 32px) / 3) !important; } }  /* 3개 */
  @media (max-width:760px)  { #spkTrack .spk { flex-basis:calc((100% - 16px) / 2) !important; } }  /* 2개 */
  @media (max-width:480px)  { #spkTrack .spk { flex-basis:100% !important; } }                      /* 1개 */

  /* ===== 참가신청 form (#etc) ===== */
  .ibcc-form { border:1px solid #c9d0e0; background:#fbfcfe; padding:clamp(24px,4vw,44px); }
  .ibcc-form .row { display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
  .ibcc-form label.lbl { font-size:13.5px; font-weight:700; color:#1e2a6b; }
  .ibcc-form .field {
    width:100%; font-size:15px; color:#262c44; background:#fff;
    border:1px solid #c4cbdc; border-radius:4px; padding:12px 14px; outline:none;
    transition:border-color .15s, box-shadow .15s;
  }
  .ibcc-form .field:focus { border-color:#1e2a6b; box-shadow:0 0 0 3px rgba(30,42,107,.12); }
  .ibcc-form .submit {
    width:100%; margin-top:6px; font-size:16px; font-weight:700; color:#fff; background:#1e2a6b;
    border:0; border-radius:4px; padding:15px; cursor:pointer; transition:background .15s;
  }
  .ibcc-form .submit:hover { background:#16204f; }
  .ibcc-agree { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:18px 0 6px; font-size:14px; color:#4b5168; }
  .ibcc-agree input { width:17px; height:17px; accent-color:#1e2a6b; cursor:pointer; }
  .ibcc-agree a { color:#1e2a6b; text-decoration:underline; cursor:pointer; }
  /* privacy popup */
  .privacy-popup { display:none; position:fixed; inset:0; z-index:200; background:rgba(13,18,46,.6); align-items:center; justify-content:center; padding:20px; }
  .privacy-popup.open { display:flex; }
  .privacy-content { background:#fff; max-width:640px; width:100%; max-height:84vh; overflow:auto; padding:clamp(20px,3vw,32px); border-radius:8px; }
  .privacy-content table { width:100%; border-collapse:collapse; font-size:13px; color:#3f4660; }
  .privacy-content th, .privacy-content td { border:1px solid #dde3ef; padding:9px 11px; text-align:left; line-height:1.6; vertical-align:top; }
  .privacy-content th[colspan="2"] { background:#f1f4fa; color:#1e2a6b; }
  #privacy-close { margin-top:18px; font-size:14px; font-weight:700; color:#fff; background:#1e2a6b; border:0; border-radius:4px; padding:11px 26px; cursor:pointer; }

  /* ===== 탭 (서브페이지: intro/program) ===== */
  .ibcc-tabbar-wrap { position:sticky; top:64px; z-index:40; background:#fff; border-bottom:1px solid #d7dce8; }
  .ibcc-tabbar { display:flex; gap:2px; max-width:1240px; margin-inline:auto; padding:0 clamp(18px,4vw,56px); overflow-x:auto; scrollbar-width:none; }
  .ibcc-tabbar::-webkit-scrollbar { display:none; }
  .ibcc-tab {
    flex:0 0 auto; background:none; border:0; cursor:pointer;
    padding:18px 22px; font-size:15.5px; font-weight:600; color:#6b7186;
    border-bottom:3px solid transparent; margin-bottom:-1px; white-space:nowrap;
    transition:color .15s, border-color .15s;
  }
  .ibcc-tab:hover { color:#2f57b5; }
  .ibcc-tab.active { color:#1e2a6b; border-bottom-color:#1e2a6b; }
  .ibcc-panel { display:none; background:#fff; }
  .ibcc-panel.active { display:block; min-height:calc(100vh - 64px); }

  /* 역대 포스터: 모바일 스택 시 우측 border 복원 + 하단 겹침 제거 */
  @media (max-width: 760px) {
    .hist-poster { border-right:1px solid #c9d0e0 !important; border-bottom:0 !important; min-height:300px !important; }
  }

  /* 모바일 푸터: 주최·주관/select 좌측 정렬 */
  @media (max-width: 760px) {
    .foot-orgs, .foot-orgs-logos { align-items:flex-start !important; }
    .foot-orgs-logos { margin-left:0 !important; }
    .foot-orgs-logos .org-logo { justify-content:flex-start !important; }
  }
