@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&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; }

/* ===== 새 포스터 기준 블루 컬러 시스템 ===== */
:root {
  --primary:       #1A5CB8;   /* 포스터 타이틀 메인 블루 */
  --primary-dark:  #13428A;   /* 진한 네이비 */
  --primary-light: #2E7DD4;   /* 밝은 블루 */
  --sky:           #D0E4F7;   /* 연한 하늘색 */
  --bg-light:      #F0F6FF;   /* 배경 연블루 */
  --white:         #FFFFFF;
  --text-dark:     #1A2D54;   /* 다크 네이비 텍스트 */
  --text-mid:      #2D4070;
  --text-gray:     #6B7EA8;
  --radius:        12px;
  --shadow:        0 4px 24px rgba(26,92,184,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(19,66,138,0.25); }
.header-inner { max-width: 1200px; 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: 50px; width: 50px; border-radius: 50%; object-fit: cover; background: var(--white); }
.logo-text .ko { font-size: 15px; font-weight: 700; }
.logo-text .en { font-size: 10px; font-weight: 300; opacity: 0.8; }

nav ul { display: flex; gap: 2px; }
nav ul li a { color: var(--white); font-size: 13px; font-weight: 500; padding: 9px 13px; border-radius: 6px; display: block; transition: background 0.2s; white-space: nowrap; }
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(160deg, #13428A 0%, #1A5CB8 50%, #2E7DD4 100%);
  overflow: hidden;
  min-height: 440px;
  display: flex;
  align-items: center;
}
.hero::before { content: ''; position: absolute; width: 600px; height: 600px; border-radius: 50%; background: rgba(255,255,255,0.04); top: -200px; right: -150px; }
.hero::after  { content: ''; position: absolute; width: 300px; height: 300px; border-radius: 50%; background: rgba(255,255,255,0.04); bottom: -100px; left: -60px; }
.hero-circle1 { position: absolute; width: 200px; height: 200px; border: 3px solid rgba(255,255,255,0.10); border-radius: 50%; top: 30px; right: 260px; }
.hero-circle2 { position: absolute; width: 100px; height: 100px; border: 3px solid rgba(255,255,255,0.07); border-radius: 50%; top: 20px; right: 420px; }
.hero-circle3 { position: absolute; width: 280px; height: 280px; border: 2px solid rgba(255,255,255,0.06); border-radius: 50%; bottom: -80px; right: 80px; }

/* 포스터 스타일 경남 지도 배경 힌트 */
.hero-map-bg {
  position: absolute;
  right: 60px; top: 50%;
  transform: translateY(-50%);
  width: 280px; height: 280px;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  display: flex; align-items: center; justify-content: center;
  font-size: 120px;
  z-index: 1;
}

.hero-inner { max-width: 1200px; margin: 0 auto; padding: 52px 30px; position: relative; z-index: 2; }
.hero-tag { display: inline-block; background: rgba(255,255,255,0.15); color: var(--white); font-size: 12px; font-weight: 500; padding: 5px 14px; border-radius: 20px; margin-bottom: 16px; border: 1px solid rgba(255,255,255,0.25); letter-spacing: 1px; }
.hero h1 { color: var(--white); font-size: 50px; font-weight: 900; line-height: 1.1; margin-bottom: 6px; }
.hero h1 .year { font-size: 22px; font-weight: 500; opacity: 0.88; display: block; margin-bottom: 4px; }
.hero h1 .main-title { color: var(--white); font-size: 50px; font-weight: 900; }
.hero-en { font-size: 13px; color: rgba(255,255,255,0.7); letter-spacing: 1px; margin-bottom: 6px; }
.hero-line { width: 40px; height: 3px; background: rgba(255,255,255,0.5); margin: 14px 0; border-radius: 2px; }
.hero-desc { color: rgba(255,255,255,0.88); font-size: 19px; font-weight: 700; margin-bottom: 18px; }
.hero-slogan { font-size: 13px; color: rgba(255,255,255,0.7); margin-bottom: 22px; }
.hero-info { display: flex; flex-wrap: wrap; gap: 10px; }
.hero-info-item { background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.22); border-radius: 8px; padding: 9px 18px; color: var(--white); font-size: 14px; display: flex; align-items: center; gap: 8px; }

.dday-badge { position: absolute; right: 50px; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.12); border: 2px solid rgba(255,255,255,0.30); border-radius: var(--radius); padding: 26px 32px; text-align: center; color: var(--white); z-index: 2; }
.dday-badge .label { font-size: 12px; opacity: 0.8; margin-bottom: 4px; }
.dday-badge .dday-num { font-size: 52px; font-weight: 900; line-height: 1; }
.dday-badge .dday-unit { font-size: 16px; font-weight: 300; margin-top: 4px; }
.dday-badge .slogan { font-size: 11px; opacity: 0.7; margin-top: 10px; border-top: 1px solid rgba(255,255,255,0.2); padding-top: 10px; line-height: 1.6; }

/* ===== SPEAKER SLIDER ===== */
.speaker-slider-section { background: var(--white); padding: 48px 0; border-top: 4px solid var(--primary); }
.speaker-slider-section .section-label { text-align: center; font-size: 11px; font-weight: 700; letter-spacing: 3px; color: var(--primary-light); text-transform: uppercase; margin-bottom: 6px; }
.speaker-slider-section h2 { text-align: center; font-size: 28px; font-weight: 800; color: var(--primary-dark); margin-bottom: 28px; }
.slider-track-wrap { overflow: hidden; max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.slider-track { display: flex; gap: 20px; transition: transform 0.4s ease; }
.speaker-card { flex: 0 0 180px; text-align: center; display: flex; flex-direction: column; align-items: center; }
.speaker-card .sp-photo { width: 130px; height: 130px; border-radius: 50%; object-fit: cover; object-position: center top; border: 4px solid var(--sky); margin: 0 auto 12px; background: var(--bg-light); display: block; }
.speaker-card .sp-name { font-size: 15px; font-weight: 700; color: var(--text-dark); }
.speaker-card .sp-affil { font-size: 11px; color: var(--text-gray); margin-top: 4px; line-height: 1.4; }
.speaker-card .sp-field { display: inline-block; margin-top: 6px; background: var(--bg-light); color: var(--primary); font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; border: 1px solid var(--sky); }
.slider-controls { text-align: center; margin-top: 20px; display: flex; justify-content: center; gap: 10px; }
.slider-btn { background: var(--primary); color: var(--white); border: none; width: 36px; height: 36px; border-radius: 50%; cursor: pointer; font-size: 16px; transition: background 0.2s; }
.slider-btn:hover { background: var(--primary-light); }
.slider-dots { display: flex; gap: 6px; align-items: center; }
.slider-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sky); cursor: pointer; transition: all 0.2s; }
.slider-dot.active { background: var(--primary); width: 20px; border-radius: 4px; }

/* ===== 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(--primary-light); text-transform: uppercase; display: block; margin-bottom: 8px; }
.section-title h2 { font-size: 30px; font-weight: 800; color: var(--primary-dark); }
.section-title p { color: var(--text-mid); font-size: 15px; margin-top: 10px; }
.divider { width: 50px; height: 4px; background: linear-gradient(90deg, var(--primary-dark), var(--primary-light)); 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(--primary); 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(--primary-light); 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-dark); }
.quick-card .qc-en { font-size: 10px; color: var(--text-gray); margin-top: 2px; }

/* PAGE HERO (서브) */
.page-hero { background: linear-gradient(160deg, #13428A 0%, #1A5CB8 60%, #2E7DD4 100%); padding: 55px 30px; text-align: center; position: relative; overflow: hidden; }
.page-hero::before { content: ''; position: absolute; width: 400px; height: 400px; border-radius: 50%; background: rgba(255,255,255,0.04); top: -150px; right: -100px; }
.page-hero .en-tag { font-size: 11px; font-weight: 700; letter-spacing: 3px; color: var(--sky); text-transform: uppercase; display: block; margin-bottom: 10px; }
.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.75); font-size: 14px; margin-top: 10px; position: relative; z-index: 1; }

/* GREETING */
.greeting-box { background: var(--white); border-radius: var(--radius); padding: 46px; box-shadow: var(--shadow); display: flex; gap: 46px; align-items: flex-start; }
.greeting-portrait { flex-shrink: 0; width: 150px; text-align: center; }
.greeting-portrait .portrait-img { width: 120px; height: 120px; border-radius: 50%; background: var(--bg-light); border: 4px solid var(--sky); margin: 0 auto 10px; display: flex; align-items: center; justify-content: center; font-size: 52px; }
.greeting-portrait .name { font-weight: 700; font-size: 15px; color: var(--text-dark); }
.greeting-portrait .title { font-size: 12px; color: var(--text-gray); margin-top: 4px; line-height: 1.5; }
.greeting-content h3 { font-size: 20px; font-weight: 800; color: var(--primary-dark); margin-bottom: 18px; padding-bottom: 14px; border-bottom: 2px solid var(--bg-light); }
.greeting-content p { font-size: 15px; line-height: 2.0; color: var(--text-mid); margin-bottom: 14px; }
.greeting-signature { margin-top: 28px; text-align: right; font-size: 14px; color: var(--text-mid); font-weight: 500; }

/* 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; }
.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: #F0F6FF; }
.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: #D0E4F7; color: var(--primary-dark); }
.badge-special { background: #E8F4FD; color: #1A6FA8; }
.badge-break   { background: #F0F0F0; color: #666; }
.badge-lunch   { background: #E8F5EE; color: #1A7A45; }
.badge-dinner  { background: #FFF0F0; color: #C0392B; }
.talk-title { font-weight: 600; color: var(--text-dark); }
.speaker-name { font-size: 12px; color: var(--text-gray); margin-top: 3px; }

/* FLOOR MAP / VENUE */
.floor-info { background: var(--white); border-radius: var(--radius); padding: 36px; box-shadow: var(--shadow); }
.floor-info h3 { font-size: 17px; font-weight: 800; color: var(--primary-dark); margin-bottom: 20px; }
.floor-map-placeholder { width: 100%; max-width: 820px; margin: 0 auto; background: var(--bg-light); border-radius: 10px; border: 2px dashed var(--sky); padding: 50px 20px; color: var(--text-gray); font-size: 14px; text-align: center; }
.map-iframe-wrap { width: 100%; max-width: 820px; margin: 0 auto; border-radius: 10px; overflow: hidden; box-shadow: 0 4px 16px rgba(26,92,184,0.12); }
.map-iframe-wrap iframe { width: 100%; height: 420px; border: 0; display: block; }
.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-dark); 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); }

/* REGISTRATION */
.reg-timeline { display: flex; gap: 12px; margin-bottom: 36px; align-items: center; }
.reg-step { flex: 1; text-align: center; position: relative; }
.reg-step::after { display: none; }
.reg-step:last-child::after { display: none; }
.reg-step-badge { padding: 10px 16px; border-radius: 8px; font-weight: 700; font-size: 13px; color: var(--white); margin-bottom: 8px; }
.reg-step-date { font-size: 13px; color: var(--text-mid); font-weight: 500; }

.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: hidden; margin-bottom: 24px; }
.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: #F0F6FF; }
.reg-table .type-cell { text-align: left; font-weight: 600; color: var(--text-dark); }
.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: #FFF8F8; border-left: 3px solid #E74C3C; color: #C0392B; }
.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; }

/* 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: #1A5CB8; border: 2px solid #B3D9F2; }
.tier-badge.platinum { background: #EDF4FF; color: var(--primary); 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 #E0ECF8; 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(26,92,184,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; }
.sponsor-apply { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); 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.85; margin-bottom: 22px; line-height: 1.7; }
.btn-white { display: inline-block; background: var(--white); color: var(--primary-dark); padding: 12px 34px; border-radius: 8px; font-weight: 700; font-size: 14px; transition: all 0.2s; }
.btn-white:hover { background: var(--bg-light); }

/* SPEAKER CV PAGE */
.speaker-grid-cv { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.sp-cv-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; transition: transform 0.2s; cursor: pointer; }
.sp-cv-card:hover { transform: translateY(-5px); box-shadow: 0 8px 30px rgba(26,92,184,0.16); }
.sp-cv-photo { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; object-position: center top; background: var(--bg-light); display: block; }
.sp-cv-info { padding: 16px; }
.sp-cv-name { font-size: 16px; font-weight: 700; color: var(--text-dark); margin-bottom: 4px; }
.sp-cv-affil { font-size: 12px; color: var(--text-gray); line-height: 1.4; margin-bottom: 8px; }
.sp-cv-field { display: inline-block; background: var(--bg-light); color: var(--primary-dark); font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; border: 1px solid var(--sky); }
.sp-cv-btn { display: block; width: 100%; background: var(--primary); color: var(--white); padding: 10px; text-align: center; font-size: 13px; font-weight: 700; transition: background 0.2s; margin-top: 12px; border-radius: 6px; border: none; cursor: pointer; }
.sp-cv-btn:hover { background: var(--primary-dark); }

/* MODAL */
.modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 2000; align-items: center; justify-content: center; }
.modal-overlay.open { display: flex; }
.modal-box { background: var(--white); border-radius: var(--radius); max-width: 660px; width: 90%; max-height: 88vh; overflow-y: auto; }
.modal-header { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); padding: 24px 28px; display: flex; align-items: center; gap: 20px; }
.modal-header img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; object-position: center top; border: 3px solid rgba(255,255,255,0.5); background: var(--bg-light); }
.modal-header .mh-info .name { font-size: 20px; font-weight: 800; color: var(--white); }
.modal-header .mh-info .affil { font-size: 13px; color: rgba(255,255,255,0.8); margin-top: 4px; }
.modal-close { margin-left: auto; background: rgba(255,255,255,0.2); border: none; color: var(--white); width: 34px; height: 34px; border-radius: 50%; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.modal-body { padding: 28px; }
.modal-body h4 { font-size: 14px; font-weight: 700; color: var(--primary-dark); margin-bottom: 10px; border-left: 3px solid var(--primary); padding-left: 10px; }
.modal-body ul { margin-bottom: 18px; }
.modal-body ul li { font-size: 14px; color: var(--text-mid); padding: 5px 0 5px 16px; position: relative; line-height: 1.6; border-bottom: 1px solid var(--bg-light); }
.modal-body ul li:last-child { border-bottom: none; }
.modal-body ul li::before { content: '▸'; position: absolute; left: 0; color: var(--primary-light); }

/* FOOTER */
footer { background: #0E2952; 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); }
  .greeting-box { flex-direction: column; padding: 28px; }
  .dday-badge { display: none; }
  .hero h1 .main-title { font-size: 36px; }
  .venue-cards { grid-template-columns: 1fr; }
  .speaker-grid-cv { grid-template-columns: repeat(2, 1fr); }
  /* 타임라인: 세로 + 중앙 정렬 */
  .reg-timeline { flex-direction: column; gap: 10px; align-items: center; }
  .reg-step { width: 80%; max-width: none; }
  .reg-step-badge { width: 100%; box-sizing: border-box; }
  .reg-step::after { display: none; }
  .reg-buttons-grid { grid-template-columns: repeat(2, 1fr); }
  .hero-map-bg { display: none; }
  /* 등록비 테이블: 가로 스크롤 */
  .reg-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .reg-table { min-width: 520px; }
}
@media (max-width: 600px) {
  .info-grid { grid-template-columns: 1fr; }
  .quick-grid { grid-template-columns: repeat(2, 1fr); }
  .section { padding: 36px 16px; }
  .hero-inner { padding: 36px 18px; }
  .hero h1 .main-title { font-size: 28px; }
  .hero h1 .year { font-size: 16px; }
  .program-tabs { flex-wrap: wrap; }
  .ptab { flex: 1; text-align: center; padding: 9px 14px; font-size: 13px; }
  .speaker-grid-cv { grid-template-columns: repeat(2, 1fr); }
  .reg-buttons-grid { grid-template-columns: 1fr; }
  .reg-table { font-size: 12px; min-width: 460px; }
  .reg-table th, .reg-table td { padding: 8px 6px; }
}
