@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&family=Poppins:wght@600;700;800&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
li { list-style: none; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }

/* ===== BVC 2026 컬러 시스템 (타이틀 이미지 기준: 퍼플 → 틸 그라디언트 + 네이비 + 코랄) ===== */
:root {
  --primary:       #1B3E7A;   /* BVC 2026 워드마크 네이비 */
  --primary-dark:  #10254D;   /* 진한 네이비 (헤더/푸터) */
  --primary-light: #3B6FD1;   /* 밝은 블루 */
  --purple:        #8E7FD6;   /* 그라디언트 시작 (퍼플) */
  --teal:          #3FC1B0;   /* 그라디언트 끝 (틸) */
  --coral:         #F16A57;   /* 포인트 컬러 (SAT/SUN, QR, 배지) */
  --sky:           #DCE3F7;   /* 연한 하늘색 */
  --bg-light:      #F3F5FC;   /* 배경 연블루 */
  --white:         #FFFFFF;
  --text-dark:     #16264A;
  --text-mid:      #3C4A6B;
  --text-gray:     #798199;
  --radius:        14px;
  --shadow:        0 4px 24px rgba(27,62,122,0.10);
}

body { font-family: 'Noto Sans KR', sans-serif; background-color: var(--bg-light); color: var(--text-dark); min-height: 100vh; }

/* ===== HEADER ===== */
header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; background: var(--primary-dark); box-shadow: 0 2px 16px rgba(16,37,77,0.25); }
.header-inner { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0 30px; height: 76px; }
.logo { display: flex; align-items: center; gap: 12px; color: var(--white); }
.logo img { height: 42px; width: auto; object-fit: contain; }
.logo-text .ko { font-size: 15px; font-weight: 700; }
.logo-text .en { font-size: 10px; font-weight: 300; opacity: 0.8; letter-spacing: 0.5px; }

nav ul { display: flex; gap: 2px; }
nav ul li a { color: var(--white); font-size: 13px; font-weight: 600; padding: 9px 15px; border-radius: 6px; display: block; transition: background 0.2s; white-space: nowrap; letter-spacing: 0.3px; }
nav ul li a:hover, nav ul li a.active { background: rgba(255,255,255,0.18); }

.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.hamburger span { display: block; width: 26px; height: 3px; background: var(--white); border-radius: 2px; transition: 0.3s; }
.mobile-nav { display: none; flex-direction: column; background: var(--primary-dark); padding: 10px 0 20px; }
.mobile-nav a { color: var(--white); font-size: 15px; padding: 14px 30px; border-bottom: 1px solid rgba(255,255,255,0.08); display: block; }
.mobile-nav.open { display: flex; }

.page-body { padding-top: 76px; }

/* ===== HERO (타이틀 이미지: 퍼플 → 틸 그라디언트) ===== */
.hero {
  position: relative;
  background: linear-gradient(135deg, #8E7FD6 0%, #6E8FD0 42%, #3FC1B0 100%);
  overflow: hidden;
  min-height: 560px;
  display: flex;
  align-items: center;
}
.hero::before { content: ''; position: absolute; width: 620px; height: 620px; border-radius: 50%; background: rgba(255,255,255,0.06); top: -220px; right: -160px; }
.hero::after  { content: ''; position: absolute; width: 320px; height: 320px; border-radius: 50%; background: rgba(255,255,255,0.06); bottom: -110px; left: -70px; }

.hero-inner { max-width: 1200px; margin: 0 auto; padding: 56px 30px; position: relative; z-index: 2; width: 100%; display: flex; justify-content: center; }

.hero-card {
  background: var(--white);
  border-radius: 26px;
  padding: 44px 40px 36px;
  box-shadow: 0 20px 60px rgba(16,37,77,0.28);
  position: relative;
  text-align: center;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}

.hero-skyline { display: flex; align-items: flex-end; justify-content: center; gap: 4px; margin-bottom: 6px; }
.hero-wordmark { font-family: 'Poppins', 'Noto Sans KR', sans-serif; font-weight: 800; font-size: 74px; color: var(--primary); letter-spacing: 1px; line-height: 1; margin: 6px 0 18px; }

.hero-edition { font-family: 'Poppins', sans-serif; font-size: 20px; font-weight: 700; color: var(--primary-light); margin-bottom: 4px; }
.hero-title { font-size: 34px; font-weight: 900; color: var(--primary); margin-bottom: 18px; }
.hero-date { font-size: 21px; font-weight: 800; color: var(--primary); margin-bottom: 6px; }
.hero-date .day-badge { display: inline-flex; align-items: center; justify-content: center; background: var(--coral); color: var(--white); font-size: 12px; font-weight: 800; width: 30px; height: 30px; border-radius: 50%; margin: 0 4px; vertical-align: middle; }
.hero-venue { font-size: 15px; font-weight: 700; color: var(--text-mid); }

.hero-qr {
  position: absolute; right: -14px; top: -14px;
  background: var(--coral); color: var(--white); border-radius: 14px;
  padding: 10px; text-align: center; box-shadow: 0 8px 24px rgba(241,106,87,0.4);
  width: 96px;
}
.hero-qr .qr-box {
  width: 76px; height: 76px; background: var(--white); border-radius: 8px; margin: 0 auto 6px;
  padding: 8px; position: relative;
  background-image:
    linear-gradient(var(--primary) 40%, transparent 40%),
    linear-gradient(90deg, var(--primary) 40%, transparent 40%);
  background-size: 10px 10px;
  background-position: 8px 8px, 8px 8px;
  background-repeat: repeat;
  background-clip: content-box;
}
.hero-qr .qr-box::before, .hero-qr .qr-box::after, .hero-qr .qr-box span {
  content: ''; position: absolute; width: 18px; height: 18px; border: 3px solid var(--primary); border-radius: 3px;
}
.hero-qr .qr-box::before { top: 6px; left: 6px; }
.hero-qr .qr-box::after { top: 6px; right: 6px; }
.hero-qr .qr-box span { bottom: 6px; left: 6px; display: block; }
.hero-qr .qr-label { font-size: 11px; font-weight: 800; letter-spacing: 0.5px; }

.hero-host { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 26px; padding-top: 22px; border-top: 1px dashed var(--sky); }
.hero-host img { width: 34px; height: 34px; }
.hero-host .host-text { text-align: left; font-size: 12.5px; font-weight: 700; color: var(--text-mid); line-height: 1.4; }

.hero-info { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }
.hero-info-item { background: var(--bg-light); border: 1px solid var(--sky); border-radius: 8px; padding: 9px 18px; color: var(--primary); font-size: 13.5px; font-weight: 700; display: flex; align-items: center; gap: 8px; }

/* ===== D-DAY + SPEAKERS (홈 화면) ===== */
.speaker-section {
  max-width: 1100px; margin: -40px auto 0; position: relative; z-index: 3;
  background: var(--white); border-radius: var(--radius); box-shadow: 0 16px 40px rgba(16,37,77,0.18);
  display: flex; align-items: center; overflow: hidden;
}
.dday-mini { flex-shrink: 0; width: 170px; background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: var(--white); padding: 26px 16px; text-align: center; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.dday-mini .label { font-size: 11px; opacity: 0.8; }
.dday-mini .num { font-family: 'Poppins', sans-serif; font-size: 30px; font-weight: 800; line-height: 1.2; }
.dday-mini .today { font-size: 11px; opacity: 0.75; margin-top: 4px; }

.speaker-area { flex: 1 1 0%; min-width: 0; padding: 22px 24px; }

/* 강연자 슬라이더 좌우 버튼 (은은하게) */
.sp-slider { position: relative; min-width: 0; }
.sp-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(27,62,122,0.12);
  box-shadow: 0 1px 6px rgba(16,37,77,0.12);
  color: var(--primary); font-size: 17px; line-height: 1; font-family: inherit;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; z-index: 4; padding: 0;
  opacity: 0.45; transition: opacity 0.2s, background 0.2s, box-shadow 0.2s;
}
.sp-slider:hover .sp-nav { opacity: 1; }
.sp-nav:hover { background: var(--white); box-shadow: 0 3px 12px rgba(16,37,77,0.22); }
.sp-nav:disabled { opacity: 0 !important; pointer-events: none; }
.sp-nav.prev { left: -6px; }
.sp-nav.next { right: -6px; }
@media (max-width: 600px) { .sp-nav { opacity: 0.7; width: 28px; height: 28px; font-size: 15px; } }
.speaker-area .label { font-size: 11px; font-weight: 700; letter-spacing: 2px; color: var(--teal); text-transform: uppercase; margin-bottom: 12px; }
.speaker-track-wrap { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 4px 2px; }
.speaker-track-wrap::-webkit-scrollbar { display: none; }
.speaker-track { display: flex; gap: 20px; width: max-content; }
.sp-card { flex: 0 0 110px; width: 110px; text-align: center; scroll-snap-align: start; }
.sp-card img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; object-position: center top; margin: 0 auto 8px; border: 3px solid var(--sky); background: var(--bg-light); }
.sp-card .sp-name { font-size: 13px; font-weight: 700; color: var(--text-dark); }
.sp-card .sp-affil { font-size: 10.5px; color: var(--primary-light); margin-top: 2px; line-height: 1.3; }

@media (max-width: 900px) {
  .speaker-section { flex-direction: column; align-items: stretch; margin: -30px 16px 0; }
  .dday-mini { width: 100%; flex-direction: row; justify-content: center; gap: 12px; padding: 14px; }
  .dday-mini .today { margin-top: 0; }
  .speaker-area { width: 100%; flex: 0 1 auto; }
}

/* ===== HOME NOTICE / IMPORTANT DATES ===== */
.home-notice-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.date-card-row { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.date-card { border-radius: var(--radius); padding: 18px 22px; color: var(--white); box-shadow: var(--shadow); }
.date-card .dc-label { font-size: 14px; font-weight: 700; }
.date-card .dc-date { font-size: 13px; opacity: 0.9; margin-top: 4px; }
.date-card:nth-child(1) { background: linear-gradient(120deg, var(--purple), #b09be0); }
.date-card:nth-child(2) { background: linear-gradient(120deg, var(--primary-light), var(--primary)); }
.date-card:nth-child(3) { background: linear-gradient(120deg, var(--teal), #2a9e8f); }

.notice-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 30px; position: relative; min-width: 0; }
.notice-card .nc-title { font-size: 18px; font-weight: 800; color: var(--primary); margin-bottom: 18px; }
.notice-card .nc-more { position: absolute; right: 26px; top: 26px; font-size: 20px; font-weight: 700; color: var(--text-gray); }
.notice-card ul li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bg-light); font-size: 13.5px; }
.notice-card ul li:last-child { border-bottom: none; }
.notice-card ul li a { color: var(--text-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.notice-card ul li a:hover { color: var(--primary); }
.notice-card ul li span { flex-shrink: 0; color: var(--text-gray); font-size: 12px; }
.notice-card ul li a .nb-cat { height: 20px; padding: 0 8px; font-size: 11px; margin-right: 7px; vertical-align: middle; }
@media (max-width: 900px) { .home-notice-grid { grid-template-columns: 1fr; } }

/* ===== SECTION ===== */
.section { max-width: 1100px; margin: 0 auto; padding: 55px 20px; }
.section-title { text-align: center; margin-bottom: 40px; }
.section-title .en { font-size: 11px; font-weight: 700; letter-spacing: 3px; color: var(--teal); text-transform: uppercase; display: block; margin-bottom: 8px; }
.section-title h2 { font-size: 30px; font-weight: 800; color: var(--primary); }
.section-title p { color: var(--text-mid); font-size: 15px; margin-top: 10px; }
.divider { width: 50px; height: 4px; background: linear-gradient(90deg, var(--purple), var(--teal)); border-radius: 2px; margin: 14px auto 0; }

/* INFO CARDS */
.info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 50px; }
.info-card { background: var(--white); border-radius: var(--radius); padding: 28px 22px; box-shadow: var(--shadow); border-top: 4px solid var(--teal); transition: transform 0.2s; }
.info-card:hover { transform: translateY(-4px); }
.info-card .ic-icon { font-size: 32px; margin-bottom: 10px; }
.info-card .ic-title { font-size: 12px; font-weight: 700; color: var(--primary-light); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px; }
.info-card .ic-value { font-size: 17px; font-weight: 700; color: var(--text-dark); line-height: 1.4; }

/* QUICK LINKS */
.quick-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.quick-card { background: var(--white); border-radius: var(--radius); padding: 24px 8px; text-align: center; box-shadow: var(--shadow); transition: all 0.2s; border: 2px solid transparent; }
.quick-card:hover { border-color: var(--teal); transform: translateY(-3px); background: var(--bg-light); }
.quick-card .qc-icon { font-size: 30px; margin-bottom: 8px; }
.quick-card .qc-label { font-size: 13px; font-weight: 700; color: var(--primary); }
.quick-card .qc-en { font-size: 10px; color: var(--text-gray); margin-top: 2px; }

/* GREETING TEASER (홈 화면용 짧은 인사말 미리보기) */
.greeting-teaser { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 40px; display: flex; gap: 34px; align-items: center; }
.greeting-teaser .gt-badge { flex-shrink: 0; width: 84px; height: 84px; border-radius: 50%; background: linear-gradient(135deg, var(--purple), var(--teal)); display: flex; align-items: center; justify-content: center; font-size: 36px; }
.greeting-teaser p { font-size: 15px; line-height: 1.9; color: var(--text-mid); margin-bottom: 14px; }
.greeting-teaser .gt-more { display: inline-block; margin-top: 4px; font-size: 13px; font-weight: 700; color: var(--primary); }
.greeting-teaser .gt-more:hover { text-decoration: underline; }

/* ===== TAB TOGGLE (Welcome Message / Organization 등) ===== */
.tab-toggle { display: flex; flex-wrap: wrap; gap: 10px; }
.tab-toggle input[type="radio"] { display: none; }
.tab-toggle label {
  flex: 1 1 0%; min-width: 130px; text-align: center;
  padding: 15px 14px; box-sizing: border-box;
  background: #E9EEF8;
  border: 2px solid #D3DCEE;
  border-radius: 10px;
  color: var(--text-mid);
  font-weight: 700; font-size: 15px; cursor: pointer;
  transition: background 0.18s, color 0.18s, border-color 0.18s, box-shadow 0.18s, transform 0.18s;
  position: relative;
}
.tab-toggle label:hover { background: #DCE4F4; border-color: var(--primary-light); color: var(--primary); }
.tab-toggle label:active { transform: translateY(1px); }
.tab-toggle.sub label { font-size: 13px; padding: 12px 10px; min-width: 120px; }
.tab-toggle label .tab-en { display: block; font-size: 11px; font-weight: 600; opacity: 0.7; margin-top: 3px; letter-spacing: 0.5px; }

/* 선택된 탭 : 진한 남색 + 그림자 + 아래쪽 화살표로 현재 위치 표시 */
.tab-toggle input:checked + label {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
  box-shadow: 0 6px 16px rgba(27,62,122,0.30);
}
.tab-toggle input:checked + label .tab-en { opacity: 0.9; }
.tab-toggle input:checked + label::after {
  content: ''; position: absolute; left: 50%; bottom: -9px;
  width: 12px; height: 12px; background: var(--primary);
  transform: translateX(-50%) rotate(45deg); border-radius: 2px;
}

.tab-panel {
  flex: 1 1 100%; min-width: 0; max-width: 100%; display: none;
  background: var(--white); border: 1px solid var(--sky);
  padding: 30px; box-sizing: border-box; border-radius: var(--radius);
  margin-top: 6px; box-shadow: var(--shadow);
}
#tab-welcome:checked ~ #panel-welcome,
#tab-org:checked ~ #panel-org { display: block; }
.tab-panel img { border-radius: 10px; }
@media (max-width: 600px) {
  .tab-toggle { gap: 8px; }
  .tab-toggle label { font-size: 13px; padding: 12px 8px; min-width: 0; }
  .tab-toggle.sub label { font-size: 12px; min-width: 0; }
  .tab-toggle label .tab-en { font-size: 10px; }
  .tab-panel { padding: 18px; }
}

/* PAGE HERO (서브 페이지) */
.page-hero { background: linear-gradient(135deg, #8E7FD6 0%, #6E8FD0 45%, #3FC1B0 100%); padding: 60px 30px; text-align: center; position: relative; overflow: hidden; }
.page-hero::before { content: ''; position: absolute; width: 420px; height: 420px; border-radius: 50%; background: rgba(255,255,255,0.06); top: -160px; right: -110px; }
.page-hero .en-tag { font-size: 11px; font-weight: 700; letter-spacing: 3px; color: rgba(255,255,255,0.85); text-transform: uppercase; display: block; margin-bottom: 10px; position: relative; z-index: 1; }
.page-hero h2 { font-size: 32px; font-weight: 900; color: var(--white); position: relative; z-index: 1; }
.page-hero p { color: rgba(255,255,255,0.85); font-size: 14px; margin-top: 10px; position: relative; z-index: 1; }

.placeholder-box { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 70px 30px; text-align: center; color: var(--text-gray); }
.placeholder-box .ph-icon { font-size: 44px; margin-bottom: 14px; }
.placeholder-box h3 { font-size: 18px; color: var(--text-mid); margin-bottom: 8px; }
.placeholder-box p { font-size: 14px; }

/* PROGRAM */
.program-tabs { display: flex; gap: 8px; margin-bottom: 22px; justify-content: center; }
.ptab { padding: 11px 30px; border-radius: 8px; border: 2px solid var(--sky); background: var(--white); color: var(--primary); font-weight: 700; font-size: 14px; cursor: pointer; transition: all 0.2s; }
.ptab.active, .ptab:hover { background: var(--primary); color: var(--white); border-color: var(--primary); }
.program-day { display: none; }
.program-day.active { display: block; }
.program-table-wrap { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 24px; }
.program-table { width: 100%; border-collapse: collapse; }
.program-table th { background: var(--primary-dark); color: var(--white); padding: 13px 14px; font-size: 14px; font-weight: 700; text-align: center; }
.program-table td { padding: 13px 14px; font-size: 14px; border-bottom: 1px solid var(--bg-light); vertical-align: middle; }
.program-table tr:last-child td { border-bottom: none; }
.program-table tr:hover td { background: var(--bg-light); }
.time-col { text-align: center; font-weight: 700; color: var(--primary); white-space: nowrap; width: 130px; }
.session-badge { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; margin-bottom: 4px; }
.badge-keynote { background: var(--sky); color: var(--primary-dark); }
.badge-special { background: #E4F7F4; color: #1A8577; }
.badge-break   { background: #F0F0F0; color: #666; }
.badge-lunch   { background: #E8F5EE; color: #1A7A45; }
.badge-dinner  { background: #FFF0EE; color: var(--coral); }
.talk-title { font-weight: 600; color: var(--text-dark); }
.speaker-name { font-size: 12px; color: var(--text-gray); margin-top: 3px; }

/* ===== FACULTY (강사진) ===== */
.fac-room { font-size: 18px; font-weight: 800; color: var(--primary); margin: 30px 0 16px; padding-left: 14px; border-left: 5px solid var(--primary); }
.fac-room:first-child { margin-top: 0; }
.fac-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 22px; }
.fac-card { display: flex; gap: 16px; align-items: flex-start; background: var(--white); border: 1px solid var(--sky); border-radius: var(--radius); padding: 18px; min-width: 0; }
.fac-photo { width: 96px; height: 96px; flex-shrink: 0; border-radius: 50%; object-fit: cover; object-position: center top; background: var(--bg-light); }
/* 사진 미제출 강사용 자리표시 */
.fac-noimg { width: 96px; height: 96px; flex-shrink: 0; border-radius: 50%; background: var(--bg-light);
  display: flex; align-items: center; justify-content: center; color: #BCC5DA; }
.fac-noimg svg { width: 52px; height: 52px; }
.fac-body { flex: 1 1 0%; min-width: 0; }
.fac-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--bg-light); }
.fac-name { font-size: 17px; font-weight: 800; color: var(--text-dark); }
.fac-affil { font-size: 12.5px; color: var(--text-gray); margin-top: 3px; }
.fac-cv-btn { flex-shrink: 0; background: var(--primary); color: var(--white); border: none; border-radius: 6px; padding: 6px 12px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: inherit; transition: background 0.2s; }
.fac-cv-btn:hover { background: var(--primary-dark); }
.fac-info { margin-top: 10px; }
.fac-info li { position: relative; padding-left: 14px; font-size: 13px; color: var(--text-mid); line-height: 1.6; margin-bottom: 4px; }
.fac-info li::before { content: '●'; position: absolute; left: 0; top: 0; font-size: 7px; color: var(--primary-light); line-height: 2.6; }
.fac-info li:last-child { color: var(--primary); font-weight: 700; }
@media (max-width: 600px) {
  .fac-grid { grid-template-columns: 1fr; gap: 16px; }
  .fac-card { padding: 14px; gap: 12px; }
  .fac-photo { width: 72px; height: 72px; }
  .fac-name { font-size: 15px; }
  .fac-room { font-size: 16px; }
}

/* CV MODAL */
.cv-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.75); z-index: 3000; align-items: center; justify-content: center; padding: 20px; }
.cv-modal.open { display: flex; }
.cv-modal-box { background: var(--white); border-radius: var(--radius); max-width: 900px; width: 100%; max-height: 92vh; display: flex; flex-direction: column; overflow: hidden; }
.cv-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; background: var(--primary-dark); color: var(--white); }
.cv-modal-head .cv-title { font-size: 16px; font-weight: 800; }
.cv-modal-close { background: rgba(255,255,255,0.2); border: none; color: var(--white); width: 32px; height: 32px; border-radius: 50%; font-size: 18px; cursor: pointer; flex-shrink: 0; line-height: 1; }
.cv-modal-close:hover { background: rgba(255,255,255,0.35); }
.cv-modal-body { overflow: auto; padding: 16px; background: var(--bg-light); }
.cv-modal-body img { width: 100%; height: auto; display: block; border-radius: 8px; background: var(--white); }

/* REGISTRATION / TABLE (조직도 등 범용 표) */
.reg-timeline { display: flex; gap: 12px; margin-bottom: 36px; align-items: center; }
.reg-step { flex: 1 1 0%; min-width: 0; text-align: center; position: relative; }
.reg-step-badge { padding: 11px 16px; border-radius: 6px; font-weight: 700; font-size: 14px; color: var(--white); margin-bottom: 10px; background: var(--primary); }
.reg-step-badge.orange { background: #E9A25E; }
.reg-step-badge.coral  { background: #D96A55; }
.reg-step-badge.teal   { background: #3D9A83; }
.reg-step-date { font-size: 14px; color: var(--text-dark); font-weight: 600; }

.reg-section-title { font-size: 16px; font-weight: 800; color: var(--text-dark); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.reg-section-title::before { content: ''; display: block; width: 4px; height: 18px; background: var(--primary); border-radius: 2px; }

.reg-table-wrap { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 24px; max-width: 100%; }
.reg-table { width: 100%; border-collapse: collapse; }
.reg-table th { background: var(--primary-light); color: var(--white); padding: 12px 10px; font-size: 13px; font-weight: 700; text-align: center; }
.reg-table th.type-col { background: var(--primary-dark); }
.reg-table td { padding: 11px 10px; font-size: 13px; border-bottom: 1px solid var(--bg-light); text-align: center; }
.reg-table tr:last-child td { border-bottom: none; }
.reg-table tr:hover td { background: var(--bg-light); }
.reg-table .type-cell { text-align: left; font-weight: 600; color: var(--text-dark); padding-left: 18px; vertical-align: middle; }
.reg-table .org-section-row td { background: #FCE9C9; color: #8A6416; font-weight: 800; text-align: center; }
.reg-table .price { font-weight: 700; color: var(--text-dark); }
.reg-table .price-em { color: var(--primary); }

.reg-notice { border-radius: 8px; padding: 14px 18px; font-size: 13px; color: var(--text-mid); margin-bottom: 10px; line-height: 1.7; }
.reg-notice.red-dot { background: #FFF6F5; border-left: 3px solid var(--coral); color: #B8452F; }
.reg-notice.red-dot::before { content: '● '; }

.reg-buttons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 24px; }
.reg-btn-big { background: var(--primary); color: var(--white); border-radius: 10px; padding: 16px 10px; text-align: center; font-weight: 700; font-size: 13px; display: flex; flex-direction: column; align-items: center; gap: 6px; transition: background 0.2s; }
.reg-btn-big:hover { background: var(--primary-dark); color: var(--white); }
.reg-btn-big .icon { font-size: 22px; }

.reg-contact { background: var(--bg-light); border-radius: 10px; padding: 20px 24px; margin-top: 22px; }
.reg-contact .title { font-size: 15px; font-weight: 800; color: var(--text-dark); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.reg-contact .title::before { content: ''; display: block; width: 4px; height: 16px; background: var(--primary); border-radius: 2px; }
.reg-contact li { font-size: 13px; color: var(--text-mid); padding: 4px 0 4px 16px; position: relative; line-height: 1.6; }
.reg-contact li::before { content: '●'; position: absolute; left: 0; font-size: 8px; color: var(--primary-light); top: 8px; }

/* EVENT / TOUR CARDS (Prizes & Tour) */
.event-grid, .tour-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.event-card, .tour-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; transition: transform 0.2s; }
.event-card:hover, .tour-card:hover { transform: translateY(-4px); }
.event-card img, .tour-card img { width: 100%; height: 170px; object-fit: cover; }
.event-card .ec-body, .tour-card .tc-body { padding: 18px 20px; }
.event-card .ec-title, .tour-card .tc-title { font-size: 16px; font-weight: 800; color: var(--primary); margin-bottom: 8px; }
.event-card .ec-desc, .tour-card .tc-desc { font-size: 13px; color: var(--text-mid); line-height: 1.7; }
.tour-card .tc-link { display: inline-block; margin-top: 8px; font-size: 12.5px; color: var(--primary-light); font-weight: 700; }
.tour-card .tc-link:hover { text-decoration: underline; }

/* VENUE */
.venue-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 28px; }
.venue-card { background: var(--white); border-radius: var(--radius); padding: 26px; box-shadow: var(--shadow); }
.venue-card h4 { font-size: 15px; font-weight: 700; color: var(--primary); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.venue-card p, .venue-card li { font-size: 14px; color: var(--text-mid); line-height: 1.9; }
.venue-card ul li { padding-left: 14px; position: relative; }
.venue-card ul li::before { content: '·'; position: absolute; left: 0; color: var(--primary-light); }
.map-iframe-wrap { width: 100%; max-width: 820px; margin: 0 auto; border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); }
.map-iframe-wrap iframe { width: 100%; height: 420px; border: 0; display: block; }

/* SPONSORS */
.sponsor-tier { margin-bottom: 38px; }
.tier-title { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.tier-badge { padding: 6px 18px; border-radius: 20px; font-size: 13px; font-weight: 700; }
.tier-badge.main     { background: var(--primary-dark); color: #fff; }
.tier-badge.diamond  { background: #E8F4FF; color: var(--primary); border: 2px solid var(--sky); }
.tier-badge.platinum { background: #EDF4FF; color: var(--primary-light); border: 2px solid var(--sky); }
.tier-badge.gold     { background: #FFF8E6; color: #B8860B; border: 2px solid #F5D99B; }
.tier-badge.silver   { background: #F5F5F5; color: #555; border: 2px solid #DDD; }
.tier-line { flex: 1; height: 2px; background: var(--bg-light); }
.sponsor-grid { display: flex; flex-wrap: wrap; gap: 14px; }
.sponsor-logo { background: var(--white); border-radius: 10px; box-shadow: var(--shadow); border: 1px solid #E4E9F5; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--text-mid); transition: all 0.2s; text-align: center; padding: 10px; }
.sponsor-logo:hover { box-shadow: 0 4px 20px rgba(27,62,122,0.15); border-color: var(--sky); }
.sponsor-logo.lg { width: 220px; height: 100px; font-size: 14px; }
.sponsor-logo.md { width: 170px; height: 80px; }
.sponsor-logo.sm { width: 130px; height: 65px; font-size: 12px; }
/* 후원사 안내 배너 (관리자 이미지 관리에서 교체)
   Program 페이지의 .tab-panel 과 동일한 카드 스타일 */
.sponsor-card {
  background: var(--white); border: 1px solid var(--sky);
  padding: 30px; box-sizing: border-box; border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.sponsor-card img { display: block; width: 100%; border-radius: 10px; }
@media (max-width: 600px) { .sponsor-card { padding: 18px; } }

.sponsor-apply { background: linear-gradient(135deg, var(--purple), var(--teal)); border-radius: var(--radius); padding: 38px; text-align: center; color: var(--white); margin-top: 36px; }
.sponsor-apply h3 { font-size: 20px; font-weight: 800; margin-bottom: 10px; }
.sponsor-apply p { font-size: 14px; opacity: 0.9; margin-bottom: 22px; line-height: 1.7; }
.btn-white { display: inline-block; background: var(--white); color: var(--primary); padding: 12px 34px; border-radius: 8px; font-weight: 700; font-size: 14px; transition: all 0.2s; }
.btn-white:hover { background: var(--bg-light); }

/* ===== NOTICE BOARD (전체 목록) ===== */
.notice-board { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.nb-row { display: flex; align-items: center; padding: 16px 24px; border-bottom: 1px solid #EDF1F8; gap: 16px; transition: background 0.15s; }
.nb-row:last-child { border-bottom: none; }
.nb-head { background: var(--primary-dark); color: var(--white); font-size: 13px; font-weight: 700; letter-spacing: 0.5px; }
.nb-num { width: 74px; flex-shrink: 0; text-align: center; }
.nb-head .nb-num { color: rgba(255,255,255,0.85); }
.nb-title { flex: 1 1 0%; min-width: 0; display: flex; align-items: center; gap: 8px; }
.nb-title a {
  color: var(--text-dark); font-size: 14.5px; font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  min-width: 0; transition: color 0.15s;
}
.nb-title a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.nb-date { width: 96px; flex-shrink: 0; text-align: right; color: var(--text-gray); font-size: 13px; }
.nb-head .nb-date { color: rgba(255,255,255,0.85); }

/* 분류 배지 : 기사 / 공지 */
.nb-cat {
  display: inline-flex; align-items: center; justify-content: center;
  height: 26px; padding: 0 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.5px;
}
.nb-num .nb-cat { width: 100%; padding: 0; }
.nb-cat.news   { background: #E8EFFB; color: var(--primary); }
.nb-cat.notice { background: #FCEDE4; color: #B0632F; }

/* 새 글 표시 */
.nb-new {
  flex-shrink: 0; display: inline-flex; align-items: center;
  height: 18px; padding: 0 7px; border-radius: 5px;
  background: var(--coral); color: var(--white);
  font-size: 10px; font-weight: 800; letter-spacing: 0.5px;
}

.notice-board .nb-row:not(.nb-head):hover { background: #F7F9FE; }
.nb-empty { padding: 60px 20px; text-align: center; color: var(--text-gray); }

@media (max-width: 600px) {
  .nb-row { padding: 14px 16px; gap: 10px; }
  .nb-num { width: 54px; }
  .nb-cat { height: 23px; font-size: 11px; }
  .nb-title a { font-size: 13.5px; }
  .nb-date { width: 74px; font-size: 11.5px; }
  .nb-new { display: none; }
}

/* 페이지네이션 */
.nb-pager {
  display: flex; justify-content: center; align-items: center;
  gap: 7px; margin-top: 32px; flex-wrap: wrap;
}
.nb-pager button {
  min-width: 42px; height: 42px; padding: 0 12px;
  background: var(--white);
  border: 1.5px solid #DCE3F0;
  border-radius: 10px;
  color: var(--text-mid);
  font-size: 14.5px; font-weight: 700; font-family: inherit;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 2px rgba(16,37,77,0.05);
  transition: background 0.18s, color 0.18s, border-color 0.18s, box-shadow 0.18s, transform 0.12s;
}
.nb-pager button:hover:not(:disabled) {
  background: var(--bg-light);
  border-color: var(--primary-light);
  color: var(--primary);
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(16,37,77,0.10);
}
.nb-pager button:active:not(:disabled) { transform: translateY(0); }

/* 현재 페이지 */
.nb-pager button.on {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  border-color: var(--primary-dark);
  color: var(--white);
  box-shadow: 0 4px 12px rgba(27,62,122,0.32);
  transform: translateY(-1px);
}
.nb-pager button.on:hover { color: var(--white); }

/* 화살표 버튼 : 조금 더 연하게 */
.nb-pager button.nb-arrow { color: var(--text-gray); font-size: 18px; font-weight: 400; }
.nb-pager button.nb-arrow:hover:not(:disabled) { color: var(--primary); }
.nb-pager button:disabled { opacity: 0.3; cursor: default; box-shadow: none; }

/* 전체 건수 안내 : 버튼 줄과 분리 */
.nb-pager .nb-pageinfo {
  width: 100%; text-align: center;
  margin-top: 14px; font-size: 13px; color: var(--text-gray);
}
@media (max-width: 600px) {
  .nb-pager { gap: 5px; margin-top: 24px; }
  .nb-pager button { min-width: 36px; height: 36px; font-size: 13px; padding: 0 8px; border-radius: 8px; }
  .nb-pager button.nb-arrow { font-size: 16px; }
  .nb-pager .nb-pageinfo { font-size: 12px; margin-top: 12px; }
}
@media (max-width: 600px) {
  .nb-row { padding: 12px 14px; gap: 8px; }
  .nb-num { width: 32px; font-size: 12px; }
  .nb-date { width: 72px; font-size: 11px; }
  .nb-title a { font-size: 13px; }
}

/* ===== NOTICE DETAIL (view.html) ===== */
.notice-detail { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.nd-title { padding: 26px 30px; border-bottom: 1px solid var(--bg-light); font-size: 20px; font-weight: 800; color: var(--text-dark); text-align: left; }
.nd-title .nb-cat { margin-right: 10px; vertical-align: 3px; }
.nd-info { padding: 14px 30px; border-bottom: 1px solid var(--bg-light); display: flex; gap: 18px; font-size: 13px; color: var(--text-gray); }
.nd-info b { color: var(--text-mid); font-weight: 700; margin-right: 4px; }
.nd-cont { padding: 30px; line-height: 1.9; font-size: 15px; color: var(--text-mid); white-space: pre-wrap; text-align: left; }
.nd-cont a { color: var(--primary); text-decoration: underline; }
.nd-cont img { max-width: 100%; border-radius: 10px; margin: 10px 0; }
.nd-back { text-align: center; margin-top: 30px; }
.nd-back a { display: inline-block; padding: 12px 30px; border: 2px solid var(--sky); border-radius: 8px; font-weight: 700; color: var(--primary); font-size: 14px; }
.nd-back a:hover { background: var(--primary); color: var(--white); border-color: var(--primary); }

/* FOOTER */
footer { background: var(--primary-dark); color: rgba(255,255,255,0.65); padding: 38px 30px; text-align: center; margin-top: 60px; }
footer .footer-inner { max-width: 1100px; margin: 0 auto; }
footer .footer-logo { font-size: 17px; font-weight: 800; color: var(--white); margin-bottom: 4px; }
footer .footer-en { font-size: 11px; font-weight: 300; color: var(--sky); letter-spacing: 2px; margin-bottom: 14px; }
footer .footer-info { font-size: 13px; line-height: 2; }
footer .footer-links { margin-top: 14px; display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
footer .footer-links a { font-size: 12px; color: rgba(255,255,255,0.5); transition: color 0.2s; }
footer .footer-links a:hover { color: var(--white); }
footer .footer-copy { margin-top: 18px; font-size: 12px; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 14px; }

/* RESPONSIVE */
@media (max-width: 960px) {
  nav ul { display: none; }
  .hamburger { display: flex; }
  .info-grid { grid-template-columns: repeat(2, 1fr); }
  .quick-grid { grid-template-columns: repeat(3, 1fr); }
  .hero-wordmark { font-size: 52px; }
  .hero-title { font-size: 26px; }
  .hero-qr { position: static; margin: 18px auto 0; }
  .greeting-teaser { flex-direction: column; text-align: center; padding: 30px; }
  .venue-cards { grid-template-columns: 1fr; }
  .reg-timeline { flex-direction: column; gap: 10px; align-items: center; }
  .reg-step { width: 80%; }
  .reg-buttons-grid { grid-template-columns: repeat(2, 1fr); }
  .reg-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .reg-table { min-width: 480px; }
}
@media (max-width: 600px) {
  .info-grid { grid-template-columns: 1fr; }
  .quick-grid { grid-template-columns: repeat(2, 1fr); }
  .section { padding: 36px 16px; }
  .hero-card { padding: 30px 20px 26px; }
  .hero-wordmark { font-size: 40px; }
  .hero-title { font-size: 21px; }
  .hero-date { font-size: 17px; }
  .hero-topbar { flex-direction: column; gap: 4px; text-align: center; }
  .program-tabs { flex-wrap: wrap; }
  .ptab { flex: 1; text-align: center; padding: 9px 14px; font-size: 13px; }
  .reg-buttons-grid { grid-template-columns: 1fr; }
}
