@charset "UTF-8";
/* ============================================================
 *  WAC 2025 - main.css (프론트)
 * ============================================================ */
* { margin:0; padding:0; box-sizing:border-box; }
html, body { width:100%; }
body {
  font-family:'Noto Sans KR','Malgun Gothic',Arial,sans-serif;
  font-size:15px; color:#222; line-height:1.6; background:#fff;
  overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
ul, ol { list-style:none; }
img { max-width:100%; vertical-align:middle; border:0; }
button, input, select, textarea { font-family:inherit; font-size:inherit; }
button { background:none; border:0; cursor:pointer; }
table { border-collapse:collapse; width:100%; }

/* ─ 헤더 (구름처럼 떠있는 트렌디 디자인) ─ */
#header {
  position:fixed; top:18px; left:50%;
  transform:translateX(-50%);
  width:calc(100% - 40px); max-width:1380px;
  z-index:1000;
  background:transparent;
  border:1px solid transparent;
  border-radius:60px;
  box-shadow:none;
  transition:all .35s cubic-bezier(.4, 0, .2, 1);
}
/* 스크롤하면 흰색 글래스 헤더 (메인/서브 공통) */
#header.scrolled {
  background:rgba(255, 255, 255, 0.85);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-color:rgba(255, 255, 255, 0.6);
  box-shadow:
    0 10px 40px rgba(31, 93, 169, 0.15),
    0 4px 12px rgba(0, 0, 0, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
body.is-main main, body.is-main .main_page { margin-top:0; }
body.is-sub { padding-top:0; }
.header-inner {
  max-width:1400px; margin:0 auto; height:70px;
  padding:0 30px;
  display:flex; align-items:center; justify-content:space-between;
}

/* ── 로고 ── */
.logo a { display:flex; align-items:center; gap:10px; }
.logo img { height:42px; }
.logo-text {
  font-size:20px; font-weight:800;
  color:#fff;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.4),
    0 0 3px rgba(0, 0, 0, 0.3);
  letter-spacing:.5px;
  transition:all .25s;
}
#header.scrolled .logo-text {
  color:#1f5da9;
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:none;
}

/* ── GNB (트렌디 알약 버튼) ── */
#gnb { flex:1; display:flex; justify-content:center; }
.gnb-list { display:flex; gap:6px; }
.gnb-item { position:relative; }
.gnb-link {
  display:block; padding:10px 22px;
  font-weight:600; font-size:14.5px;
  color:#fff;
  text-shadow:
    0 1px 4px rgba(0, 0, 0, 0.5),
    0 0 2px rgba(0, 0, 0, 0.4);
  border-radius:24px;
  transition:all .25s cubic-bezier(.4, 0, .2, 1);
  letter-spacing:.2px;
}
.gnb-link:hover {
  background:rgba(255, 255, 255, 0.25);
  transform:translateY(-1px);
}
.gnb-item:hover > .gnb-link {
  background:#fff; color:#1f5da9; text-shadow:none;
  box-shadow:0 6px 16px rgba(0, 0, 0, 0.2);
}
#header.scrolled .gnb-link {
  color:#1f3a5f; text-shadow:none;
}
#header.scrolled .gnb-link:hover {
  background:linear-gradient(135deg, rgba(31, 93, 169, 0.12) 0%, rgba(0, 120, 212, 0.12) 100%);
  color:#0078d4;
}
#header.scrolled .gnb-item:hover > .gnb-link {
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  color:#fff;
  box-shadow:0 6px 16px rgba(31, 93, 169, 0.3);
}

/* ── 서브 메뉴 (구름처럼 떠있는 카드) ── */
.sub-list {
  position:absolute; top:calc(100% + 14px); left:50%;
  transform:translateX(-50%) translateY(8px);
  min-width:210px; padding:10px;
  background:rgba(255, 255, 255, 0.95);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255, 255, 255, 0.6);
  border-radius:18px;
  box-shadow:
    0 16px 50px rgba(31, 93, 169, 0.18),
    0 4px 12px rgba(0, 0, 0, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  opacity:0; visibility:hidden;
  transition:all .25s cubic-bezier(.4, 0, .2, 1);
}
.sub-list::before {
  content:''; position:absolute; top:-6px; left:50%;
  transform:translateX(-50%) rotate(45deg);
  width:12px; height:12px;
  background:rgba(255, 255, 255, 0.95);
  border-top:1px solid rgba(255, 255, 255, 0.6);
  border-left:1px solid rgba(255, 255, 255, 0.6);
}
.gnb-item:hover .sub-list {
  opacity:1; visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.sub-list li a {
  display:block; padding:10px 16px;
  font-size:13.5px; color:#1f3a5f; font-weight:500;
  white-space:nowrap; border-radius:10px;
  transition:all .2s;
}
.sub-list li a:hover {
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  color:#fff; padding-left:22px;
  box-shadow:0 4px 12px rgba(31, 93, 169, 0.25);
}

/* ── 유틸 영역 (My Page 등) ── */
.util { display:flex; align-items:center; gap:12px; }
.util-link {
  font-size:13px; font-weight:600;
  padding:8px 18px;
  background:rgba(255, 255, 255, 0.95); color:#1f5da9;
  border:1px solid rgba(31, 93, 169, 0.22);
  border-radius:24px;
  transition:all .25s;
  box-shadow:0 5px 16px rgba(0, 0, 0, 0.28);
}
.util-link:hover {
  transform:translateY(-2px);
  background:#fff; color:#1f5da9 !important;
  box-shadow:0 8px 20px rgba(0, 0, 0, 0.2);
}
#header.scrolled .util-link {
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%); color:#fff;
  box-shadow:0 4px 12px rgba(31, 93, 169, 0.25);
}
#header.scrolled .util-link:hover {
  color:#fff !important;
  box-shadow:0 8px 20px rgba(31, 93, 169, 0.4);
}

/* ── 모바일 토글 ── */
#mobile-toggle {
  display:none; width:44px; height:44px;
  position:relative; border-radius:50%;
  background:rgba(255, 255, 255, 0.97);
  border:1px solid rgba(31, 93, 169, 0.28);
  box-shadow:0 6px 18px rgba(0, 0, 0, 0.30);
  transition:all .25s;
}
#mobile-toggle:hover {
  transform:scale(1.05);
  box-shadow:0 6px 18px rgba(0, 0, 0, 0.25);
}
#mobile-toggle span {
  position:absolute; left:50%; top:50%;
  width:20px; height:2px; background:#1f5da9;
  border-radius:2px;
  transform:translate(-50%, -50%);
  transition:all .3s;
}
#mobile-toggle span:nth-child(1) { transform:translate(-50%, -8px); }
#mobile-toggle span:nth-child(2) { transform:translate(-50%, -50%); }
#mobile-toggle span:nth-child(3) { transform:translate(-50%, 4px); }
#mobile-toggle.active span:nth-child(1) { transform:translate(-50%, -50%) rotate(45deg); }
#mobile-toggle.active span:nth-child(2) { opacity:0; }
#mobile-toggle.active span:nth-child(3) { transform:translate(-50%, -50%) rotate(-45deg); }
#header.scrolled #mobile-toggle {
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  box-shadow:0 4px 12px rgba(31, 93, 169, 0.25);
}
#header.scrolled #mobile-toggle span { background:#fff; }

/* ── 모바일 메뉴 (구름처럼 떠있는 사이드 패널) ── */
#mobile-menu {
  position:fixed; top:90px; right:20px;
  width:320px; max-width:calc(100vw - 40px); max-height:calc(100vh - 110px);
  background:rgba(255, 255, 255, 0.96);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255, 255, 255, 0.6);
  border-radius:24px;
  box-shadow:
    0 20px 60px rgba(31, 93, 169, 0.25),
    0 8px 20px rgba(0, 0, 0, 0.08);
  opacity:0; visibility:hidden;
  transform:translateY(-12px) scale(.96);
  transition:all .3s cubic-bezier(.4, 0, .2, 1);
  overflow-y:auto;
  z-index:999;
}
#mobile-menu.active {
  opacity:1; visibility:visible;
  transform:translateY(0) scale(1);
}
.m-menu-inner { padding:14px; }
.m-depth1 > a {
  display:block; padding:12px 18px;
  font-weight:600; font-size:15px; color:#1f3a5f;
  border-radius:12px; margin-bottom:4px;
  transition:all .2s;
}
.m-depth1 > a:hover {
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  color:#fff;
}
.m-depth2 {
  padding:4px 0 10px 12px;
  border-left:2px solid #e6f0fa;
  margin:0 0 8px 18px;
}
.m-depth2 a {
  display:block; padding:8px 14px; font-size:13.5px; color:#5a6a7d;
  border-radius:10px; transition:all .15s;
}
.m-depth2 a:hover { background:#f0f7fd; color:#0078d4; padding-left:20px; }

/* ═══════════════════════════════════════════
   메인 페이지 (원본 main.asp 스타일 그대로)
   ═══════════════════════════════════════════ */

.center_inner { width:100%; max-width:1200px; margin:0 auto; }

.main_page * {
  margin:0; padding:0; box-sizing:border-box;
}
.main_page ul, .main_page ol { list-style:none; }

/* ─── Main Visual (Modern + 타이핑) ─── */
.Main_visual {
  min-height:100vh; padding:140px 20px 80px;
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.mv-content {
  position:relative; z-index:5;
  width:100%; max-width:1300px; margin:0 auto;
  text-align:center; color:#fff;
}
.mv-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:600; letter-spacing:3px;
  color:rgba(255, 255, 255, 0.85);
  text-transform:uppercase;
  margin-bottom:30px;
  text-shadow:0 2px 8px rgba(0,0,0,.3);
}
.mv-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-weight:900; line-height:0.95;
  letter-spacing:-3px;
  margin-bottom:40px;
  text-shadow:0 6px 30px rgba(0,0,0,.35);
}
.mv-title span {
  display:block; font-size:90px;
}
.mv-title em {
  font-style:normal;
  background:linear-gradient(135deg, #5eb5ff 0%, #ffffff 50%, #b8d6f5 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* 타이핑 효과 영역 (프롬프트 스타일) */
.mv-typing {
  display:inline-flex; align-items:center; gap:12px;
  padding:14px 26px;
  background:rgba(0, 0, 0, 0.4);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255, 255, 255, 0.18);
  border-radius:8px;
  font-family:'Courier New', 'SF Mono', Consolas, monospace;
  font-size:20px;
  color:#7ee0ff;
  margin-bottom:50px;
  min-height:54px;
  box-shadow:
    0 10px 30px rgba(0, 0, 0, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  max-width:90%;
}
.prompt-cursor {
  color:#5eb5ff;
  font-weight:700; font-size:22px;
  user-select:none;
}
#typing-text {
  color:#fff;
  font-weight:500;
  white-space:nowrap;
}
.typing-caret {
  display:inline-block;
  color:#5eb5ff;
  font-weight:300;
  animation:caretBlink 1s steps(2) infinite;
  margin-left:2px;
}
@keyframes caretBlink {
  0%, 50% { opacity:1; }
  51%, 100% { opacity:0; }
}

/* CTA 버튼 */
.mv-cta {
  display:flex; gap:16px; justify-content:center; flex-wrap:wrap;
  margin-top:8px;
}
.btn-cta {
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 36px;
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:700; letter-spacing:1px;
  text-transform:uppercase;
  border-radius:50px;
  transition:all .25s cubic-bezier(.4, 0, .2, 1);
  cursor:pointer;
}
.btn-cta i {
  font-style:normal; font-size:18px;
  transition:transform .25s;
}
.btn-cta.primary {
  background:linear-gradient(135deg, #0078d4 0%, #5eb5ff 100%);
  color:#fff;
  box-shadow:0 10px 30px rgba(0, 120, 212, 0.4);
}
.btn-cta.primary:hover {
  transform:translateY(-3px);
  box-shadow:0 14px 40px rgba(0, 120, 212, 0.55);
  color:#fff;
}
.btn-cta.ghost {
  background:rgba(255, 255, 255, 0.1);
  border:1.5px solid rgba(255, 255, 255, 0.4);
  color:#fff;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn-cta.ghost:hover {
  background:rgba(255, 255, 255, 0.95);
  color:#003a78;
  transform:translateY(-3px);
  box-shadow:0 14px 40px rgba(0, 0, 0, 0.2);
}
.btn-cta:hover i { transform:translateX(6px); }
.btn-cta.lg { padding:20px 50px; font-size:15px; }

/* ─── 마퀴 텍스트 띠 ─── */
.marquee-wrap {
  position:relative; z-index:10;
  background:linear-gradient(90deg, #003a78 0%, #0078d4 50%, #003a78 100%);
  padding:18px 0;
  overflow:hidden;
  border-top:1px solid rgba(255, 255, 255, 0.1);
  border-bottom:1px solid rgba(255, 255, 255, 0.1);
}
.marquee-inner {
  display:flex; gap:60px;
  animation:marqueeScroll 40s linear infinite;
  white-space:nowrap;
}
.marquee-content {
  display:flex; gap:60px;
  font-family:'Montserrat',sans-serif;
  font-size:22px; font-weight:800;
  color:#fff;
  letter-spacing:2px;
  text-transform:uppercase;
}
.marquee-content span {
  color:rgba(255, 255, 255, 0.9);
  white-space:nowrap;
}
@keyframes marqueeScroll {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}

/* ─── 구름 애니메이션 ─── */
.cloud { position:absolute; pointer-events:none; }
.cloud01 { left:-100px;  top:630px;  z-index:1; width:1200px; }
.cloud02 { right:-100px; top:690px;  z-index:1; width:1200px; }
.cloud03 {
  right:-500px; top:650px; z-index:1;
  animation-duration:80s; animation-name:cloud03;
  animation-iteration-count:infinite; animation-direction:alternate;
}
.cloud04 {
  left:-520px; top:0; z-index:1;
  animation-duration:100s; animation-name:cloud04;
  animation-iteration-count:infinite; animation-direction:alternate;
}
.cloud05 {
  left:0; bottom:0; z-index:0; display:block; width:100%;
}
.cloud img { max-width:100%; }

@keyframes cloud01 { 0%{transform:translate(0,0);} 100%{transform:translate(0,20px);} }
@keyframes cloud02 { 0%{transform:translate(0,0);} 100%{transform:translate(0,10px);} }
@keyframes cloud03 { 0%{transform:translate(0,0);} 100%{transform:translate(-1200px,0);} }
@keyframes cloud04 { 0%{transform:translate(0,0);} 100%{transform:translate(1200px,0);} }

/* ─── 공통 타이틀 ─── */
.main_page h3.Main_title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  color:#fff; font-weight:400; font-size:32px; margin-bottom:20px;
}
.main_page .arrow {
  position:absolute; width:82px; height:82px;
  background:#1f5da9; border-radius:50%;
}
.main_page .arrow img {
  position:absolute; left:0; top:50%;
  transform:translate(0, -50%); transition:all 0.3s;
}

/* ─── D-DAY 카운트다운 ─── */
.Main_dday_count {
  padding:168px 0; color:#fff; text-align:center;
  position:relative; z-index:10;
}
.Main_dday_count h3.Main_title { margin-top:10px; }
.Main_dday_count ul {
  display:flex; align-items:center; justify-content:center;
  position:relative; z-index:10; gap:8px;
}
.Main_dday_count ul > li {
  text-align:center; font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:84px; line-height:1.2; font-weight:800; color:#fff;
  text-shadow:3px 3px 3px rgba(0, 0, 0, 0.1);
}
.Main_dday_count ul > li > div:nth-child(2) { font-size:11px; }

/* ─── 빠른 링크 4개 ─── */
.Main_menu_list {
  width:95%; max-width:1200px; margin:0 auto;
  position:relative; z-index:10;
}
.Main_menu_list ul { display:flex; gap:20px; }
.Main_menu_list ul > li { width:25%; }
.Main_menu_list ul > li > a {
  width:100%; display:flex; flex-direction:column; align-items:center;
  background:#fff; color:#1f5da9; font-size:28px; font-weight:500;
  border-radius:200px; height:360px; position:relative;
  justify-content:center; transition:all .2s;
}
.Main_menu_list ul > li > a:hover {
  transform:translateY(-6px);
  box-shadow:0 14px 30px rgba(0, 0, 0, 0.18);
}
.Main_menu_list ul > li > a .arrow {
  right:16px; bottom:16px; width:92px; height:92px;
}
.Main_menu_list ul > li > a:hover .arrow img { left:60px; }
.Main_menu_list ul > li > a > img { margin-bottom:10px; max-height:120px; }
.Main_menu_list ul > li > a > div { margin-bottom:20px; }

/* ─── Notice 입체 슬라이드 ─── */
.Main_notice {
  padding:80px 0 120px; position:relative; z-index:10;
}
.notice-inner {
  width:95%; max-width:1400px; margin:0 auto;
}
.notice-head {
  text-align:center; margin-bottom:50px;
}
.notice-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:700; letter-spacing:4px;
  color:rgba(255,255,255,.85);
  margin-bottom:14px;
  text-shadow:0 2px 6px rgba(0,0,0,.25);
}
.notice-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:56px; font-weight:900; color:#fff;
  letter-spacing:-1px; line-height:1.1;
  text-shadow:0 4px 20px rgba(0,0,0,.3);
  margin-bottom:14px;
}
.notice-sub {
  color:rgba(255,255,255,.85);
  font-size:16px; font-weight:400;
  text-shadow:0 2px 6px rgba(0,0,0,.25);
}

/* Swiper 컨테이너 */
.notice-swiper {
  padding:40px 0 70px;
  perspective:1200px;
}
.notice-swiper .swiper-slide {
  width:380px;
  height:auto;
  transition:transform .5s, opacity .5s;
}

/* 카드 디자인 */
.notice-card {
  display:block; height:100%;
  background:linear-gradient(145deg, #ffffff 0%, #f0f7fd 100%);
  border-radius:24px;
  padding:32px 28px 26px;
  box-shadow:
    0 20px 60px rgba(0, 30, 80, 0.25),
    0 8px 20px rgba(0, 0, 0, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  border:1px solid rgba(255, 255, 255, 0.6);
  position:relative;
  overflow:hidden;
  min-height:280px;
  transition:all .35s;
}
.notice-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:5px;
  background:linear-gradient(90deg, #1f5da9 0%, #0078d4 50%, #1f8acf 100%);
  border-radius:24px 24px 0 0;
}
.notice-card:hover {
  transform:translateY(-6px);
  box-shadow:
    0 30px 80px rgba(0, 30, 80, 0.35),
    0 12px 30px rgba(0, 0, 0, 0.15);
}
.card-num {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:700;
  color:#0078d4; opacity:.6;
  letter-spacing:1px;
  margin-bottom:8px;
}
.card-badge {
  display:inline-block;
  padding:4px 14px;
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  color:#fff;
  font-size:11px; font-weight:700;
  border-radius:20px;
  letter-spacing:1px;
  margin-bottom:16px;
  box-shadow:0 4px 10px rgba(31, 93, 169, 0.3);
}
.card-title {
  font-size:19px; font-weight:700;
  color:#1f3a5f; line-height:1.4;
  margin-bottom:14px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:54px;
}
.card-summary {
  font-size:14px; color:#5a6a7d;
  line-height:1.6;
  margin-bottom:20px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.card-foot {
  display:flex; justify-content:space-between; align-items:center;
  padding-top:16px;
  border-top:1px dashed #d4dde7;
  margin-top:auto;
}
.card-date {
  font-family:'Montserrat',sans-serif;
  font-size:12.5px; color:#8a98a8; font-weight:600;
}
.card-more {
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:800; color:#1f5da9;
  letter-spacing:1px;
  transition:all .2s;
}
.card-more i {
  font-style:normal; margin-left:4px;
  display:inline-block; transition:transform .2s;
}
.notice-card:hover .card-more i { transform:translateX(4px); }

/* Swiper navigation/pagination 커스터마이즈 */
.notice-swiper .swiper-button-prev,
.notice-swiper .swiper-button-next {
  width:50px; height:50px;
  background:rgba(255, 255, 255, 0.9);
  border-radius:50%;
  box-shadow:0 8px 20px rgba(0, 0, 0, 0.15);
  color:#1f5da9;
  transition:all .25s;
}
.notice-swiper .swiper-button-prev:hover,
.notice-swiper .swiper-button-next:hover {
  background:#fff;
  transform:scale(1.1);
  box-shadow:0 12px 28px rgba(0, 0, 0, 0.2);
}
.notice-swiper .swiper-button-prev::after,
.notice-swiper .swiper-button-next::after {
  font-size:18px; font-weight:900;
}
.notice-swiper .swiper-pagination {
  bottom:20px;
}
.notice-swiper .swiper-pagination-bullet {
  width:12px; height:12px;
  background:rgba(255, 255, 255, 0.4);
  opacity:1;
  transition:all .25s;
}
.notice-swiper .swiper-pagination-bullet-active {
  background:#fff;
  width:32px; border-radius:6px;
}
.notice-swiper .swiper-slide-shadow-left,
.notice-swiper .swiper-slide-shadow-right {
  background-image:linear-gradient(to left, rgba(0, 30, 80, 0.5), transparent);
  border-radius:24px;
}
.notice-swiper .swiper-slide-shadow-right {
  background-image:linear-gradient(to right, rgba(0, 30, 80, 0.5), transparent);
}

/* View All 버튼 */
.notice-more-wrap {
  text-align:center; margin-top:40px;
}
.notice-more-btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 36px;
  background:rgba(255, 255, 255, 0.95);
  color:#1f5da9;
  font-family:'Montserrat',sans-serif;
  font-weight:700; font-size:14px; letter-spacing:1px;
  border-radius:30px;
  box-shadow:0 10px 30px rgba(0, 0, 0, 0.15);
  transition:all .25s;
}
.notice-more-btn i {
  font-style:normal; transition:transform .25s;
  font-size:18px;
}
.notice-more-btn:hover {
  background:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(0, 0, 0, 0.2);
}
.notice-more-btn:hover i { transform:translateX(6px); }

.notice-empty {
  text-align:center; color:rgba(255, 255, 255, 0.85);
  padding:60px 20px; font-size:16px;
}

/* 모바일 반응형 */
@media (max-width:768px) {
  .Main_notice { padding:60px 0 80px; }
  .notice-title { font-size:36px; }
  .notice-sub { font-size:14px; }
  .notice-swiper .swiper-slide { width:300px; }
  .notice-card { min-height:240px; padding:26px 22px 22px; }
  .card-title { font-size:16px; min-height:46px; }
  .card-summary { font-size:13px; }
  .notice-swiper .swiper-button-prev,
  .notice-swiper .swiper-button-next { display:none; }
}
@media (max-width:480px) {
  .notice-title { font-size:28px; }
  .notice-swiper .swiper-slide { width:270px; }
}

/* ─── 반응형 (원본 미디어 쿼리 그대로) ─── */
@media (max-width:1400px) {
  .cloud02 { right:-400px; }
}
@media (max-width:1200px) {
  .cloud01 { left:-300px; }
  .cloud02 { right:-600px; }
  .Main_menu_list ul > li > a { height:320px; }
  .Main_menu_list ul > li > a .arrow { width:72px; height:72px; }
  .main_page .arrow img { top:45%; }
  .title_en span, .title_en .year { font-size:120px; }
  .title_box .air { width:280px; top:60px; }
}
@media (max-width:1000px) {
  .cloud01 { width:1000px; }
  .cloud02 { width:1000px; }
  .Main_menu_list ul { justify-content:center; flex-wrap:wrap; gap:2%; }
  .Main_menu_list ul > li { width:48%; margin-bottom:20px; }
  .Main_menu_list ul > li > a { height:200px; }
  .main_page h3.Main_title { font-size:28px; }
  .title_en span, .title_en .year { font-size:96px; }
  .title_slogan { font-size:20px; }
  .title_kr { font-size:20px; }
  .title_box .air { width:230px; top:50px; right:0; }
}
@media (max-width:800px) {
  .Main_dday_count ul > li { font-size:64px; }
  .Main_menu_list ul > li { width:100%; }
  .Main_menu_list ul > li > a { height:120px; }
  .Main_menu_list ul > li > a .arrow { right:20px; bottom:24px; }
  .title_en span, .title_en .year { font-size:72px; letter-spacing:-2px; }
  .title_box .air { width:180px; top:30px; }
  .main_txt { padding-top:120px; }
}
@media (max-width:700px) {
  .Main_visual { height:900px; }
  .cloud01 { top:580px; width:800px; }
  .cloud02 { width:800px; right:-400px; top:640px; }
}
@media (max-width:650px) {
  .main_page h3.Main_title { font-size:24px; }
  .title_en span, .title_en .year { font-size:60px; letter-spacing:-1.5px; }
  .title_slogan { font-size:17px; margin-top:24px; }
  .title_kr { font-size:17px; margin-bottom:16px; }
  .title_box .air { width:140px; opacity:.85; }
  .main_txt .date { font-size:22px; margin-top:36px; }
  .main_txt .venue { font-size:17px; }
}
@media (max-width:550px) {
  .Main_dday_count ul > li { font-size:48px; }
  .Main_menu_list ul > li { margin-bottom:12px; }
  .Main_menu_list ul > li > a {
    flex-direction:row; justify-content:flex-start;
    padding-left:24px; box-sizing:border-box;
    height:72px; font-size:18px; border-radius:100px;
  }
  .Main_menu_list ul > li > a > img { max-height:38px; margin-right:12px; margin-bottom:0; }
  .Main_menu_list ul > li > a > div { margin:0 0 0 4px; }
  .Main_menu_list ul > li > a .arrow {
    width:44px; height:44px; right:16px; bottom:auto;
    top:50%; transform:translateY(-50%);
  }
  .title_en span, .title_en .year { font-size:48px; }
}
@media (max-width:500px) {
  .Main_visual { height:750px; }
  .cloud01 { left:-20%; top:500px; width:130%; }
  .cloud02 { display:none; }
}
@media (max-width:400px) {
  .main_page h3.Main_title { font-size:28px; }
  .Main_dday_count ul > li { font-size:36px; }
  .title_en span, .title_en .year { font-size:40px; }
  .title_slogan { font-size:15px; }
}

/* ═══════════════════════════════════════════════════
   서브 페이지 (U·WELL Urology Clinic 스타일)
   ═══════════════════════════════════════════════════ */

/* ─ 서브 비주얼 (큰 영문 부제 + 한글 타이틀) ─ */
#sub-visual {
  margin-top:0; padding:200px 20px 100px;
  text-align:center;
  background:
    linear-gradient(180deg, rgba(0, 30, 80, 0.45) 0%, rgba(0, 30, 80, 0.55) 100%),
    url('https://www.icn-wac.kr/images/2024/visual_bg.jpg') center center / cover no-repeat,
    linear-gradient(135deg, #003a78 0%, #0078d4 70%, #1f8acf 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}
#sub-visual::before {
  content:'';
  position:absolute;
  bottom:-30px; left:-80px;
  width:520px; height:180px;
  background:url('https://www.icn-wac.kr/images/2024/cloud01.png') no-repeat center / contain;
  opacity:0.20;
  animation:svCloud1 40s ease-in-out infinite alternate;
  pointer-events:none;
  z-index:1;
}
#sub-visual::after {
  content:'';
  position:absolute;
  top:80px; right:-100px;
  width:480px; height:160px;
  background:url('https://www.icn-wac.kr/images/2024/cloud02.png') no-repeat center / contain;
  opacity:0.18;
  animation:svCloud2 50s ease-in-out infinite alternate;
  pointer-events:none;
  z-index:1;
}
#sub-visual .sv-inner { position:relative; z-index:2; }

@keyframes svCloud1 {
  0%   { transform:translate(0, 0); opacity:0.20; }
  100% { transform:translate(150px, -10px); opacity:0.30; }
}
@keyframes svCloud2 {
  0%   { transform:translate(0, 0); opacity:0.18; }
  100% { transform:translate(-180px, 15px); opacity:0.28; }
}

/* 영문 클럽명 (작은 글씨) */
.sv-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:500;
  letter-spacing:4px;
  color:rgba(255, 255, 255, 0.7);
  margin-bottom:24px;
  text-transform:uppercase;
}
/* 한글 큰 타이틀 */
.sv-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:64px; font-weight:800;
  letter-spacing:-1.5px; line-height:1.1;
  color:#fff;
  margin-bottom:18px;
  text-shadow:0 4px 20px rgba(0,0,0,0.3);
}
.sv-subtitle {
  font-size:18px;
  color:rgba(255, 255, 255, 0.85);
  font-weight:400;
  margin-top:16px;
  letter-spacing:.5px;
  text-shadow:0 2px 8px rgba(0,0,0,0.2);
}
/* Breadcrumb */
.sv-path {
  position:absolute; bottom:30px; left:50%;
  transform:translateX(-50%);
  font-size:13px; letter-spacing:1.5px;
  color:rgba(255, 255, 255, 0.7);
  display:flex; align-items:center; gap:10px;
  text-transform:uppercase;
  font-family:'Montserrat',sans-serif;
  white-space:nowrap;
}
.sv-path a {
  color:rgba(255, 255, 255, 0.7);
  transition:color .15s;
}
.sv-path a:hover { color:#fff; }
.sv-path .sep { opacity:.4; }
.sv-path .current { color:#fff; font-weight:600; }
/* 구버전 호환 (기존 페이지의 > span) */
.sv-path span:not(.sep):not(.current) {
  color:#fff;
  font-weight:600;
}

/* ─ 콘텐츠 영역 ─ */
#content {
  padding:120px 20px; min-height:400px;
  background:#fff;
}
.content-inner {
  max-width:1280px; margin:0 auto;
}

/* ─ 페이지 섹션 헤더 (U·WELL 스타일) ─ */
.section-head {
  text-align:center;
  margin-bottom:70px;
}
.section-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:600;
  letter-spacing:3px;
  color:#0078d4;
  text-transform:uppercase;
  margin-bottom:18px;
  display:inline-block;
}
.section-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:46px; font-weight:800;
  color:#003a78; letter-spacing:-1.2px; line-height:1.15;
  margin-bottom:24px;
}
.section-desc {
  max-width:780px; margin:0 auto;
  font-size:16px; line-height:1.85; color:#555;
}

/* 기존 page-h3 (구버전 호환 - 깔끔하게) */
.page-h3 {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:36px; font-weight:800; color:#003a78;
  margin-bottom:48px; padding-bottom:0;
  border-bottom:none;
  letter-spacing:-1px;
  text-align:center;
  position:relative;
}
.page-h3::after {
  content:''; display:block;
  width:50px; height:3px;
  background:linear-gradient(90deg, #003a78 0%, #0078d4 100%);
  margin:20px auto 0;
  border-radius:3px;
}
.page-desc {
  color:#555; margin-bottom:40px;
  font-size:15.5px; line-height:1.8;
  text-align:center;
  max-width:780px; margin-left:auto; margin-right:auto;
}
.page-body p { margin-bottom:16px; line-height:1.85; color:#444; font-size:15px; }
.page-empty {
  text-align:center; padding:100px 20px;
  background:#f8fafd; border-radius:12px;
  border:1px dashed #cbd9e6;
  color:#999;
}
.empty-block {
  text-align:center; padding:80px 20px;
  color:#999; background:#f8fafd; border-radius:8px;
}

/* ─ 게시판 ─ */
.board-search { display:flex; justify-content:flex-end; gap:8px; margin-bottom:14px; }
.board-search input { padding:10px 14px; border:1px solid #d4dde7; border-radius:6px; min-width:260px; }
.board-search button { padding:10px 22px; background:#003a78; color:#fff; border-radius:6px; font-weight:600; }

.board-list { border-top:2px solid #003a78; }
.board-list th { padding:14px 10px; background:#f3f8fd; font-weight:700; font-size:14px; border-bottom:1px solid #d4dde7; color:#003a78; }
.board-list td { padding:14px 10px; border-bottom:1px solid #eef3f8; font-size:14px; }
.board-list tr:hover { background:#fcfdff; }
.board-list .ta-c { text-align:center; }
.board-list .empty { text-align:center; color:#999; padding:60px 20px; }
.bl-title { color:#222; font-weight:500; transition:color .15s; }
.bl-title:hover { color:#0078d4; }
.ic-file { color:#0078d4; margin-left:4px; }
.badge-top {
  display:inline-block; padding:3px 10px; background:#d9534f; color:#fff;
  border-radius:12px; font-size:11px; font-weight:700;
}
.is-top { background:#fafcff; }
.is-top td { font-weight:600; }

.pagination { display:flex; justify-content:center; gap:4px; margin-top:30px; }
.pagination a {
  min-width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
  padding:0 10px; border:1px solid #d4dde7; border-radius:6px; font-size:13px; color:#666;
  transition:all .15s;
}
.pagination a:hover { background:#f3f8fd; border-color:#0078d4; color:#0078d4; }
.pagination a.active { background:#003a78; color:#fff; border-color:#003a78; font-weight:700; }

.board-view { border-top:2px solid #003a78; padding:30px 0; }
.bv-head { padding-bottom:20px; border-bottom:1px solid #eef3f8; margin-bottom:24px; }
.bv-title { font-size:24px; font-weight:700; color:#222; margin-bottom:10px; }
.bv-meta { color:#888; font-size:13px; }
.bv-meta span { margin-right:16px; }
.bv-files { background:#f7fafd; padding:16px 20px; border-radius:8px; margin-bottom:20px; }
.bv-files strong { display:block; margin-bottom:10px; color:#003a78; }
.bv-files ul li { margin:6px 0; }
.bv-files a:hover { color:#0078d4; text-decoration:underline; }
.bv-files em { color:#888; font-size:12px; }
.bv-body { padding:20px 0; min-height:160px; line-height:1.8; font-size:15px; }
.bv-body img { max-width:100%; height:auto; }

.board-nav { border-top:1px solid #eef3f8; }
.bn-row { display:flex; padding:14px 10px; border-bottom:1px solid #eef3f8; transition:background .15s; }
.bn-row:hover { background:#fafcfe; }
.bn-lbl { min-width:90px; font-size:13px; color:#888; }
.bn-tit { font-size:14px; color:#333; }
.board-btn { text-align:center; margin-top:30px; }
.btn { display:inline-block; padding:11px 28px; background:#666; color:#fff; border-radius:6px; font-weight:600; font-size:14px; transition:background .15s; }
.btn:hover { background:#444; }
.btn-primary { background:#003a78; }
.btn-primary:hover { background:#0078d4; }
.btn-cancel { background:#888; }
.btn-back { display:inline-block; margin-top:20px; padding:12px 30px; background:#003a78; color:#fff; border-radius:6px; font-weight:600; }
.btn-back:hover { background:#0078d4; }

/* ─ 갤러리 ─ */
.year-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:24px; padding:0; border-bottom:1px solid #eef3f8; }
.year-tabs li a { display:block; padding:10px 22px; font-weight:600; color:#666; border:1px solid transparent; border-bottom:0; border-radius:6px 6px 0 0; }
.year-tabs li.active a { background:#003a78; color:#fff; }
.year-tabs li:not(.active) a:hover { background:#f3f8fd; color:#0078d4; }

.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.g-card { background:#fff; border-radius:10px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.06); transition:all .25s; }
.g-card:hover { transform:translateY(-4px); box-shadow:0 8px 20px rgba(0,0,0,.12); }
.g-thumb { position:relative; aspect-ratio:4/3; background:#eef3f8; overflow:hidden; }
.g-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.g-card:hover .g-thumb img { transform:scale(1.05); }
.g-thumb-empty { display:flex; align-items:center; justify-content:center; height:100%; font-size:48px; color:#bcc8d4; }
.g-count { position:absolute; right:10px; bottom:10px; background:rgba(0,0,0,.6); color:#fff; padding:4px 10px; border-radius:14px; font-size:11px; font-weight:600; }
.g-title { padding:14px 16px; font-size:15px; font-weight:600; color:#222; }

.photo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:24px; }
.ph-item { position:relative; aspect-ratio:1; overflow:hidden; border-radius:8px; display:block; background:#eef3f8; }
.ph-item img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.ph-item:hover img { transform:scale(1.08); }
.ph-caption { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top,rgba(0,0,0,.7),transparent); color:#fff; padding:14px 12px 8px; font-size:12px; }
.gallery-detail .bv-meta { font-size:14px; color:#666; }
.gallery-detail .bv-meta span { background:#f3f8fd; padding:4px 10px; border-radius:14px; }

/* ─ 폼 ─ */
.form-table { background:#fff; }
.form-section { margin-bottom:30px; }
.form-section h4 { font-size:18px; font-weight:700; color:#003a78; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid #003a78; }
.form-section h4 em { color:#d9534f; font-style:normal; }
.ftbl { width:100%; }
.ftbl tr { border-bottom:1px solid #eef3f8; }
.ftbl th { width:200px; padding:14px 16px; background:#f7fafd; text-align:left; font-weight:600; color:#333; vertical-align:top; }
.ftbl th em { color:#d9534f; font-style:normal; margin-left:2px; }
.ftbl td { padding:14px 16px; vertical-align:middle; }
.ftbl input[type=text], .ftbl input[type=email], .ftbl input[type=password], .ftbl select, .ftbl textarea {
  width:100%; max-width:480px; padding:10px 14px; border:1px solid #d4dde7; border-radius:6px;
  background:#fff; transition:border-color .15s;
}
.ftbl input[type=text]:focus, .ftbl input[type=email]:focus, .ftbl select:focus, .ftbl textarea:focus {
  outline:none; border-color:#0078d4;
}
.ftbl label { display:inline-flex; align-items:center; gap:6px; margin-right:16px; cursor:pointer; }
.privacy-box { background:#f7fafd; padding:18px 22px; border-radius:8px; border:1px solid #d4dde7; font-size:14px; color:#555; margin-bottom:14px; line-height:1.7; }
.form-btn { text-align:center; margin-top:30px; padding-top:20px; border-top:1px solid #eef3f8; }
.form-btn .btn { margin:0 6px; padding:13px 36px; }

.alert-box { background:#fff; border-radius:12px; padding:30px; }
.alert-box.error { background:#fff5f5; border:1px solid #f5c2c2; }
.alert-box.error h3 { color:#c0392b; font-size:20px; margin-bottom:14px; }
.alert-box.error ul { margin:14px 0; padding-left:20px; }
.alert-box.error li { color:#c0392b; margin-bottom:6px; list-style:disc; }
.alert-box.success { background:#f4fbf5; border:1px solid #c2e7c8; }

/* 로그인 폼 (My Page 등) */
.login-form { max-width:420px; margin:30px auto; padding:30px; background:#fff; border:1px solid #e6f0fa; border-radius:12px; box-shadow:0 4px 14px rgba(0,80,160,.06); }
.lf-row { margin-bottom:16px; }
.lf-row label { display:block; font-weight:600; font-size:13px; color:#333; margin-bottom:6px; }
.lf-row input { width:100%; padding:11px 14px; border:1px solid #d4dde7; border-radius:6px; font-size:14px; }
.lf-error { color:#c0392b; font-size:13px; margin-bottom:10px; }
.btn-block { display:block; width:100%; padding:14px; background:#003a78; color:#fff; border-radius:6px; font-weight:700; font-size:15px; }
.btn-block:hover { background:#0078d4; }

/* ─ 푸터 ─ */
#footer { background:#002a5a; color:#cdd9ea; padding:50px 20px 30px; }
.footer-inner { max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.ft-title { font-size:22px; color:#fff; margin-bottom:12px; }
.ft-sub { font-size:15px; color:#fff; margin-bottom:14px; font-weight:600; }
.ft-info li { font-size:14px; margin-bottom:6px; line-height:1.7; }
.ft-info a:hover { color:#fff; text-decoration:underline; }
.footer-right img { height:50px; opacity:.9; }
.footer-copy { max-width:1200px; margin:30px auto 0; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); text-align:center; font-size:13px; color:#8aa2c0; }

/* ─ 반응형 ─ */
@media (max-width:1200px) {
  .gnb-link { padding:9px 16px; font-size:14px; }
}
@media (max-width:1100px) {
  #gnb { display:none; }
  #mobile-toggle { display:block; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .photo-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px) {
  #header { top:12px; width:calc(100% - 24px); border-radius:40px; }
  .header-inner { height:60px; padding:0 18px; }
  #mobile-menu { top:80px; right:12px; }
  .logo img { height:34px; }
  .logo-text { font-size:16px; }
  .util-link { padding:6px 12px; font-size:12px; }

  .sv-eyebrow { font-size:11px; letter-spacing:2px; margin-bottom:14px; }
  .sv-title { font-size:36px; letter-spacing:-1px; }
  .sv-subtitle { font-size:14px; margin-top:10px; }
  .sv-path { bottom:20px; font-size:11px; gap:6px; }
  #sub-visual { padding:130px 20px 70px; }
  #sub-visual::before { width:400px; height:140px; bottom:-20px; left:-60px; }
  #sub-visual::after  { width:380px; height:130px; top:80px; right:-80px; }
  #content { padding:70px 20px; }
  .section-head { margin-bottom:50px; }
  .section-eyebrow { font-size:12px; letter-spacing:2px; }
  .section-title { font-size:30px; letter-spacing:-.8px; }
  .section-desc { font-size:14.5px; }
  .page-h3 { font-size:26px; margin-bottom:30px; }
  .footer-inner { flex-direction:column; text-align:center; }
  .ftbl th { width:auto; display:block; }
  .ftbl td { display:block; }
  .board-list colgroup { display:none; }
  .board-search input { min-width:0; flex:1; }
  .gallery-grid, .photo-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px) {
  #header { top:8px; width:calc(100% - 16px); }
  .gallery-grid, .photo-grid { grid-template-columns:1fr 1fr; }
}

/* ═══════════════════════════════════════════
   Program 페이지 (미니멀 디자인)
   ═══════════════════════════════════════════ */

/* 프로그램 서브 탭 (언더라인 스타일) */
.program-tabs {
  display:flex; gap:0; margin-bottom:40px;
  border-bottom:1px solid #e5e9ee;
  flex-wrap:wrap;
}
.program-tabs li { flex:1; min-width:120px; margin-bottom:-1px; }
.program-tabs li a {
  display:block; padding:14px 16px; text-align:center;
  font-weight:500; font-size:14px; color:#7a8694;
  background:transparent;
  border-bottom:2px solid transparent;
  transition:all .15s;
}
.program-tabs li a:hover { color:#003a78; }
.program-tabs li.active a {
  color:#003a78; font-weight:700;
  border-bottom-color:#003a78;
}

/* Day 탭 (세그먼트 스타일) */
.day-tabs {
  display:inline-flex; gap:0; margin:8px 0 28px;
  background:#f4f6f9; padding:4px; border-radius:8px;
}
.day-tab {
  padding:10px 32px; background:transparent; color:#7a8694;
  border:none; border-radius:6px;
  font-weight:600; font-size:14px; cursor:pointer; transition:all .2s;
}
.day-tab:hover { color:#003a78; }
.day-tab.active {
  background:#fff; color:#003a78;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}

.day-content { display:none; }
.day-content.active { display:block; animation:fadeIn .25s ease; }

.day-head {
  background:transparent; color:#003a78;
  padding:0 0 14px 0; font-size:16px; font-weight:700;
  border-bottom:2px solid #003a78; margin-bottom:0;
  letter-spacing:.3px;
}

/* 프로그램 테이블 */
.program-table {
  width:100%; border-collapse:collapse;
  background:#fff; margin-bottom:36px;
}
.program-table thead th {
  padding:12px 14px; background:transparent; color:#7a8694;
  font-weight:600; font-size:12px; text-align:left;
  border-bottom:1px solid #e5e9ee;
  text-transform:uppercase; letter-spacing:.5px;
}
.program-table tbody td {
  padding:14px 14px; border-bottom:1px solid #f0f3f6;
  font-size:14px; vertical-align:middle; line-height:1.5; color:#333;
}
.program-table tbody tr:hover { background:#fafbfc; }
.program-table tbody tr.section-row td {
  background:#f7f9fb; color:#003a78; font-weight:700;
  padding:14px 18px; font-size:13.5px;
  border-bottom:1px solid #e5e9ee; border-top:1px solid #e5e9ee;
}
.program-table tbody tr.break-row td {
  color:#9aa4b0; font-style:normal;
}
.program-table tbody tr.dinner-row td,
.program-table tbody tr.tour-row td {
  color:#666; font-weight:600;
}
.program-table b { color:#003a78; font-weight:600; }

/* Introduce 버튼 (텍스트 링크 스타일) */
.introduce-btn {
  margin-left:12px; padding:0; background:transparent;
  color:#0078d4; border:none;
  font-size:12px; font-weight:600; cursor:pointer;
  text-decoration:underline; text-underline-offset:3px;
  transition:color .15s;
}
.introduce-btn:hover { color:#003a78; }
.introduce-btn span { font-size:9px; margin-left:2px; }

/* PDF 다운로드 링크 (미니멀 텍스트) */
.pdf-link {
  display:inline-block;
  background:transparent; color:#7a8694;
  font-size:11px; margin-right:6px; vertical-align:middle;
  text-decoration:none; transition:color .15s;
  border:1px solid #dbe2ea; padding:2px 8px; border-radius:3px;
}
.pdf-link:hover { color:#d9534f; border-color:#d9534f; }

/* 세션 소개 모달 (그대로 유지) */
.introduce-modal {
  position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,.6); display:none;
  align-items:center; justify-content:center; padding:20px;
  animation:fadeIn .2s ease;
}
.introduce-modal.open { display:flex; }
.im-inner {
  position:relative; max-width:720px; width:100%; max-height:85vh;
  overflow-y:auto; background:#fff; border-radius:8px; padding:40px 40px 32px;
  box-shadow:0 20px 50px rgba(0,0,0,.2);
}
.im-close {
  position:absolute; top:14px; right:18px;
  width:36px; height:36px; font-size:24px; line-height:1;
  color:#9aa4b0; background:transparent; cursor:pointer;
  border-radius:50%; transition:all .15s;
}
.im-close:hover { background:#f4f6f9; color:#333; }
.im-inner h4 {
  font-size:18px; color:#003a78; margin-bottom:22px;
  padding-bottom:14px; border-bottom:1px solid #e5e9ee;
}
.im-inner h5 {
  font-size:14px; color:#0078d4; margin-top:18px; margin-bottom:10px;
  font-weight:700;
}
.im-inner h5:first-of-type { margin-top:0; }
.im-inner p { line-height:1.75; color:#333; margin-bottom:12px; font-size:13.5px; }

/* 반응형 */
@media (max-width:768px) {
  .program-tabs li { min-width:50%; }
  .program-tabs li a { padding:11px 10px; font-size:13px; }
  .day-tabs { display:flex; width:100%; }
  .day-tab { flex:1; padding:9px 16px; }
  .day-head { font-size:14px; }
  .program-table { font-size:13px; }
  .program-table thead { display:none; }
  .program-table colgroup { display:none; }
  .program-table tbody td { padding:10px 10px; display:block; }
  .program-table tbody td:first-child {
    background:#f7f9fb; font-weight:700; color:#003a78;
  }
  .program-table tbody tr.section-row td { display:block; }
  .introduce-btn { display:block; margin:8px 0 0 0; width:fit-content; }
  .im-inner { padding:30px 22px 24px; }
  .im-inner h4 { font-size:16px; }
}

/* ═══════════════════════════════════════════
   Session Details 페이지 (미니멀)
   ═══════════════════════════════════════════ */

/* 세션 테마 (큰 박스 → 작은 라인 헤더) */
.session-theme-line {
  margin:24px auto 36px;
  max-width:1100px;
  padding:18px 22px;
  background:#f7f9fc;
  border-left:3px solid #003a78;
  border-radius:0 6px 6px 0;
}
.theme-label {
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:600;
  letter-spacing:2.5px; color:#0078d4;
  text-transform:uppercase;
  margin-bottom:6px;
}
.theme-text {
  font-size:16px; color:#222;
  font-weight:600; line-height:1.4;
  margin:0;
}

/* Day 1 / Day 2 탭 (세그먼트 스타일) */
.day-tabs {
  display:flex; gap:0;
  max-width:680px; margin:0 auto 40px;
  background:#f4f6f9;
  padding:6px;
  border-radius:12px;
}
.day-tab {
  flex:1;
  padding:14px 20px;
  background:transparent; border:none;
  cursor:pointer;
  border-radius:8px;
  transition:all .25s;
  text-align:center;
}
.day-tab .dt-label {
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:15px; font-weight:700;
  color:#7a8694;
  letter-spacing:.5px;
  margin-bottom:2px;
}
.day-tab .dt-date {
  display:block;
  font-size:12px; color:#9aa4b0;
  font-weight:500;
}
.day-tab:hover .dt-label { color:#003a78; }
.day-tab.active {
  background:#fff;
  box-shadow:0 2px 8px rgba(0, 30, 80, 0.1);
}
.day-tab.active .dt-label { color:#003a78; }
.day-tab.active .dt-date { color:#0078d4; }

.day-content { display:none; }
.day-content.active { display:block; animation:fadeIn .3s ease; }
@keyframes fadeIn {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}

/* 세션 카드 (심플) */
.sd-card {
  background:#fff;
  border:1px solid #e5e9ee;
  border-radius:8px;
  padding:28px 32px;
  margin-bottom:14px;
  max-width:1100px;
  margin-left:auto; margin-right:auto;
  transition:all .2s;
}
.sd-card:hover {
  border-color:#cdd9e6;
  box-shadow:0 4px 14px rgba(0, 30, 80, 0.06);
}
.sd-head {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:18px; font-weight:800;
  color:#003a78;
  letter-spacing:-.2px;
  margin:0 0 4px;
}
.sd-subtitle {
  font-size:14px; color:#5a6a7d;
  font-weight:500;
  margin:6px 0 18px;
  padding-bottom:14px;
  border-bottom:1px solid #eef3f8;
}
.sd-list { padding:0; margin:0; list-style:none; }
.sd-list li {
  display:flex; align-items:baseline;
  padding:8px 0; gap:14px;
  border-bottom:1px solid #f5f7f9;
}
.sd-list li:last-child { border-bottom:0; padding-bottom:0; }
.sd-list li:first-of-type { padding-top:0; }

/* 역할 배지 (심플 회색 톤) */
.sd-role {
  display:inline-block;
  min-width:80px; padding:3px 10px;
  background:#f3f5f8; color:#5a6a7d;
  border:1px solid #e5e9ee;
  border-radius:4px;
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:600;
  letter-spacing:.4px;
  text-align:center; flex-shrink:0;
  line-height:1.6;
}
.sd-name {
  flex:1; font-size:14px; color:#333;
  line-height:1.6;
}
.sd-name b {
  color:#003a78; font-weight:700;
  margin-right:0;
}
.sd-meta {
  color:#666; font-weight:400;
}

/* ═══════════════════════════════════════════
   Speakers 페이지
   ═══════════════════════════════════════════ */
.speakers-section { margin-bottom:80px; }
.speakers-section:last-child { margin-bottom:0; }

/* U·WELL 스타일 세션 헤더 (큰 영문 번호 + 한글/영문 타이틀) */
.ss-section-head {
  text-align:center;
  margin-bottom:50px;
  padding:0 20px;
}
.ss-num {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:600;
  letter-spacing:3.5px;
  color:#0078d4;
  text-transform:uppercase;
  margin-bottom:16px;
  display:inline-block;
  padding-bottom:8px;
  border-bottom:2px solid #0078d4;
}
.ss-main {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:32px; font-weight:800;
  color:#003a78;
  letter-spacing:-.8px;
  line-height:1.2;
  margin-bottom:12px;
}
.ss-sub {
  font-size:16px; color:#555;
  font-weight:400; letter-spacing:.2px;
  line-height:1.5;
  max-width:780px; margin:0 auto;
}

.speakers-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:24px;
  max-width:1200px;
  margin:0 auto;
}
.speakers-grid li {
  background:#fff; border-radius:8px; overflow:hidden;
  box-shadow:0 2px 12px rgba(0,30,80,.06);
  transition:all .3s cubic-bezier(.4, 0, .2, 1);
  border:1px solid #eef3f8;
}
.speakers-grid li:hover {
  transform:translateY(-5px);
  box-shadow:0 16px 32px rgba(0,80,160,.18);
}
.sp-photo {
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  background:linear-gradient(135deg,#e6f0fa 0%,#cdd9e6 100%);
}
.sp-photo img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 18%;       /* 얼굴 위쪽으로 정렬 (머리 안 잘리게) */
  transition:transform .35s;
}
.speakers-grid li:hover .sp-photo img { transform:scale(1.04); }
.speakers-grid li:hover {
  transform:translateY(-6px);
  box-shadow:0 16px 32px rgba(0,80,160,.15);
}
.sp-photo-fallback {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:64px; color:#bcc8d4;
}
.sp-info { padding:24px 18px 26px; text-align:center; }
.sp-role {
  display:inline-block; padding:4px 14px; background:#003a78;
  color:#fff; border-radius:14px;
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700;
  letter-spacing:1.2px; margin-bottom:14px;
  text-transform:uppercase;
}
.sp-name {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:18px; font-weight:800; color:#003a78;
  margin-bottom:8px; letter-spacing:-.3px; line-height:1.3;
}
.sp-pos {
  font-size:13px; color:#333; line-height:1.5; margin-bottom:6px;
  font-weight:500;
}
.sp-org {
  font-size:12.5px; color:#888; line-height:1.4; font-style:italic;
}

/* ═══════════════════════════════════════════
   Tour Program 페이지
   ═══════════════════════════════════════════ */
.tour-card {
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.tour-head {
  background:linear-gradient(135deg,#003a78,#0078d4);
  color:#fff; padding:20px 30px;
  font-size:24px; font-weight:800; letter-spacing:.5px;
}
.tour-image {
  width:100%; max-height:380px; overflow:hidden;
  background:#eef3f8;
}
.tour-image img {
  width:100%; height:100%; object-fit:cover; display:block;
}
.tour-table {
  width:100%; border-collapse:collapse;
}
.tour-table tr { border-bottom:1px solid #eef3f8; }
.tour-table tr:last-child { border-bottom:0; }
.tour-table th {
  width:180px; padding:18px 24px; background:#f7fafd;
  color:#003a78; font-weight:700; text-align:left;
  vertical-align:top; font-size:14px;
}
.tour-table td {
  padding:18px 24px; vertical-align:top; line-height:1.7; font-size:14.5px;
}
.tour-list { padding:0; margin:0; }
.tour-list li {
  position:relative; padding-left:18px; margin-bottom:6px;
}
.tour-list li:before {
  content:'•'; position:absolute; left:4px;
  color:#0078d4; font-weight:900; font-size:18px; line-height:1;
}
.tour-eligible {
  padding:18px 30px; background:#fff5e6;
  font-size:14px; color:#a64d00;
  border-top:1px solid #f0e0c4;
}
.tour-eligible b { color:#8b3a00; }

/* 반응형 - Speakers / Sessions / Tour */
@media (max-width:1100px) {
  .speakers-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px) {
  .speakers-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
  .sp-info { padding:16px 12px 18px; }
  .sp-name { font-size:15px; }
  .sp-pos, .sp-org { font-size:12px; }

  .speakers-section { margin-bottom:60px; }
  .ss-section-head { margin-bottom:36px; }
  .ss-num { font-size:11px; letter-spacing:2.5px; }
  .ss-main { font-size:24px; letter-spacing:-.5px; }
  .ss-sub { font-size:14px; }

  .session-theme-line { padding:14px 18px; margin-bottom:24px; }
  .theme-label { font-size:10px; letter-spacing:2px; }
  .theme-text { font-size:14px; }
  .day-tabs { margin-bottom:28px; padding:4px; }
  .day-tab { padding:10px 12px; }
  .day-tab .dt-label { font-size:13px; }
  .day-tab .dt-date { font-size:11px; }
  .sd-card { padding:22px 20px; }
  .sd-head { font-size:16px; }
  .sd-subtitle { font-size:13px; margin-bottom:14px; padding-bottom:10px; }
  .sd-list li { flex-direction:column; gap:6px; align-items:flex-start; padding:10px 0; }
  .sd-role { min-width:0; }
  .sd-name { font-size:13.5px; }

  .tour-head { font-size:18px; padding:16px 20px; }
  .tour-table th, .tour-table td { display:block; width:auto; padding:12px 18px; }
  .tour-table th { padding-bottom:4px; }
}
@media (max-width:480px) {
  .speakers-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .ss-main { font-size:20px; }
}

/* ═══════════════════════════════════════════
   Speaker 카드 호버 효과 + 모달
   ═══════════════════════════════════════════ */
.spk-card { cursor:pointer; }
.sp-photo { position:relative; aspect-ratio:1; overflow:hidden;
  background:linear-gradient(135deg,#e6f0fa 0%,#cdd9e6 100%);
}
.sp-overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(0, 30, 80, 0.85) 100%);
  display:flex; align-items:flex-end; justify-content:center;
  padding:0 0 20px;
  opacity:0; transition:opacity .3s;
  z-index:5;
}
.view-detail {
  font-family:'Montserrat',sans-serif;
  color:#fff; font-size:13px; font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  display:flex; align-items:center; gap:8px;
}
.view-detail i {
  font-style:normal;
  transition:transform .25s;
}
.spk-card:hover .sp-overlay { opacity:1; }
.spk-card:hover .view-detail i { transform:translateX(4px); }

/* ─── Speaker 모달 ─── */
.speaker-modal {
  position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,.7); display:none;
  align-items:center; justify-content:center; padding:24px;
}
.speaker-modal.open { display:flex; animation:fadeIn .25s ease; }
.spm-inner {
  position:relative;
  max-width:920px; width:100%; max-height:90vh;
  background:#fff; border-radius:18px;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
  display:flex; overflow:hidden;
  animation:spmZoom .3s cubic-bezier(.34, 1.56, .64, 1);
}
@keyframes spmZoom {
  from { transform:scale(.9); opacity:0; }
  to { transform:scale(1); opacity:1; }
}
.spm-close {
  position:absolute; top:14px; right:18px; z-index:10;
  width:40px; height:40px; font-size:32px; line-height:1;
  color:#888; background:transparent; cursor:pointer;
  border-radius:50%; transition:all .15s;
}
.spm-close:hover { background:#eee; color:#222; transform:rotate(90deg); }

.spm-left {
  width:36%; padding:40px 30px;
  background:linear-gradient(160deg, #f0f7fd 0%, #e6f0fa 100%);
  display:flex; flex-direction:column; align-items:center;
}
.spm-photo {
  width:100%; max-width:240px; aspect-ratio:1;
  border-radius:50%; overflow:hidden;
  background:#cdd9e6;
  box-shadow:0 10px 30px rgba(0, 30, 80, 0.2);
  border:4px solid #fff;
  margin-bottom:24px;
}
.spm-photo img { width:100%; height:100%; object-fit:cover; }
.spm-photo-fallback {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:90px; color:#a0b0c5;
}
.spm-attach {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px;
  background:#1f5da9; color:#fff !important;
  border-radius:24px; font-size:13px; font-weight:600;
  transition:all .2s;
  box-shadow:0 4px 12px rgba(31, 93, 169, 0.25);
}
.spm-attach:hover { background:#0078d4; transform:translateY(-2px); }

.spm-right {
  width:64%; padding:40px 36px 32px;
  overflow-y:auto;
}
.spm-role-badge {
  display:inline-block;
  padding:5px 14px;
  background:linear-gradient(135deg, #1f5da9 0%, #0078d4 100%);
  color:#fff; font-size:12px; font-weight:700;
  border-radius:14px; letter-spacing:1px;
  margin-bottom:14px;
  box-shadow:0 4px 10px rgba(31, 93, 169, 0.25);
}
.spm-name {
  font-size:30px; font-weight:800; color:#1f3a5f;
  letter-spacing:-.5px; line-height:1.1;
  margin-bottom:6px;
}
.spm-name-kr {
  font-size:16px; color:#5a6a7d; font-weight:500;
  margin-bottom:14px;
}
.spm-meta {
  font-size:15px; color:#0078d4; font-weight:600;
  margin-bottom:24px; padding-bottom:18px;
  border-bottom:2px solid #e6f0fa;
  line-height:1.5;
}
.spm-bio {
  font-size:14.5px; color:#333; line-height:1.75;
  max-height:340px; overflow-y:auto; padding-right:8px;
}
.spm-bio::-webkit-scrollbar { width:6px; }
.spm-bio::-webkit-scrollbar-thumb { background:#cdd9e6; border-radius:3px; }
.spm-bio br { line-height:1.8; }

.empty-msg {
  text-align:center; padding:60px 20px;
  font-size:16px; color:#999;
}

/* 모달 반응형 */
@media (max-width:768px) {
  .spm-inner { flex-direction:column; max-height:92vh; }
  .spm-left { width:100%; padding:30px 20px 20px; }
  .spm-photo { max-width:160px; }
  .spm-right { width:100%; padding:24px 24px 24px; }
  .spm-name { font-size:24px; }
  .spm-bio { max-height:none; }
}

/* ═══════════════════════════════════════════
   섹션 공통 (eyebrow + title)
   ═══════════════════════════════════════════ */
.sec-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:700; letter-spacing:4px;
  color:#0078d4;
  text-transform:uppercase;
  margin-bottom:14px;
}
.sec-eyebrow.light { color:rgba(255,255,255,.85); }
.sec-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:48px; font-weight:900; color:#fff;
  letter-spacing:-1px; line-height:1.1;
  margin-bottom:16px;
  text-shadow:0 4px 20px rgba(0,0,0,.3);
}

/* ═══════════════════════════════════════════
   WHAT YOU EXPERIENCE
   ═══════════════════════════════════════════ */
.Main_experience {
  padding:100px 0 80px; position:relative; z-index:10;
}
.exp-inner {
  width:95%; max-width:1300px; margin:0 auto;
  padding:60px 50px;
  background:rgba(255, 255, 255, 0.04);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255, 255, 255, 0.12);
  border-radius:24px;
  text-align:center;
}
.exp-grid {
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:20px;
  margin-top:50px;
}
.exp-card {
  background:rgba(255, 255, 255, 0.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255, 255, 255, 0.15);
  border-radius:16px;
  padding:30px 24px 28px;
  text-align:left;
  transition:all .3s;
  cursor:default;
  color:#fff;
}
.exp-card:hover {
  transform:translateY(-6px);
  background:rgba(255, 255, 255, 0.15);
  box-shadow:0 20px 40px rgba(0, 0, 0, 0.2);
  border-color:rgba(255, 255, 255, 0.3);
}
.exp-num {
  font-family:'Montserrat',sans-serif;
  font-size:32px; font-weight:900;
  background:linear-gradient(135deg, #5eb5ff 0%, #fff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  margin-bottom:18px;
  letter-spacing:-1px;
}
.exp-card h3 {
  font-family:'Montserrat',sans-serif;
  font-size:18px; font-weight:800; color:#fff;
  margin-bottom:14px;
  letter-spacing:-.3px;
}
.exp-card p {
  font-size:13.5px; line-height:1.6;
  color:rgba(255, 255, 255, 0.8);
}

/* ═══════════════════════════════════════════
   STATS 카운터
   ═══════════════════════════════════════════ */
.Main_stats {
  padding:60px 20px 80px; position:relative; z-index:10;
}
.stats-grid {
  width:95%; max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:24px;
}
.stats-grid li {
  text-align:center;
  padding:30px 20px;
  background:rgba(255, 255, 255, 0.06);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255, 255, 255, 0.12);
  border-radius:18px;
  color:#fff;
}
.stat-num {
  font-family:'Montserrat',sans-serif;
  font-size:64px; font-weight:900;
  background:linear-gradient(135deg, #fff 0%, #5eb5ff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  line-height:1; letter-spacing:-2px;
  margin-bottom:8px;
}
.stat-label {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:700; letter-spacing:3px;
  color:rgba(255, 255, 255, 0.7);
}

/* ═══════════════════════════════════════════
   SPEAKERS 미리보기
   ═══════════════════════════════════════════ */
.Main_speakers {
  padding:80px 20px; position:relative; z-index:10;
}
.spk-preview-inner {
  width:95%; max-width:1300px; margin:0 auto;
}
.spk-preview-head {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:40px; flex-wrap:wrap; gap:20px;
}
.spk-preview-head .sec-title { margin-bottom:0; }
.see-all {
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:700; letter-spacing:1px;
  color:#fff; text-transform:uppercase;
  padding:10px 24px;
  border:1.5px solid rgba(255, 255, 255, 0.3);
  border-radius:24px;
  transition:all .25s;
  display:inline-flex; align-items:center; gap:8px;
}
.see-all i { font-style:normal; transition:transform .25s; }
.see-all:hover {
  background:#fff; color:#003a78;
  border-color:#fff;
}
.see-all:hover i { transform:translateX(4px); }

.spk-preview-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}
.spk-pre-card {
  background:rgba(255, 255, 255, 0.06);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255, 255, 255, 0.12);
  border-radius:14px;
  padding:18px 16px 20px;
  transition:all .25s;
  color:#fff;
}
.spk-pre-card:hover {
  background:rgba(255, 255, 255, 0.14);
  transform:translateY(-4px);
  color:#fff;
}
.spk-pre-photo {
  width:100%; aspect-ratio:1;
  overflow:hidden;
  border-radius:10px;
  background:rgba(255, 255, 255, 0.1);
  margin-bottom:14px;
  position:relative;
}
.spk-pre-photo img {
  width:100%; height:100%; object-fit:cover;
  object-position:center 18%;
  transition:transform .35s;
}
.spk-pre-card:hover .spk-pre-photo img { transform:scale(1.05); }
.spk-pre-fallback {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:48px; opacity:.4;
}
.spk-pre-cat {
  font-family:'Montserrat',sans-serif;
  font-size:10.5px; font-weight:700; letter-spacing:1.5px;
  color:#5eb5ff; text-transform:uppercase;
  margin-bottom:6px;
}
.spk-pre-name {
  font-size:15px; font-weight:800; color:#fff;
  margin-bottom:5px; letter-spacing:-.3px;
  line-height:1.3;
}
.spk-pre-pos {
  font-size:12px; color:rgba(255, 255, 255, 0.8);
  line-height:1.4; margin-bottom:3px;
}
.spk-pre-org {
  font-size:11.5px; color:rgba(255, 255, 255, 0.6);
  font-style:italic;
}

/* ═══════════════════════════════════════════
   Ready to Join CTA
   ═══════════════════════════════════════════ */
.Main_cta_join {
  padding:120px 20px; text-align:center;
  position:relative; z-index:10;
}
.cta-inner {
  max-width:780px; margin:0 auto;
}
.cta-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:64px; font-weight:900; color:#fff;
  letter-spacing:-2px; line-height:1.05;
  margin:14px 0 24px;
  text-shadow:0 6px 30px rgba(0,0,0,.35);
}
.cta-sub {
  font-size:18px; color:rgba(255, 255, 255, 0.85);
  margin-bottom:40px;
  text-shadow:0 2px 8px rgba(0,0,0,.3);
}
.cta-actions {
  display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
}

/* ═══════════════════════════════════════════
   반응형 — 새 섹션들
   ═══════════════════════════════════════════ */
@media (max-width:1200px) {
  .mv-title span { font-size:72px; }
  .exp-grid { grid-template-columns:repeat(3, 1fr); }
  .exp-card { padding:24px 20px; }
  .spk-preview-grid { grid-template-columns:repeat(4, 1fr); }
  .stat-num { font-size:54px; }
}
@media (max-width:900px) {
  .mv-title span { font-size:50px; }
  .mv-typing { font-size:16px; padding:12px 20px; }
  .mv-eyebrow { font-size:11px; }
  .sec-title { font-size:36px; }
  .cta-title { font-size:42px; }
  .exp-grid { grid-template-columns:repeat(2, 1fr); }
  .exp-inner { padding:40px 24px; }
  .spk-preview-grid { grid-template-columns:repeat(2, 1fr); }
  .stats-grid { grid-template-columns:repeat(2, 1fr); }
  .stat-num { font-size:48px; }
  .marquee-content { font-size:18px; }
  .Main_visual { min-height:auto; padding:120px 20px 60px; }
}
@media (max-width:550px) {
  .mv-title span { font-size:33px; letter-spacing:-2px; }
  .mv-typing { font-size:13px; padding:10px 16px; gap:8px; }
  .mv-eyebrow { font-size:10px; letter-spacing:1px; }
  .btn-cta { padding:13px 24px; font-size:12px; }
  .btn-cta.lg { padding:16px 30px; font-size:13px; }
  .sec-title { font-size:28px; }
  .cta-title { font-size:32px; }
  .exp-grid { grid-template-columns:1fr; }
  .spk-preview-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .spk-pre-name { font-size:13px; }
  .marquee-content { font-size:14px; gap:30px; }
  .stat-num { font-size:40px; }
  .stat-label { font-size:11px; letter-spacing:2px; }
}

/* ═══════════════════════════════════════════
   Coming Soon 박스 (콘텐츠 미입력 페이지용)
   ═══════════════════════════════════════════ */
.coming-soon {
  max-width:680px; margin:0 auto;
  padding:80px 40px;
  background:#f8fafc;
  border:1px solid #eef3f8;
  border-radius:16px;
  text-align:center;
}
.cs-inner {
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.cs-icon {
  width:88px; height:88px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, #003a78 0%, #0078d4 100%);
  border-radius:50%;
  color:#fff;
  margin-bottom:12px;
  box-shadow:0 12px 30px rgba(0, 58, 120, 0.25);
}
.cs-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:600;
  letter-spacing:3px; color:#0078d4;
  text-transform:uppercase;
}
.cs-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:28px; font-weight:800; color:#003a78;
  letter-spacing:-.5px; margin:4px 0 8px;
}
.cs-desc {
  font-size:15px; line-height:1.7;
  color:#666;
  margin-bottom:18px;
}
.cs-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 30px;
  background:#003a78; color:#fff !important;
  border-radius:30px;
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:600; letter-spacing:1.5px;
  text-transform:uppercase;
  transition:all .25s;
  margin-top:6px;
}
.cs-btn i {
  font-style:normal; transition:transform .25s;
}
.cs-btn:hover {
  background:#0078d4;
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0, 120, 212, 0.3);
}
.cs-btn:hover i { transform:translateX(4px); }

@media (max-width:640px) {
  .coming-soon { padding:50px 24px; }
  .cs-icon { width:70px; height:70px; }
  .cs-title { font-size:22px; }
  .cs-desc { font-size:14px; }
}

/* ═══════════════════════════════════════════
   콘텐츠 공통 박스 (Card / Info Box)
   ═══════════════════════════════════════════ */
.content-block {
  max-width:1100px; margin:0 auto 50px;
}
.content-block:last-child { margin-bottom:0; }

.info-card {
  background:#fff;
  border:1px solid #eef3f8;
  border-radius:14px;
  padding:36px 40px;
  box-shadow:0 2px 10px rgba(0,0,0,0.04);
  transition:all .25s;
}
.info-card:hover {
  box-shadow:0 8px 24px rgba(0, 80, 160, 0.1);
  transform:translateY(-3px);
}

.info-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  max-width:1100px; margin:0 auto;
}
.info-grid .info-card {
  padding:36px 28px;
  text-align:center;
}
.info-card .ic-num {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:600;
  color:#0078d4; letter-spacing:2.5px;
  text-transform:uppercase;
  margin-bottom:14px;
  display:inline-block;
  padding-bottom:6px;
  border-bottom:2px solid #0078d4;
}
.info-card .ic-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:20px; font-weight:800;
  color:#003a78;
  margin-bottom:14px;
  letter-spacing:-.3px;
}
.info-card .ic-desc {
  font-size:14.5px; line-height:1.7;
  color:#555;
}

@media (max-width:900px) {
  .info-grid { grid-template-columns:repeat(2, 1fr); }
  .info-card { padding:28px 24px; }
}
@media (max-width:580px) {
  .info-grid { grid-template-columns:1fr; }
}

/* page-body 콘텐츠 영역 정리 */
.page-body {
  max-width:920px; margin:0 auto;
  font-size:16px; line-height:1.85; color:#444;
}
.page-body h4 {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:22px; font-weight:800;
  color:#003a78;
  margin:40px 0 16px;
  letter-spacing:-.3px;
}
.page-body h4:first-child { margin-top:0; }
.page-body p { margin-bottom:14px; }
.page-body img { max-width:100%; height:auto; border-radius:8px; margin:20px 0; }


/* ═══════════════════════════════════════════
   지난 행사 — 활주로 타임라인 (✈)
   ═══════════════════════════════════════════ */
.timeline-wrap {
  position:relative;
  max-width:1080px;
  margin:0 auto;
  padding:30px 0 80px;
}

/* 활주로 본체 (그라데이션 배경) */
.timeline-wrap::before {
  content:'';
  position:absolute;
  left:118px; top:30px; bottom:80px;
  width:6px;
  background:linear-gradient(180deg,
    rgba(0, 58, 120, 0.08) 0%,
    rgba(0, 58, 120, 0.18) 50%,
    rgba(0, 58, 120, 0.08) 100%);
  border-radius:3px;
}

/* 활주로 중앙 점선 (대시 마킹) */
.timeline-wrap::after {
  content:'';
  position:absolute;
  left:121px; top:30px; bottom:80px;
  width:0;
  border-left:2px dashed rgba(255, 255, 255, 0.95);
  z-index:1;
}

/* 비행기 마커 (스크롤 따라 이동) */
.plane-marker {
  position:absolute;
  left:121px;
  top:30px;
  transform:translate(-50%, -50%) rotate(180deg);
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  z-index:10;
  transition:top 0.15s cubic-bezier(.25, .1, .25, 1);
  pointer-events:none;
  filter:drop-shadow(0 4px 12px rgba(0, 58, 120, 0.35));
}
.plane-marker svg {
  width:100%; height:100%;
  color:#003a78;
}
/* 비행기 뒤 발광 효과 */
.plane-marker::before {
  content:'';
  position:absolute;
  inset:-8px;
  background:radial-gradient(circle, rgba(0, 120, 212, 0.25) 0%, transparent 70%);
  border-radius:50%;
  z-index:-1;
  animation:planePulse 2s ease-in-out infinite;
}
@keyframes planePulse {
  0%, 100% { transform:scale(1); opacity:.7; }
  50%      { transform:scale(1.3); opacity:1; }
}
/* 비행기 후미 트레일 */
.plane-trail {
  position:absolute;
  left:121px;
  top:30px;
  width:6px;
  background:linear-gradient(180deg,
    rgba(0, 120, 212, 0) 0%,
    rgba(0, 120, 212, 0.4) 80%,
    rgba(0, 120, 212, 0.7) 100%);
  border-radius:3px;
  transform:translateX(-50%);
  z-index:2;
  transition:height 0.15s cubic-bezier(.25, .1, .25, 1);
  pointer-events:none;
  box-shadow:0 0 12px rgba(0, 120, 212, 0.5);
}

.tl-item {
  position:relative;
  display:flex; align-items:flex-start;
  gap:60px;
  margin-bottom:40px;
}
.tl-item:last-child { margin-bottom:0; }

/* 연도 마커 (좌측 큰 숫자) */
.tl-year {
  position:relative;
  width:100px; flex-shrink:0;
  text-align:right;
  padding-top:18px;
}
.tl-year-num {
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:42px; font-weight:900;
  color:#003a78;
  letter-spacing:-1px;
  line-height:1;
  transition:all .3s;
}

/* 라인 위 점 (스테이션 마커) */
.tl-year-dot {
  position:absolute;
  right:-26px; top:26px;
  width:18px; height:18px;
  background:#fff;
  border:3px solid #cdd9e6;
  border-radius:50%;
  box-shadow:0 0 0 4px #fff;
  z-index:3;
  transition:all .3s;
}
/* 현재 활성화된(스크롤 위치) 마커 */
.tl-item.is-passed .tl-year-dot {
  border-color:#003a78;
  background:#003a78;
  box-shadow:0 0 0 4px #fff,
             0 0 16px rgba(0, 58, 120, 0.5);
}
.tl-item.is-passed .tl-year-num {
  color:#0078d4;
  transform:scale(1.05);
}

/* 카드 (우측) */
.tl-card {
  flex:1;
  background:#fff;
  border:1px solid #e5e9ee;
  border-radius:12px;
  padding:34px 36px 28px;
  transition:all .25s;
}
.tl-card:hover {
  border-color:#cdd9e6;
  box-shadow:0 8px 24px rgba(0, 30, 80, 0.08);
  transform:translateY(-2px);
}

/* 타이틀 */
.tl-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:22px; font-weight:800;
  color:#003a78;
  letter-spacing:-.5px;
  margin:0 0 18px;
  line-height:1.3;
}

/* 테마 영역 */
.tl-theme {
  background:linear-gradient(135deg, #f7f9fc 0%, #f0f5fa 100%);
  border-left:3px solid #0078d4;
  border-radius:0 8px 8px 0;
  padding:14px 18px;
  margin-bottom:22px;
}
.tl-theme-label {
  display:inline-block;
  font-family:'Montserrat',sans-serif;
  font-size:10.5px; font-weight:700;
  letter-spacing:2.5px;
  color:#0078d4;
  margin-bottom:5px;
}
.tl-theme-text {
  font-size:15px; color:#222;
  font-weight:500; line-height:1.5;
  margin:0;
  font-style:italic;
}

/* 메타 정보 (Date/Venue/Organizer/Language) */
.tl-meta {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:0 20px;
  margin:0;
}
.tl-meta-row {
  display:flex;
  align-items:flex-start;
  padding:14px 0;
  border-bottom:1px solid #f3f5f8;
}
.tl-meta-row:last-child,
.tl-meta-row:nth-last-child(2) {
  border-bottom:none;
}
.tl-meta-row dt {
  display:flex; align-items:center; gap:8px;
  font-family:'Montserrat',sans-serif;
  font-size:10.5px; font-weight:700;
  letter-spacing:2px;
  color:#7a8694;
  text-transform:uppercase;
  width:120px; flex-shrink:0;
  padding-top:1px;
}
.tl-meta-row dt .meta-icon {
  width:18px; height:18px;
  color:#0078d4;
  flex-shrink:0;
}
.tl-meta-row dd {
  flex:1;
  font-size:13.5px;
  color:#333;
  line-height:1.55;
  margin:0;
  padding-right:10px;
}

/* 액션 버튼 영역 (Program/Speakers/Gallery) */
.tl-actions {
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid #eef3f8;
  display:flex; gap:10px;
  flex-wrap:wrap;
}
.tl-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px;
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:600;
  letter-spacing:.5px;
  color:#003a78;
  background:#f4f7fb;
  border:1px solid #e1e8f0;
  border-radius:8px;
  cursor:pointer;
  transition:all .2s;
}
.tl-btn svg {
  width:16px; height:16px;
  flex-shrink:0;
}
.tl-btn:hover {
  background:#003a78;
  border-color:#003a78;
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0, 58, 120, 0.2);
}
/* Primary 버튼 (Overview - 항상 첫번째) */
.tl-btn.primary {
  background:#003a78;
  border-color:#003a78;
  color:#fff;
}
.tl-btn.primary:hover {
  background:#0078d4;
  border-color:#0078d4;
  box-shadow:0 8px 20px rgba(0, 120, 212, 0.3);
}
.tl-no-data {
  font-size:12.5px; color:#9aa4b0;
  font-style:italic;
  padding:8px 0;
}

/* 기존 .tl-photo-btn 호환 유지 (혹시 다른 곳에서 쓸 수 있음) */
.tl-photo-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px;
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:#003a78;
  background:transparent;
  border:1.5px solid #cdd9e6;
  border-radius:24px;
  transition:all .25s;
}
.tl-photo-btn i { font-style:normal; transition:transform .25s; }
.tl-photo-btn:hover {
  background:#003a78; border-color:#003a78; color:#fff;
  transform:translateY(-2px);
}
.tl-photo-btn:hover i { transform:translateX(4px); }

/* 반응형 */
@media (max-width:900px) {
  .timeline-wrap::before { left:63px; width:5px; }
  .timeline-wrap::after  { left:65.5px; }
  .plane-marker { left:65.5px; width:38px; height:38px; }
  .plane-trail  { left:65.5px; width:5px; }
  .tl-item { gap:30px; }
  .tl-year { width:60px; }
  .tl-year-num { font-size:28px; }
  .tl-year-dot { right:-14px; top:18px; width:14px; height:14px; }
  .tl-card { padding:26px 22px 22px; }
  .tl-title { font-size:18px; }
  .tl-meta { grid-template-columns:1fr; }
  .tl-meta-row { padding:10px 0; }
  .tl-meta-row:nth-last-child(2) { border-bottom:1px solid #f3f5f8; }
  .tl-meta-row dt { width:80px; font-size:10px; }
  .tl-meta-row dd { font-size:13px; }
}
@media (max-width:580px) {
  /* 모바일에서는 활주로/비행기 숨김 */
  .timeline-wrap::before,
  .timeline-wrap::after,
  .plane-marker,
  .plane-trail { display:none; }
  .tl-item { flex-direction:column; gap:0; margin-bottom:30px; }
  .tl-year {
    width:auto; text-align:left;
    padding:0 0 12px;
  }
  .tl-year-num { font-size:32px; color:#0078d4; }
  .tl-year-dot { display:none; }
  .tl-card { padding:24px 20px 20px; }
  .tl-theme { padding:12px 14px; }
  .tl-theme-text { font-size:13.5px; }
}

/* ═══════════════════════════════════════════
   Previous Conference 모달 (Program / Speakers)
   ═══════════════════════════════════════════ */
.prev-modal {
  position:fixed; inset:0; z-index:10000;
  display:none;
}
.prev-modal.open {
  display:flex; align-items:center; justify-content:center;
  padding:30px;
  animation:fadeIn .2s ease;
}
.pm-backdrop {
  position:absolute; inset:0;
  background:rgba(0, 15, 40, 0.7);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.pm-inner {
  position:relative;
  width:100%; max-width:900px;
  max-height:90vh;
  background:#fff;
  border-radius:16px;
  box-shadow:0 30px 80px rgba(0, 0, 0, 0.4);
  display:flex; flex-direction:column;
  overflow:hidden;
  animation:pmZoom .3s cubic-bezier(.34, 1.56, .64, 1);
}
@keyframes pmZoom {
  from { transform:scale(.94); opacity:0; }
  to   { transform:scale(1); opacity:1; }
}

/* 모달 헤더 */
.pm-header {
  display:flex; justify-content:space-between; align-items:flex-start;
  padding:28px 32px 24px;
  border-bottom:1px solid #eef3f8;
  background:linear-gradient(135deg, #f8fafc 0%, #f0f5fa 100%);
}
.pm-eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:800;
  letter-spacing:3px; color:#0078d4;
  margin-bottom:6px;
}
.pm-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:22px; font-weight:800;
  color:#003a78;
  letter-spacing:-.3px;
  margin:0;
  line-height:1.3;
}
.pm-close {
  width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  background:transparent;
  border:none; border-radius:50%;
  cursor:pointer;
  color:#666;
  transition:all .15s;
  flex-shrink:0;
}
.pm-close svg { width:22px; height:22px; }
.pm-close:hover {
  background:#fff; color:#003a78;
  transform:rotate(90deg);
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
}

/* 모달 탭 */
.pm-tabs {
  display:flex; gap:0;
  padding:0 32px;
  background:#fff;
  border-bottom:1px solid #eef3f8;
}
.pm-tab {
  display:flex; align-items:center; gap:8px;
  padding:14px 22px;
  background:transparent;
  border:none;
  border-bottom:2px solid transparent;
  cursor:pointer;
  font-family:'Montserrat',sans-serif;
  font-size:13.5px; font-weight:600;
  letter-spacing:.5px;
  color:#7a8694;
  transition:all .15s;
}
.pm-tab svg { width:18px; height:18px; }
.pm-tab:hover { color:#003a78; }
.pm-tab.active {
  color:#003a78;
  border-bottom-color:#003a78;
}

/* 모달 본문 */
.pm-body {
  flex:1;
  overflow-y:auto;
  padding:30px 32px 32px;
  background:#fafbfc;
}
.pm-panel { display:none; }
.pm-panel.active { display:block; animation:fadeIn .3s ease; }

.pm-empty {
  text-align:center;
  padding:60px 20px;
  color:#9aa4b0; font-size:14px;
}

/* Program 패널 */

/* Program 이미지 (텍스트 데이터 없이 이미지만 있을 때 - 예: 2017) */
.pm-prog-img {
  background:#fff;
  border:1px solid #e5e9ee;
  border-radius:12px;
  padding:28px;
  text-align:center;
}
.pm-prog-img-label {
  display:inline-block;
  padding:5px 14px;
  background:#003a78;
  color:#fff;
  border-radius:14px;
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700;
  letter-spacing:1.5px;
  margin:0 0 20px;
  text-transform:uppercase;
}
.pm-prog-img-link {
  display:block;
  position:relative;
  border-radius:8px;
  overflow:hidden;
  background:#f7f9fc;
  transition:all .2s;
}
.pm-prog-img-link:hover {
  box-shadow:0 8px 24px rgba(0, 58, 120, 0.15);
  transform:translateY(-2px);
}
.pm-prog-img-link img {
  width:100%; height:auto;
  display:block;
  max-width:100%;
}
.pm-prog-img-hint {
  display:block;
  padding:10px;
  background:linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  color:#fff;
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:600;
  letter-spacing:.3px;
  position:absolute;
  bottom:0; left:0; right:0;
  opacity:0;
  transition:opacity .2s;
}
.pm-prog-img-link:hover .pm-prog-img-hint { opacity:1; }

.pm-day {
  background:#fff;
  border:1px solid #e5e9ee;
  border-radius:12px;
  padding:24px 24px 8px;
  margin-bottom:22px;
}
.pm-day:last-child { margin-bottom:0; }

.pm-day-head {
  padding-bottom:18px;
  margin-bottom:18px;
  border-bottom:2px solid #003a78;
}
.pm-day-label {
  display:inline-block;
  padding:4px 12px;
  background:#003a78;
  color:#fff;
  border-radius:14px;
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700;
  letter-spacing:1.5px;
  margin-bottom:8px;
}
.pm-day-date {
  font-family:'Montserrat',sans-serif;
  font-size:18px; font-weight:800;
  color:#003a78;
  margin:4px 0;
  letter-spacing:-.3px;
}
.pm-day-venue {
  font-size:13px; color:#666;
  font-style:italic;
  margin:0;
}

.pm-prog-table { padding:0; }
.pm-prog-row {
  display:grid;
  grid-template-columns:120px 1fr;
  gap:24px;
  padding:16px 0;
  border-bottom:1px solid #f3f5f8;
}
.pm-prog-row:last-child { border-bottom:none; }
.pm-prog-row.is-break {
  opacity:.7;
}
.pm-prog-time {
  font-family:'Montserrat',sans-serif;
  font-size:13px; font-weight:700;
  color:#0078d4;
  letter-spacing:.3px;
  padding-top:1px;
}
.pm-prog-title {
  font-size:14.5px; font-weight:700;
  color:#003a78;
  margin:0 0 6px;
  line-height:1.4;
}
.pm-prog-desc {
  font-size:13px;
  color:#555;
  line-height:1.6;
  margin:6px 0 10px;
}
.pm-prog-speakers {
  list-style:none; padding:0; margin:8px 0 0;
  display:flex; flex-direction:column; gap:6px;
}
.pm-prog-speakers li {
  font-size:12.5px; color:#444;
  line-height:1.5;
  padding-left:14px;
  position:relative;
}
.pm-prog-speakers li::before {
  content:'';
  position:absolute;
  left:0; top:8px;
  width:6px; height:6px;
  background:#0078d4;
  border-radius:50%;
}
.pm-prog-speakers li b {
  color:#003a78; font-weight:700;
  margin-right:6px;
}
.pm-prog-speakers li span { color:#666; }

/* Speakers 패널 */
.pm-spk-group {
  background:#fff;
  border:1px solid #e5e9ee;
  border-radius:12px;
  padding:22px 24px 18px;
  margin-bottom:18px;
}
.pm-spk-group:last-child { margin-bottom:0; }

.pm-spk-head {
  font-family:'Montserrat',sans-serif;
  font-size:14px; font-weight:800;
  color:#003a78;
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:1px solid #eef3f8;
  letter-spacing:.2px;
}
.pm-spk-list {
  list-style:none; padding:0; margin:0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px 22px;
}
.pm-spk-list li {
  display:flex; align-items:center; gap:14px;
  padding:6px 0;
}

/* 아바타 (사진 or 이니셜) */
.pm-spk-avatar {
  position:relative;
  width:64px; height:64px;
  flex-shrink:0;
  border-radius:50%;
  overflow:hidden;
  /* 인라인 style로 그라데이션 색상 동적 지정 */
  background:linear-gradient(135deg, #003a78 0%, #0078d4 100%);
  box-shadow:
    0 6px 16px rgba(0, 58, 120, 0.25),
    inset 0 -3px 8px rgba(0, 0, 0, 0.15),
    inset 0 3px 8px rgba(255, 255, 255, 0.15);
  border:3px solid #fff;
}
/* 살짝 빛나는 효과 */
.pm-spk-avatar::after {
  content:'';
  position:absolute;
  top:6px; left:14px;
  width:18px; height:10px;
  background:radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 70%);
  border-radius:50%;
  pointer-events:none;
  z-index:2;
}
.pm-spk-avatar img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 20%;
  display:block;
  position:relative;
  z-index:1;
}
.pm-spk-avatar img + .pm-spk-initial { z-index:0; }
.pm-spk-initial {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Montserrat',sans-serif;
  font-size:18px; font-weight:800;
  color:#fff;
  letter-spacing:-.5px;
  text-shadow:0 2px 6px rgba(0, 0, 0, 0.25);
  position:relative;
  z-index:1;
}
.pm-spk-info {
  flex:1; display:flex; flex-direction:column;
  padding-top:1px;
  min-width:0;
}
.pm-spk-info b {
  font-size:13.5px;
  color:#003a78;
  font-weight:700;
  margin-bottom:3px;
  line-height:1.3;
}
.pm-spk-info span {
  font-size:12px;
  color:#666;
  line-height:1.5;
  font-style:italic;
}

/* Overview 패널 (모달 안의 첫 탭) */
.pm-ov {
  position:relative;
  background:linear-gradient(135deg, #f8fafc 0%, #eaf2fa 100%);
  border:1px solid #e1e8f0;
  border-radius:14px;
  padding:40px 44px;
  overflow:hidden;
  min-height:280px;
}
.pm-ov-body { position:relative; z-index:2; }
.pm-ov-title {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:22px; font-weight:800;
  color:#0078d4;
  letter-spacing:-.3px;
  margin:0 0 28px;
  line-height:1.3;
  max-width:75%;
}
.pm-ov-meta {
  margin:0; padding:0;
}
.pm-ov-row {
  display:grid;
  grid-template-columns:130px 1fr;
  gap:24px;
  padding:14px 0;
  border-bottom:1px solid rgba(0, 58, 120, 0.08);
}
.pm-ov-row:last-child { border-bottom:none; }
.pm-ov-row dt {
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:700;
  letter-spacing:2.5px;
  color:#0078d4;
  text-transform:uppercase;
}
.pm-ov-row dd {
  margin:0;
  font-size:14.5px; color:#333;
  line-height:1.55;
  max-width:75%;
}

/* 우측 큰 연도 장식 */
.pm-ov-year-deco {
  position:absolute;
  right:-30px; bottom:-20px;
  width:280px; height:280px;
  background:rgba(0, 120, 212, 0.08);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  z-index:1;
}
.pm-ov-year-deco span {
  font-family:'Montserrat',sans-serif;
  font-size:88px; font-weight:800;
  color:rgba(0, 58, 120, 0.5);
  letter-spacing:-3px;
  margin-right:30px;
  margin-bottom:20px;
}

@media (max-width:768px) {
  .pm-ov { padding:30px 24px; min-height:auto; }
  .pm-ov-title { font-size:18px; margin-bottom:20px; max-width:100%; }
  .pm-ov-row { grid-template-columns:90px 1fr; gap:14px; padding:12px 0; }
  .pm-ov-row dt { font-size:10.5px; letter-spacing:2px; }
  .pm-ov-row dd { font-size:13.5px; max-width:100%; }
  .pm-ov-year-deco {
    width:160px; height:160px;
    right:-40px; bottom:-40px;
    opacity:.6;
  }
  .pm-ov-year-deco span { font-size:50px; }
}

/* 모달 반응형 */
@media (max-width:768px) {
  .prev-modal.open { padding:0; align-items:flex-end; }
  .pm-inner {
    max-height:92vh;
    border-radius:16px 16px 0 0;
  }
  .pm-header { padding:22px 22px 18px; }
  .pm-eyebrow { font-size:12px; letter-spacing:2px; }
  .pm-title { font-size:17px; }
  .pm-tabs { padding:0 14px; overflow-x:auto; }
  .pm-tab { padding:12px 14px; font-size:12.5px; }
  .pm-tab svg { width:15px; height:15px; }
  .pm-body { padding:20px 18px 24px; }
  .pm-day { padding:20px 18px 8px; }
  .pm-prog-img { padding:20px 16px; }
  .pm-prog-img-hint { opacity:1; padding:8px; font-size:11px; }
  .pm-day-date { font-size:16px; }
  .pm-prog-row { grid-template-columns:1fr; gap:6px; padding:14px 0; }
  .pm-prog-time { color:#003a78; font-size:12px; }
  .pm-spk-list { grid-template-columns:1fr; gap:10px; }
  .pm-spk-avatar { width:56px; height:56px; border-width:2px; }
  .pm-spk-initial { font-size:16px; }
}

/* ═══════════════════════════════════════════
   연사 디테일 모달 (bio 있는 연사 클릭 시)
   ═══════════════════════════════════════════ */

/* 클릭 가능한 연사 카드 표시 */
.pm-spk-list li.has-bio {
  cursor:pointer;
  border-radius:8px;
  padding:8px 10px;
  margin:-8px -10px;
  transition:all .18s;
}
.pm-spk-list li.has-bio:hover {
  background:rgba(0, 120, 212, 0.06);
  transform:translateX(3px);
}
.pm-spk-more {
  display:block;
  margin-top:6px;
  font-family:'Montserrat',sans-serif;
  font-size:10.5px; font-weight:600;
  font-style:normal;
  color:#0078d4;
  letter-spacing:.5px;
  opacity:0;
  transition:opacity .2s;
}
.pm-spk-list li.has-bio:hover .pm-spk-more { opacity:1; }

/* 디테일 모달 컨테이너 */
.speaker-detail-modal {
  position:fixed; inset:0;
  z-index:20000;
  display:none;
}
.speaker-detail-modal.open {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px;
  animation:fadeIn .2s ease;
}
.sd-backdrop {
  position:absolute; inset:0;
  background:rgba(0, 15, 40, 0.78);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.sd-inner {
  position:relative;
  width:100%; max-width:780px;
  max-height:88vh;
  background:#fff;
  border-radius:16px;
  box-shadow:0 30px 80px rgba(0, 0, 0, 0.5);
  display:flex; flex-direction:column;
  overflow:hidden;
  animation:pmZoom .3s cubic-bezier(.34, 1.56, .64, 1);
}
.sd-close {
  position:absolute;
  top:18px; right:18px;
  width:36px; height:36px;
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(8px);
  border:none; border-radius:50%;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  color:#222;
  z-index:10;
  transition:all .15s;
  box-shadow:0 4px 12px rgba(0,0,0,0.15);
}
.sd-close svg { width:20px; height:20px; }
.sd-close:hover {
  background:#003a78; color:#fff;
  transform:rotate(90deg);
}

/* 디테일 헤더 (사진 + 정보) */
.sd-header {
  display:flex; gap:24px;
  padding:36px 36px 28px;
  background:linear-gradient(135deg, #f8fafc 0%, #e8f2fa 100%);
  border-bottom:1px solid #e1e8f0;
  align-items:flex-start;
}
.sd-photo {
  position:relative;
  width:140px; height:170px;
  flex-shrink:0;
  border-radius:10px;
  overflow:hidden;
  background:linear-gradient(135deg, #003a78 0%, #0078d4 100%);
  box-shadow:0 12px 28px rgba(0, 58, 120, 0.25),
             inset 0 -4px 12px rgba(0, 0, 0, 0.15);
  border:4px solid #fff;
}
.sd-photo img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 20%;
  display:block;
}
.sd-initial {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Montserrat',sans-serif;
  font-size:48px; font-weight:800;
  color:#fff;
  letter-spacing:-1px;
  text-shadow:0 3px 8px rgba(0,0,0,0.3);
}
.sd-meta { flex:1; padding-top:6px; }
.sd-session {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700;
  letter-spacing:2px;
  color:#0078d4;
  text-transform:uppercase;
  margin:0 0 10px;
  line-height:1.4;
}
.sd-name {
  font-family:'Montserrat','Noto Sans KR',sans-serif;
  font-size:26px; font-weight:800;
  color:#003a78;
  letter-spacing:-.5px;
  margin:0 0 8px;
  line-height:1.2;
}
.sd-title {
  font-size:14px;
  color:#0078d4;
  font-weight:500;
  line-height:1.55;
  margin:0;
}

/* 디테일 본문 (bio) */
.sd-body {
  padding:30px 36px 36px;
  overflow-y:auto;
  flex:1;
}
.sd-bio-label {
  display:inline-block;
  padding:5px 14px;
  background:#003a78;
  color:#fff;
  border-radius:14px;
  font-family:'Montserrat',sans-serif;
  font-size:10.5px; font-weight:700;
  letter-spacing:1.8px;
  margin:0 0 18px;
  text-transform:uppercase;
}
.sd-bio {
  font-size:14.5px;
  color:#333;
  line-height:1.8;
  margin:0;
  text-align:justify;
  word-break:keep-all;
}

/* 디테일 모달 반응형 */
@media (max-width:768px) {
  .speaker-detail-modal.open { padding:0; align-items:flex-end; }
  .sd-inner {
    max-height:94vh;
    border-radius:16px 16px 0 0;
  }
  .sd-header {
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:24px 20px 20px;
    gap:18px;
  }
  .sd-photo { width:120px; height:150px; }
  .sd-meta { padding-top:0; }
  .sd-session { font-size:10.5px; letter-spacing:1.8px; }
  .sd-name { font-size:21px; }
  .sd-title { font-size:13.5px; }
  .sd-body { padding:24px 20px 28px; }
  .sd-bio { font-size:13.5px; line-height:1.75; text-align:left; }
  .sd-close { top:14px; right:14px; width:32px; height:32px; }
}
