@charset "utf-8";
/* ==========================================================================
   메인 페이지 (index.html)
   ========================================================================== */

/* ==========================================================================
   KEY VISUAL
   ========================================================================== */
.kv {
  position: relative;
  overflow: hidden;
  padding-top: calc(var(--header-h) + clamp(48px, 4.8vw, 93px));
  padding-bottom: clamp(56px, 5.3vw, 102px);
  background: #ffffff;
}

/* --------------------------------------------------------------------------
   KV 장식 레이어
   Figma "상단 키비주얼"(10800:11 / PC 1920x1283) 좌표를 프레임 대비 % 로 환산.
   - 큰 레이어는 프레임 폭(1920) 기준 % + aspect-ratio 로 비율 고정
   - 포인트 마크는 프레임 폭·높이 대비 % 로 배치
   -------------------------------------------------------------------------- */
.kv__mesh-tl {                                    /* 10882:20582 — 좌상단 그라디언트 웨지 */
  left: 0; top: var(--header-h);
  width: 55.26%; aspect-ratio: 1061 / 878;
  background-image: url("../images/deco/kv-mesh-tl.svg");
}
.kv__dots-tl {                                    /* 10882:20583 — 좌상단 픽셀 필드 */
  left: 0; top: var(--header-h);
  width: 41.46%; aspect-ratio: 796 / 615;
  background-image: url("../images/deco/kv-dots-tl.svg");
}
.kv__mesh-br {                                    /* 10882:19497 — 우하단 그라디언트 웨지 */
  right: 0; bottom: 0;
  width: 63.59%; aspect-ratio: 1221 / 1044;
  background-image: url("../images/deco/kv-mesh-br.svg");
}
.kv__dots-br {                                    /* 10882:19498 — 우하단 픽셀 필드 */
  right: 0; bottom: 0;
  width: 46.41%; aspect-ratio: 891 / 721;
  background-image: url("../images/deco/kv-dots-br.svg");
}
.kv__wave {                                       /* 10882:20580 — 하단 시안 웨이브 */
  left: 0; right: 0; bottom: 0;
  height: 15.21%;
  min-height: 90px;
  background-image: linear-gradient(180deg, rgba(28, 171, 226, 0) 33.8%, rgba(28, 171, 226, 0.25) 100%);
}

/* 포인트 마크는 헤더 아래 영역(시안 1283 - 헤더 109 = 1174px) 기준으로 배치한다. */
.kv__deco .deco__mark { --deco-band: calc(100% - var(--header-h)); }

.kv__chev-r  { left: 88.39%; top: calc(var(--header-h) + 0.0545 * var(--deco-band)); width: 6.51%; }   /* 10882:21665 */
.kv__chev-l  { left: 16.30%; top: calc(var(--header-h) + 0.3526 * var(--deco-band)); width: 3.44%; }   /* 10882:21678 */
.kv__plus-1  { left:  5.21%; top: calc(var(--header-h) + 0.0562 * var(--deco-band)); width: 2.24%; }   /* 10891:4830  */
.kv__plus-2  { left:  7.14%; top: calc(var(--header-h) + 0.6474 * var(--deco-band)); width: 2.24%; }   /* 10882:21688 */
.kv__plus-3  { left: 79.90%; top: calc(var(--header-h) + 0.4276 * var(--deco-band)); width: 2.24%; }   /* 10882:21694 */
.kv__plus-4  { left: 92.24%; top: calc(var(--header-h) + 0.2734 * var(--deco-band)); width: 2.24%; }   /* 10882:21707 */
.kv__plus-5  { left: 14.06%; top: calc(var(--header-h) + 0.8824 * var(--deco-band)); width: 2.24%; }   /* 10882:21700 */

/* 시안상의 레이어 투명도 */
.kv__chev-r,
.kv__chev-l { opacity: 0.3; }
.kv__plus-2,
.kv__plus-3 { opacity: 0.2; }

.kv__inner { position: relative; z-index: 1; }

/* 상단 블록(아이브로우 ~ 메타)은 시안의 729px 컬럼을 그대로 쓴다.
   729/1920 = 37.97vw — sys-win 폭과 타이틀 글자 폭이 이 값으로 맞춰진다. */
.kv__eyebrow,
.kv__title,
.kv__sub,
.kv__terminal,
.kv__meta {
  max-width: clamp(320px, 37.97vw, 729px);
  margin-inline: auto;
}

/* 시안 이미지 그대로 사용 (10882:18813 / 300x32, "2026" 밑에만 밑줄) */
.kv__eyebrow { line-height: 0; }
.kv__eyebrow img {
  display: block;
  width: clamp(180px, 15.625vw, 300px);
  height: auto;
}

/* kv-title.svg 는 글자 블록(0~713)과 오른쪽 픽셀 흩뿌림(713~809)으로 되어 있다.
   글자 블록이 컬럼(729) 과 같은 폭이 되도록 이미지를 809/713 배로 키우면
   흩뿌림만 컬럼 오른쪽으로 흘러나간다. */
.kv__title { margin-top: clamp(24px, 3vw, 58px); line-height: 0; }
.kv__title img { width: 113.45%; max-width: none; height: auto; }

.kv__sub {
  margin-top: clamp(14px, 1.3vw, 24px);
  /* 시안: 729 컬럼 안에 한 줄로 딱 들어가는 크기(≈41.5px @1920) */
  font-size: clamp(20px, 2.16vw, 41.5px);
  font-weight: 500;                        /* 시안 Medium — Bold 아님 */
  color: var(--c-primary);
  line-height: 1.22;
}
@media (min-width: 1024px) { .kv__sub { white-space: nowrap; } }
.kv__block {
  display: inline-block;
  width: 0.26em;
  height: 0.88em;
  margin-left: 0.22em;
  background: var(--c-primary);
  vertical-align: -0.06em;
}

.kv__terminal { margin-top: clamp(18px, 1.8vw, 35px); }

/* 시안 개정: 메타 블록 자체를 가운데 정렬 (행 내부는 좌측 정렬 유지) */
.kv__meta {
  margin-top: clamp(20px, 2.1vw, 40px);
  margin-inline: auto;
  width: fit-content;
  max-width: 100%;
  display: grid;
  gap: 10px;
  font-size: clamp(13px, 1.05vw, 20px);
  letter-spacing: 0.04em;
}
.kv__meta-row {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 1.7vw, 32px);
  flex-wrap: wrap;
}
/* 시안상 메타 블록은 라벨·값·구분자 모두 같은 회색 (#717071) */
.kv__meta { color: #717071; }
.kv__meta dt { color: inherit; white-space: nowrap; }
.kv__meta dd { margin: 0; color: inherit; font-weight: 400; }
.kv__meta small { font-size: 0.72em; color: inherit; }
.kv__meta .bar { color: inherit; margin-inline: 6px; }
/* 시안: 주소 한 줄, Pretendard Bold 16px
   ※ .kv__meta dd 보다 특정도가 높아야 font-weight 가 먹는다 */
.kv__meta dd.kv__meta-loc {
  font-family: var(--ff-base);
  font-weight: 700;
  font-size: clamp(12px, 0.833vw, 16px);
}

.kv__desc {
  max-width: 1420px;
  margin: clamp(30px, 3vw, 58px) auto 0;
  text-align: center;
  font-size: clamp(14px, 1.25vw, 24px);   /* 시안 24px */
  line-height: 1.75;
  color: var(--c-black);
}
.kv__desc p + p { margin-top: clamp(16px, 1.7vw, 32px); }
/* 시안: 본문 3단락 중 마지막 줄만 SemiBold, 앞 두 단락은 Regular */
.kv__desc-strong { font-weight: 600; }

.kv__chars {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: clamp(22px, 2.839vw, 54px);
  margin-top: clamp(30px, 3vw, 58px);
}
/* 시안 실측: 하트 75 / 꽃 66 / 스마일 65 — 각각 다르다 */
.kv__chars img { height: auto; }
.kv__chars li:nth-child(1) img { width: clamp(44px, 3.906vw, 75px); }
.kv__chars li:nth-child(2) img { width: clamp(39px, 3.438vw, 66px); }
.kv__chars li:nth-child(3) img { width: clamp(38px, 3.385vw, 65px); }

@media (max-width: 767px) {
  .kv { padding-top: calc(var(--header-h) + 28px); padding-bottom: 40px; }
  .kv__eyebrow img { width: clamp(160px, 52vw, 220px); }
  .kv__title { margin-top: 14px; }
  /* 모바일에서는 흩뿌림까지 화면 안에 다 보이도록 이미지 전체를 넣는다 */
  .kv__title img { width: 100%; }
  .kv__sub { margin-top: 10px; font-size: 15px; }
  .kv__terminal { margin-top: 16px; }
  .kv__meta { padding-left: 0; margin-top: 34px; gap: 4px; font-size: 15px; }
  .kv__meta-row { flex-direction: column; gap: 2px; }
  .kv__meta dt { font-size: 15px; color: var(--c-black); }
  .kv__meta dd { font-family: var(--ff-base); font-size: 15px; }
  .kv__desc { text-align: center; margin-top: 26px; }
  .kv__chars { margin-top: 26px; gap: 18px; }
  .kv__chars img { width: 42px; }
}

/* ==========================================================================
   홍보영상 + S.A.F.E
   ========================================================================== */
/* 시안(11038:38066 / 1920x1136) 실측
   · 좌우 여백 173 (컨테이너 1574) · 영상 461x819 · 본문 컬럼 x=830 (간격 196)
   · 타이틀 46 / 리드 28 / 키박스 84x84 / 소제목 32 / 설명 24 / 버튼 488x94  */
.safe {
  background: var(--c-primary);
  color: #fff;
  padding-block: clamp(48px, 7.708vw, 148px) clamp(56px, 8.75vw, 168px);
}
.safe__inner {
  max-width: calc(1574px + var(--gutter) * 2);
  display: grid;
  grid-template-columns: 461fr 917fr;
  column-gap: 12.45%;
  align-items: start;
}

.safe__video-ph {
  aspect-ratio: 461 / 819;
  background: #d9d9d9;
  color: #000;
  font-size: clamp(18px, 2.396vw, 46px);
}

.safe__title {
  font-size: clamp(22px, 2.396vw, 46px);
  font-weight: 700;
  line-height: 1.3;
}
.safe__lead {
  margin-top: clamp(10px, 1.042vw, 20px);
  font-size: clamp(15px, 1.458vw, 28px);
  line-height: 1.5;
  color: #fff;
}

/* 시안: 리드 하단 → 첫 행 56 / 행 간격(피치) 116 */
.safe__list { margin-top: clamp(24px, 2.917vw, 56px); display: grid; gap: clamp(14px, 1.667vw, 32px); }
.safe__item { display: flex; align-items: center; gap: clamp(12px, 1.667vw, 32px); }

.safe__key {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: clamp(44px, 4.375vw, 84px);
  height: clamp(44px, 4.375vw, 84px);
  background: #fff;
  color: var(--c-primary);
  font-size: clamp(50px, 4.976vw, 95.55px);
  line-height: 1;
}

.safe__text h3 {
  font-size: clamp(17px, 1.667vw, 32px);
  font-weight: 700;
  line-height: 1.3;
}
.safe__text h3 .dot { color: #fff; margin-inline: 4px; }
.safe__text p {
  margin-top: clamp(4px, 0.521vw, 10px);
  font-size: clamp(13px, 1.25vw, 24px);
  line-height: 1.3;
  color: #fff;
}

/* 시안: 마지막 행 → 버튼 76 / 버튼 488x94 · 흰 테두리 2px · 안쪽 흰색 20% */
.safe__cta {
  margin-top: clamp(30px, 3.958vw, 76px);
  width: clamp(240px, 25.417vw, 488px);
  min-width: 0;
  min-height: clamp(52px, 4.896vw, 94px);
  padding-inline: 0;
  font-size: clamp(20px, 2.396vw, 46px);
  color: #fff;
  background: rgba(255, 255, 255, 0.2);
  border: 2px solid #fff;
}
.safe__cta:hover { background: rgba(255, 255, 255, 0.32); }

/* 영상 없는 버전 — 시안(10800:7056): 본문 블록이 x519 에서 시작하고 CTA 는 화면 가운데 */
.safe--novideo .safe__inner { display: block; }
.safe--novideo .safe__body { max-width: 900px; margin-inline: auto; }   /* 시안 본문 x519 · 설명 한 줄 유지 */
.safe--novideo .safe__list { margin-top: clamp(10px, 0.885vw, 17px); }   /* 시안 7056: 리드 아래 17 */
.safe--novideo .safe__cta { display: flex; margin-inline: auto; }

@media (max-width: 767px) {
  .safe__inner { grid-template-columns: 1fr; column-gap: 0; gap: 26px; }
  .safe__video-ph { aspect-ratio: 330 / 430; }
  .safe__cta { width: 100%; }
  .safe__item { align-items: flex-start; }
}

/* ==========================================================================
   PROGRAM
   ========================================================================== */
.program .container { max-width: 1500px; }

/* --------------------------------------------------------------------------
   DAY 탭
   Figma "Group 1178479"(10891:412) — 탭 1개 370x70, 두 탭이 맞붙어 있고
   좌·우 28px 구간이 7px 픽셀로 디더링되어 깎여 있다.
   그 깎인 모양을 mask 로 적용해 배경색은 CSS 가 그대로 쥐고 있게 한다.
   -------------------------------------------------------------------------- */
/* 시안(10882:21975 / 1920x2355) 실측: 타이틀 잉크 y113 · 탭 y246 · 첫 구분선 y362 */
.program { padding-top: clamp(62px, 5.365vw, 103px); }
.program > .container > .sec-title { font-size: clamp(30px, 2.396vw, 46px); }

.daytab {
  --daytab-h: clamp(38px, 3.646vw, 70px);       /* 시안 70px */
  --daytab-w: clamp(150px, 19.27vw, 370px);     /* 시안 370px */
  --daytab-edge: calc(var(--daytab-h) * 0.4);   /* 28/70 */
  display: flex;
  justify-content: center;
  gap: 0;                                        /* 시안: 두 탭이 맞닿는다 */
  margin-top: clamp(34px, 4.531vw, 87px);   /* 시안: 타이틀 잉크 하단 143 → 탭 246 */
}
.daytab__btn {
  position: relative;
  width: var(--daytab-w);
  height: var(--daytab-h);
  font-size: clamp(15px, 2.396vw, 46px);         /* 시안 46px */
  color: #fff;
  background-color: #d9d9d9;
  letter-spacing: 0.12em;
  /* 양끝 픽셀 장식은 전달받은 시안 이미지(28x70, 흰 사각형)를 그대로 얹는다 */
  background-image:
    url("../images/program_title_left.svg"),
    url("../images/program_title_right.svg");
  background-size: var(--daytab-edge) 100%, var(--daytab-edge) 100%;
  background-position: left center, right center;
  background-repeat: no-repeat;
  transition: background-color 0.2s var(--ease);
}
.daytab__btn:hover { background-color: #c4c4c4; }
.daytab__btn[aria-selected="true"] { background-color: var(--c-primary); }

/* --------------------------------------------------------------------------
   프로그램 리스트
   Figma: 가로 줄 1200px, 시간 칸은 내용 시작(좌 310px)까지.
   시간은 칸 안에서 가로·세로 모두 가운데, 내용은 왼쪽 정렬.
   시간 행과 세션 행의 내용은 같은 좌측 축(310px)을 쓴다.
   -------------------------------------------------------------------------- */
.prog {
  margin-top: clamp(20px, 2.396vw, 46px);   /* 시안: 탭 하단 316 → 첫 구분선 362 */
  max-width: 1200px;                          /* 시안 1200px */
  margin-inline: auto;
}
.prog__list { border-top: 1px solid #d1d1d1; }

.prog__row {
  display: grid;
  grid-template-columns: var(--prog-time-col, clamp(120px, 16.094vw, 309px)) 1fr;
  min-height: clamp(61px, 5.781vw, 111px);   /* 시안 행 높이 112 = 111 + 구분선 1 */
  padding-block: clamp(12px, 1.159vw, 22.25px);
  border-bottom: 1px solid #d1d1d1;
  align-items: center;                        /* 시간 세로 가운데 */
}

.prog__time {
  font-family: var(--ff-base);
  font-size: clamp(13px, 1.25vw, 24px);       /* 시안 24px */
  font-weight: 500;
  line-height: 1.5;
  color: #a4a4a4;
  display: flex;
  align-items: center;
  justify-content: center;                    /* 시안: 시간 "값"이 칸 가운데 */
  gap: clamp(6px, 0.677vw, 13px);             /* 시안 아이콘~텍스트 13px */
}
/* 아이콘은 레이아웃 폭에서 빼서 값 기준 가운데 정렬이 유지되게 한다 */
.prog__time .ico { margin-left: calc(-1 * (clamp(12px, 0.938vw, 18px) + clamp(6px, 0.677vw, 13px))); }
/* 시계 아이콘은 시안 원본 SVG (10800:7015 / 18x18, #A4A4A4) */
.prog__time .ico {
  flex-shrink: 0;
  width: clamp(12px, 0.938vw, 18px);
  height: auto;
}

.prog__info { align-self: center; }

.prog__title {
  font-size: clamp(15px, 1.25vw, 24px);       /* 시안 24px Bold */
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.prog__title--lg { font-size: clamp(15px, 1.25vw, 24px); }

.prog__people {
  margin-top: 5px;
  font-size: clamp(12px, 0.885vw, 17px);      /* 시안 17px Medium */
  font-weight: 500;
  color: #888888;
  line-height: 1.5;
}
.prog__people .bar,
.prog__panel .bar { color: #c4c4c4; margin-inline: 4px; }

.prog__badge {
  font-size: clamp(11px, 0.729vw, 14px);   /* 시안 14px Regular */
  color: var(--c-primary);
  font-weight: 400;
  margin-bottom: clamp(5px, 0.469vw, 9px);   /* 시안: 배지 하단 853 → 제목 862 */
  display: flex;
  align-items: center;
  gap: 6px;
}
.prog__badge i {
  width: 4px; height: 1em;
  background: var(--c-primary);
  display: inline-block;
}

.prog__online {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 5px;
  font-size: clamp(11px, 0.885vw, 17px);   /* 시안 17px Medium */
  line-height: 1.5;
  color: var(--c-primary);
  font-weight: 500;
}
.prog__online + .prog__people { margin-top: 0; }
.prog__online::before { content: "🌐"; font-size: 0.95em; }
.prog__online--inline { margin-top: 0; }

.prog__panel { margin-top: 5px; line-height: 1.5; font-size: clamp(12px, 0.885vw, 17px); color: #888888; }   /* 시안 17px */
.prog__panel > div { display: grid; grid-template-columns: 44px 1fr; gap: 10px; margin-top: 5px; }
.prog__panel dt { color: #888; }
.prog__panel dd { margin: 0; line-height: 1.5; }   /* 시안 17px / 150% */

/* 세션 리스트 — 좌측 라벨이 "> Session N |"
   시안대로 세션 행의 내용 축은 시간 행보다 왼쪽(240px)에 있다.
   라벨은 우측 정렬하고, 시간은 그 라벨 바로 아래에 오도록 같은 트랙에 놓는다. */
.prog__list--session .prog__row {
  --prog-time-col: clamp(110px, 12.5vw, 240px);   /* 시안 240px */
}
.prog__list--session .prog__time {
  display: grid;                              /* 트랙 폭 = 라벨 폭 */
  justify-content: end;                       /* 라벨 블록을 칸 오른쪽에 붙인다 */
  justify-items: center;                      /* 시간은 라벨 바로 아래 가운데 */
  align-self: start;                          /* 시안: 세션 번호는 제목과 같은 높이(위) */
  align-content: start;
  gap: 2px;
  padding-right: clamp(7px, 1.198vw, 23px);   /* 시안: 라벨 끝 577 → 칸 끝 600 */
}
.prog__ses {
  font-size: clamp(13px, 1.25vw, 24px);       /* 시안 24px Bold */
  font-weight: 700;
  line-height: 1.5;
  color: #ebad33;
  text-align: right;
  white-space: nowrap;
}
/* 라벨 끝 막대 — 시안 4x22, 텍스트와 12px 간격 (10882:21824) */
.prog__ses i {
  display: inline-block;
  width: clamp(3px, 0.208vw, 4px);
  height: clamp(13px, 1.146vw, 22px);
  margin-left: clamp(6px, 0.625vw, 12px);
  background: currentColor;
  vertical-align: middle;
  font-size: 0;
  line-height: 0;
}
.prog__ses-time {
  font-size: clamp(11px, 0.885vw, 17px);      /* 시안 17px Medium */
  font-weight: 500;
  color: #a4a4a4;
  white-space: nowrap;
}

/* Coffee break */
.prog__break {
  background: #f7f8fa;
  color: #a4a4a4;
  text-align: center;
  min-height: clamp(38px, 3.125vw, 60px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: clamp(8px, 0.625vw, 12px);
  font-size: clamp(14px, 1.25vw, 24px);
  line-height: 1.5;
}

/* Track 밴드 */
.prog__track {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.9vw, 16px);
  flex-wrap: wrap;
  min-height: clamp(38px, 3.125vw, 60px);
  padding: clamp(8px, 0.703vw, 13.5px) clamp(16px, 1.6vw, 30px);
  color: #fff;
  font-size: clamp(13px, 1.146vw, 22px);
  line-height: 1.5;
  text-align: center;
}
.prog__track--a { background: var(--c-track-a); }
.prog__track--b { background: var(--c-track-b); }
.prog__track strong { font-weight: 700; }
.prog__track-time { opacity: 0.95; }
.prog__track-q { font-weight: 400; }

@media (max-width: 767px) {
  /* 모바일은 1단으로 쌓고 시간도 왼쪽 정렬 */
  .prog__row { grid-template-columns: 1fr; gap: 6px; padding-block: 16px; align-items: start; }
  .prog__time { justify-content: flex-start; }
  .prog__list--session .prog__time {
    flex-direction: row; align-items: baseline; justify-content: flex-start;
    gap: 10px; padding-right: 0;
  }
  .prog__ses-time { align-self: auto; text-align: left; }
  .prog__panel > div { grid-template-columns: 38px 1fr; }
  .prog__track { flex-direction: column; gap: 4px; text-align: left; align-items: flex-start; }
}

/* ==========================================================================
   특별 전시 및 기업 부스
   ========================================================================== */
/* 시안(10891:249 / 1920x761) 실측
   · 배경 #f1f1f1 · 타이틀 잉크 y112 · 카드 y221~551 (765x330, 간격 28)
   · 카드 본문은 배경이 비침(흰 채움 없음) · 제목 영역은 2줄(144) 고정, 세로 가운데 */
.exhibit {
  background: #f1f1f1;
  padding-top: clamp(62px, 5.313vw, 102px);
  padding-bottom: clamp(62px, 5.469vw, 105px);
}
.exhibit > .container { max-width: calc(1560px + var(--gutter) * 2); }   /* 시안 콘텐츠 폭 1560 */
.exhibit__grid {
  margin-top: clamp(30px, 3.448vw, 66px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(14px, 1.458vw, 28px);
}
.exhibit__card { background: transparent; }
.exhibit__card .sys-win__bar { background: transparent; }   /* 시안: 타이틀바도 배경이 비친다 */
.exhibit__card .sys-win__body {
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 1.458vw, 28px) clamp(16px, 1.615vw, 31px) clamp(16px, 1.589vw, 30.5px);
}

.exhibit__eyebrow {
  font-size: clamp(16px, 1.667vw, 32px);
  font-weight: 700;
  color: var(--c-primary);
  line-height: 1.5;
}
.exhibit__title {
  margin-top: clamp(-6px, -0.313vw, -3px);
  min-height: clamp(72px, 7.5vw, 144px);    /* 시안: 제목 칸은 2줄 높이 고정 */
  display: flex;
  align-items: center;
  font-size: clamp(20px, 2.5vw, 48px);
  font-weight: 700;
  line-height: 1.5;
}
.exhibit__desc {
  margin-top: clamp(12px, 1.328vw, 25.5px);
  font-size: clamp(13px, 1.25vw, 24px);
  line-height: 1.21;
  color: var(--c-black);
}
.exhibit .btn-row { margin-top: clamp(18px, 1.823vw, 35px); }

@media (max-width: 1023px) {
  .exhibit__grid { grid-template-columns: 1fr; }
  .exhibit__title { min-height: 0; margin-top: 8px; }
}

/* ==========================================================================
   ORGANIZERS
   ========================================================================== */
/* 시안(10800:7206 / 1920x637) 실측
   · 시안색 띠 150 (타이틀 잉크 72~101) · 행 128 (텍스트 50 들여쓰기)
   · 구분선 x135~1785 · 라벨은 x=487 중심 · 값은 x=621 */
.organizers {
  padding-bottom: clamp(26px, 2.604vw, 50px);
  border-bottom: 1px solid #d1d1d1;
}
.organizers__head {
  background: var(--c-primary);
  font-size: clamp(30px, 2.396vw, 46px);
  padding-block: clamp(34px, 3.229vw, 62px) clamp(18px, 1.708vw, 33px);
  margin-bottom: clamp(28px, 2.708vw, 52px);
}
.organizers > .container { max-width: calc(1650px + var(--gutter) * 2); }

.organizers__row {
  display: grid;
  grid-template-columns: 18.715% 1fr;   /* 시안: 라벨 칸 268 (본문폭 1432 기준) */
  padding-left: 13.212%;                /* 시안: 구분선 시작 135 → 라벨 칸 353 */
  align-items: center;
  min-height: clamp(70px, 6.667vw, 128px);   /* 시안 행 높이 128 · 로고는 넘쳐도 높이에 관여하지 않음 */
  border-bottom: 1px solid var(--c-primary);
}
.organizers__row:nth-child(2) { border-bottom-color: rgba(28, 171, 226, 0.5); }
.organizers__row:last-child { border-bottom: 0; }
.organizers__row dt {
  text-align: center;
  font-family: var(--ff-pixel);
  font-weight: 400;
  font-size: clamp(14px, 1.25vw, 24px);
  line-height: 1.15;
  color: #000;
  white-space: nowrap;
}
.organizers__row dd {
  margin: 0;
  font-size: clamp(13px, 1.25vw, 24px);
  line-height: 1.15;
  color: #000;
}
.organizers__row dd .bar { color: #c9c9c9; margin-inline: 8px; }
.organizers__logo { height: clamp(22px, 1.979vw, 38px); width: auto; }

@media (max-width: 767px) {
  .organizers__row { grid-template-columns: 1fr; gap: 8px; padding-block: 18px; padding-left: 0; }
  .organizers__row dt { text-align: left; }
}

/* ==========================================================================
   LOCATION
   ========================================================================== */
/* 시안(10800:7270 / 1920x1348) 실측
   · 배경 #f1f1f1 · 콘텐츠 129~1798 (지도 740x772 · 간격 103 · 오른쪽 칸 826)
   · 구분선 #d1d1d1 1px @ y463/616/728/940/1056/1177 */
.location {
  background: #f1f1f1;
  padding-top: clamp(64px, 5.417vw, 104px);
  padding-bottom: clamp(70px, 8.906vw, 171px);
}
.location > .container { max-width: calc(1670px + var(--gutter) * 2); }

.location__head { margin-top: clamp(32px, 3.448vw, 66px); text-align: center; }
.location__place {
  font-size: clamp(22px, 2.396vw, 46px);
  font-weight: 700;
  line-height: 1.4;
}
.location__addr {
  margin-top: clamp(8px, 0.833vw, 16px);
  font-size: clamp(14px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}

.location__grid {
  margin-top: clamp(28px, 2.943vw, 56.5px);
  display: grid;
  grid-template-columns: 44.31% 1fr;       /* 시안 지도 740 / 1670 */
  column-gap: 6.17%;                       /* 시안 103 / 1670 */
  align-items: start;
}
.location__map {
  margin-top: clamp(3px, 0.365vw, 7px);
  aspect-ratio: 740 / 772;
  border: 2px solid var(--c-primary);
  overflow: hidden;
  background: #f4f4f4;
}
.location__map img { width: 100%; height: 100%; object-fit: cover; }

.location__block + .location__block { margin-top: clamp(24px, 2.448vw, 47px); }
.location__h4 {
  margin-left: clamp(6px, 0.677vw, 13px);
  font-size: clamp(18px, 1.667vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  padding-bottom: clamp(9px, 0.885vw, 17px);
  border-bottom: 1px solid #d1d1d1;
}

/* 오시는 길 — 시안: 위아래 28 여백, 행 간격 25, 라벨 x990 / 내용 x1136 */
.location__dl {
  padding-left: clamp(8px, 0.938vw, 18px);
  padding-block: clamp(15px, 1.458vw, 28px);
  display: grid;
  gap: clamp(13px, 1.302vw, 25px);
  border-bottom: 1px solid #d1d1d1;
}
.location__dl > div {
  display: grid;
  grid-template-columns: clamp(74px, 7.604vw, 146px) 1fr;
  align-items: baseline;
  padding: 0;
  border: 0;
}
.location__dl dt { font-weight: 700; font-size: clamp(14px, 1.25vw, 24px); line-height: 1.5; }
.location__dl dd {
  margin: 0;
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.521vw, 10px);
  flex-wrap: wrap;
  font-size: clamp(14px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}
.location__dl dd strong { font-weight: 700; }
.subway-line {
  display: grid;
  place-items: center;
  width: clamp(22px, 1.927vw, 37px);
  height: clamp(22px, 1.927vw, 37px);
  border-radius: 50%;
  background: #cd7c2f;
  color: #fff;
  font-size: clamp(13px, 1.25vw, 24px);
  font-weight: 700;
  flex-shrink: 0;
}
.location__desc {
  font-size: clamp(13px, 1.042vw, 20px);
  font-weight: 500;
  color: #000;
  margin-left: clamp(4px, 0.573vw, 11px);
}

.location__bullets {
  padding-top: clamp(22px, 2.161vw, 41.5px);
  padding-bottom: clamp(16px, 1.589vw, 30.5px);
  display: grid;
  gap: clamp(14px, 1.563vw, 30px);
  border-bottom: 1px solid #d1d1d1;
}
.location__block:last-child .location__bullets { padding-bottom: clamp(22px, 2.214vw, 42.5px); }
.location__bullets li {
  position: relative;
  padding-left: clamp(14px, 1.25vw, 24px);
  font-size: clamp(13px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}
.location__bullets li::before {
  content: "";
  position: absolute;
  left: 4px; top: 0.62em;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--c-text);
}
.location__note {
  display: block;
  margin-top: 1px;
  font-size: clamp(12px, 1.25vw, 24px);
  color: #000;
}

@media (max-width: 1023px) {
  .location__grid { grid-template-columns: 1fr; column-gap: 0; row-gap: 26px; }
  .location__map { margin-top: 0; }
}

/* ==========================================================================
   FAQ
   ========================================================================== */
/* 시안(10800:7494 / 1920x3398) 실측
   · 배경 #1cabe2 · 타이틀 잉크 y117 · 카테고리 라벨 377x92 (y248/1135/2573)
   · 구분선은 화면 전체 폭 흰색 50% · 문항 간격 278
   · 번호 x135 / 질문 x320 / 답변 패널 320~1784 (높이 100 · #169ccf) */
.faq {
  background: var(--c-primary);
  color: #fff;
  padding-top: clamp(62px, 5.573vw, 107px);
  padding-bottom: clamp(62px, 5.625vw, 108px);
}

/* 카테고리 라벨 — 시안(10882:23624) 377x92 흰 박스, 양끝 29x93 픽셀 장식 */
.faq__cate {
  --faq-cate-h: clamp(44px, 4.792vw, 92px);
  --faq-cate-edge: calc(var(--faq-cate-h) * 0.3152);   /* 29/92 */
  display: grid;
  place-content: center;
  width: fit-content;
  min-width: clamp(200px, 19.635vw, 377px);            /* 시안 377px */
  height: var(--faq-cate-h);
  margin: clamp(46px, 8.646vw, 166px) auto clamp(30px, 3.802vw, 73px);
  padding-inline: calc(var(--faq-cate-edge) + clamp(10px, 1.2vw, 22px));
  background-color: #fff;
  background-image:
    url("../images/faq_title_left.svg"),
    url("../images/faq_title_right.svg");
  background-size: var(--faq-cate-edge) 100%, var(--faq-cate-edge) 100%;
  background-position: left center, right center;
  background-repeat: no-repeat;
  color: var(--c-primary);
  font-size: clamp(18px, 1.875vw, 36px);               /* 시안 36px */
  text-align: center;
}
.faq__cate:first-of-type { margin-top: clamp(38px, 4.469vw, 85.8px); }

.faq__list { border-top: 1px solid rgba(255, 255, 255, 0.5); }
.faq__item { border-bottom: 1px solid rgba(255, 255, 255, 0.5); }

.faq__q {
  width: 100%;
  display: grid;
  grid-template-columns: clamp(60px, 9.635vw, 185px) 1fr auto;  /* 시안: 번호 135 → 질문 320 */
  align-items: center;
  padding-block: clamp(22px, 2.448vw, 47px);
  padding-inline: var(--gutter-lg);
  text-align: left;
  line-height: 1.3;
  color: #fff;
}
.faq__num { font-size: clamp(14px, 1.25vw, 24px); font-weight: 700; color: #fff; }
.faq__text { font-size: clamp(14px, 1.25vw, 24px); font-weight: 700; line-height: 1.3; }
.faq__arrow {
  font-size: clamp(16px, 1.25vw, 24px);
  transition: transform 0.25s var(--ease);
}
.faq__q[aria-expanded="true"] .faq__arrow { transform: rotate(180deg); }

.faq__a {
  margin-top: clamp(3px, 0.313vw, 6px);
  padding-bottom: clamp(22px, 2.448vw, 47px);
  padding-inline: var(--gutter-lg);
}
.faq__a p {
  margin-left: clamp(60px, 9.635vw, 185px);
  min-height: clamp(56px, 5.208vw, 100px);            /* 시안 패널 높이 100 */
  display: flex;
  align-items: center;
  background: #169ccf;
  padding-inline: clamp(16px, 2.5vw, 48px);
  padding-block: clamp(10px, 1vw, 20px);
  font-size: clamp(13px, 1.042vw, 20px);
  line-height: 1.3;
}

@media (max-width: 767px) {
  .faq__q { grid-template-columns: 34px 1fr auto; gap: 8px; padding-block: 16px; }
  .faq__a p { margin-left: 34px; }
}

/* --------------------------------------------------------------------------
   KV 장식 — 모바일
   Figma "M_메인페이지_상단"(11022:362 / 430x1308). PC 와 좌표계가 완전히 달라
   모바일 시안 좌표를 따로 환산한다. (헤더 85px 기준 밴드 = 1223px)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .kv__deco .deco__layer { --deco-band: calc(100% - var(--header-h)); }

  .kv__mesh-tl {                                  /* 11022:363 (-148,85 / 778x385) */
    left: -34.42%; top: var(--header-h);
    width: 180.93%; aspect-ratio: 778 / 385;
  }
  .kv__dots-tl {                                  /* 좌상단 픽셀 필드 (시안 비율에 맞춰 확대) */
    left: -8%; top: var(--header-h);
    width: 120%; aspect-ratio: 796 / 615;
  }
  .kv__mesh-br {                                  /* 11022:376 (13,264 / 480x396) */
    left: 3.02%; right: auto; bottom: auto;
    top: calc(var(--header-h) + 0.146 * var(--deco-band));
    width: 111.63%; aspect-ratio: 480 / 396;
  }
  .kv__dots-br {                                  /* 11022:377 (139,387 / 354x274) */
    left: 32.33%; right: auto; bottom: auto;
    top: calc(var(--header-h) + 0.247 * var(--deco-band));
    width: 82.33%; aspect-ratio: 354 / 274;
  }
  .kv__wave {                                     /* 11022:1459 (-273,549 / 771x111) */
    top: calc(var(--header-h) + 0.379 * var(--deco-band));
    bottom: auto;
    height: 9.1%;
    min-height: 60px;
  }

  /* 모바일 시안의 셰브론은 2개 모두 가로형(48x25) */
  .kv__chev-r {
    left: 82.79%; top: calc(var(--header-h) + 0.027 * var(--deco-band));
    width: 11.16%;
  }
  .kv__chev-l {
    left: 52.09%; top: calc(var(--header-h) + 0.152 * var(--deco-band));
    width: 11.16%; aspect-ratio: 125 / 65;
    background-image: url("../images/deco/chevron-left.svg");
  }

  .kv__plus-1 { left:  6.74%; top: calc(var(--header-h) + 0.206 * var(--deco-band)); width: 3.95%; }
  .kv__plus-2 { left: 91.16%; top: calc(var(--header-h) + 0.160 * var(--deco-band)); width: 3.95%; opacity: 1; }
  .kv__plus-3 { left: 69.07%; top: calc(var(--header-h) + 0.125 * var(--deco-band)); width: 3.95%; opacity: 0.2; }
  .kv__plus-4,
  .kv__plus-5 { display: none; }                  /* 모바일 시안에 없음 */
}
