.exhibition-program {
  max-width: var(--container);
  margin: 0 auto;
  padding: 56px 32px 104px;
}

.exhibition-section-heading > span {
  color: var(--accent-cyan);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.exhibition-section-heading h2,
.exhibition-company-list__heading h2 {
  margin-top: 10px;
  color: var(--ink-on-dark-0);
  font-family: var(--font-display);
  font-size: clamp(27px, 4vw, 44px);
  line-height: 1.2;
}

/* [2026-08-22] '*상세 부스 배치도는 추후에 공개됩니다.' — 본문보다 한 톤 작고 흐리게,
   좁은 화면에서는 다음 줄로 자연스럽게 내려가도록 inline-block 으로 둔다. */
.exhibition-section-heading__note {
  display: inline-block;
  margin-left: 6px;
  color: var(--ink-on-dark-3);
  font-size: 13px;
}

.exhibition-section-heading p,
.exhibition-company-list__heading p {
  margin-top: 12px;
  color: var(--ink-on-dark-1);
  line-height: 1.65;
}

.exhibition-layout {
  width: min(840px, 100%);
  margin: 32px auto 0;
  padding: 0 clamp(24px, 5vw, 58px) clamp(24px, 5vw, 58px);
  border: 1px solid rgba(255,255,255,.32);
  border-radius: var(--r-lg);
  background: #f2f4f8;
  box-shadow: 0 24px 70px rgba(0,0,0,.18);
  color: #111820;
}

.exhibition-layout__stage {
  display: flex;
  width: min(460px, 70%);
  min-height: 112px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  background: #b8bdc2;
  color: #111820;
}

.exhibition-layout__stage span {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.exhibition-layout__stage strong {
  margin-top: 5px;
  font-size: 28px;
}

.exhibition-layout__zones {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.exhibition-layout-zone {
  --zone: #3c2075;
  --zone-ink: #ffffff;
  display: flex;
  min-height: 190px;
  flex-direction: column;
  padding: 24px;
  border: 3px solid transparent;
  border-radius: 12px;
  background: var(--zone);
  color: var(--zone-ink);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

/* [2026-08-22] 클라이언트 확정 존 포인트 색 (배경색 지정값 그대로).
   1 협력 · 2 혁신&환경 · 3 지역 · 4 사회 — 네 배경 모두 어두워 글씨는 순백으로 통일한다.
   --zone-ink 를 흰색보다 어둡게 내리면 지역(#2476C2)·사회(#C65610)에서 대비가 무너진다. */
.exhibition-layout-zone--1 { --zone: #3c2075; --zone-ink: #ffffff; }
.exhibition-layout-zone--2 { --zone: #214831; --zone-ink: #ffffff; }
.exhibition-layout-zone--3 { --zone: #2476c2; --zone-ink: #ffffff; }
.exhibition-layout-zone--4 { --zone: #c65610; --zone-ink: #ffffff; }

.exhibition-layout-zone:hover,
.exhibition-layout-zone:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(0,0,0,.2);
}

.exhibition-layout-zone:focus-visible {
  outline: 3px solid #111820;
  outline-offset: 3px;
}

.exhibition-layout-zone.is-current {
  border-color: #f4f7fb;
  box-shadow: 0 0 0 3px #111820, 0 12px 24px rgba(0,0,0,.24);
}

.exhibition-layout-zone__code {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
}

.exhibition-layout-zone strong {
  margin-top: 14px;
  font-size: 25px;
  line-height: 1.3;
}

.exhibition-layout-zone small {
  margin-top: 7px;
  color: inherit;
  line-height: 1.5;
  opacity: .92;
}

.exhibition-layout-zone__action {
  margin-top: auto;
  padding-top: 16px;
  font-size: 13px;
  font-weight: 700;
}

.exhibition-booth-section {
  --zone: #3c2075;
  --zone-accent: #c69bff;
  --zone-ink: #ffffff;
  margin-top: 72px;
  scroll-margin-top: 24px;
}

/* 기업명 리스트 구역도 같은 존 색을 쓴다.
   --zone       : 부스 번호 배지 배경 (위 카드와 동일한 확정색)
   --zone-accent: 어두운 페이지 배경 위에 얹히는 제목·테두리 색이라 같은 계열의 밝은 톤을 쓴다. */
.exhibition-booth-section--1 { --zone: #3c2075; --zone-accent: #c69bff; --zone-ink: #ffffff; }
.exhibition-booth-section--2 { --zone: #214831; --zone-accent: #7fd8a0; --zone-ink: #ffffff; }
.exhibition-booth-section--3 { --zone: #2476c2; --zone-accent: #7bc8ff; --zone-ink: #ffffff; }
.exhibition-booth-section--4 { --zone: #c65610; --zone-accent: #ffa45c; --zone-ink: #ffffff; }

.exhibition-company-list {
  padding-bottom: 22px;
  border-bottom: 1px solid var(--zone-accent);
}

.exhibition-company-list__heading h2 {
  color: var(--zone-accent);
}

/* -----------------------------------------------------------------------------
   전시부스 존 헤더 — 존 이름 / 한 줄 소개 / 해시태그 3줄
   요청: 'AA'/'BB' 같은 존 코드는 생략하고 세 줄만 남긴다.
   1줄 존 이름은 크게 볼드, 2줄 한 줄 소개는 기존 그대로,
   3줄 해시태그는 2줄과 같은 크기·굵기·색이어야 한다.
   -------------------------------------------------------------------------- */
.exhibition-company-list__heading .exhibition-zone__name {
  /* 위에 있던 존 코드 라벨이 사라졌으니 첫 줄은 여백 없이 시작한다. */
  margin-top: 0;
  font-weight: 700;
}

/*
  해시태그는 한 줄 소개와 '동일한 크기, 굵기'가 요청 조건이다.
  크기·굵기는 부모에서 그대로 물려받고 색·행간도 한 줄 소개와 같은 값을 쓴다.
  위 여백만 한 줄 소개(12px)보다 좁혀 3줄이 한 덩어리로 읽히게 한다.
*/
.exhibition-company-list__heading .exhibition-zone__tags {
  margin-top: 6px;
  color: var(--ink-on-dark-1);
  font-size: inherit;
  font-weight: inherit;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.exhibition-company-list__items {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 22px;
  margin: 0;
  padding: 22px 0 0;
  list-style: none;
}

.exhibition-company-list__item {
  min-width: 0;
}

.exhibition-company-list__button {
  display: grid;
  width: 100%;
  min-height: 72px;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 10px 8px;
  border: 0;
  border-radius: var(--r-xs);
  background: transparent;
  color: var(--ink-on-dark-0);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.exhibition-company-list__number {
  display: grid;
  min-width: 40px;
  min-height: 34px;
  place-items: center;
  padding: 6px 5px;
  border-radius: 2px;
  background: var(--zone);
  color: var(--zone-ink);
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1;
}

.exhibition-company-list__name {
  width: fit-content;
  max-width: 100%;
  border-bottom: 1px dotted rgba(205,214,244,.68);
  font-size: 16px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.exhibition-company-list__button:hover .exhibition-company-list__name,
.exhibition-company-list__button:focus-visible .exhibition-company-list__name {
  border-bottom-color: var(--zone-accent);
  color: var(--zone-accent);
}

.exhibition-company-list__button:hover { background: rgba(255,255,255,.045); }

.exhibition-company-list__button:focus-visible {
  outline: 2px solid var(--zone-accent);
  outline-offset: 3px;
}

.exhibition-modal {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(2,8,13,.9);
  backdrop-filter: blur(10px);
}

.exhibition-modal[hidden] { display: none; }

.exhibition-modal__panel {
  position: relative;
  width: min(620px, 100%);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: clamp(28px, 5vw, 48px);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--r-lg);
  background: #111d24;
  box-shadow: 0 30px 90px rgba(0,0,0,.45);
}

.exhibition-modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 2px solid #f4f7fb;
  border-radius: 50%;
  background: #f4f7fb;
  box-shadow: 0 5px 18px rgba(0,0,0,.32);
  color: #111820;
  cursor: pointer;
  font-family: Arial, sans-serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
}

.exhibition-modal__close:hover,
.exhibition-modal__close:focus-visible { border-color: var(--zone-accent); background: var(--zone-accent); color: #111820; outline: 3px solid #f4f7fb; outline-offset: 3px; }
.exhibition-modal__logo { max-width: 160px; max-height: 72px; margin-bottom: 24px; object-fit: contain; object-position: left center; }
.exhibition-modal__number { display: block; color: var(--zone-accent); font-family: var(--font-mono); font-size: 12px; font-weight: 700; }
.exhibition-modal h3 { max-width: calc(100% - 40px); margin-top: 12px; color: var(--ink-on-dark-0); font-size: clamp(28px, 5vw, 42px); line-height: 1.2; }
.exhibition-modal blockquote { margin: 28px 0 0; color: var(--accent-mint); font-size: 20px; font-weight: 700; line-height: 1.55; }
.exhibition-modal__description,
.exhibition-modal__homepage { margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.22); }
.exhibition-modal__description strong,
.exhibition-modal__homepage strong { display: block; color: var(--ink-on-dark-0); font-size: 14px; }
.exhibition-modal__description p { margin-top: 10px; color: var(--ink-on-dark-1); line-height: 1.75; overflow-wrap: anywhere; }
.exhibition-modal__link { display: inline-flex; margin-top: 12px; padding: 11px 16px; border: 1px solid rgba(62,224,216,.62); border-radius: var(--r-pill); color: var(--accent-cyan); font-size: 13px; font-weight: 700; }
.exhibition-modal__link:hover,
.exhibition-modal__link:focus-visible { border-color: var(--accent-cyan); background: rgba(62,224,216,.08); }

@media (max-width: 900px) {
  .exhibition-company-list__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .exhibition-program { padding: 40px 18px 72px; }
  .exhibition-layout { padding-right: 16px; padding-bottom: 16px; padding-left: 16px; }
  .exhibition-layout__stage { width: 76%; min-height: 82px; margin-bottom: 12px; }
  .exhibition-layout__stage strong { font-size: 20px; }
  .exhibition-layout__zones { gap: 10px; }
  .exhibition-layout-zone { min-width: 0; min-height: 150px; padding: 16px 14px; }
  .exhibition-layout-zone strong { margin-top: 10px; font-size: 18px; overflow-wrap: anywhere; }
  .exhibition-layout-zone small { font-size: 12px; }
  .exhibition-layout-zone__action { font-size: 11px; }
  .exhibition-booth-section { margin-top: 52px; }
  .exhibition-company-list__items { grid-template-columns: 1fr; padding-top: 14px; }
  .exhibition-company-list__button { min-height: 60px; }
  .exhibition-modal { padding: 14px; }
  .exhibition-modal__panel { max-height: calc(100vh - 28px); padding: 32px 24px; }
}

@media (max-width: 380px) {
  .exhibition-layout-zone { min-height: 138px; padding: 14px 12px; }
  .exhibition-layout-zone strong { font-size: 16px; }
  .exhibition-layout-zone small { display: none; }
}


/* =============================================================================
   마켓/판매(부스) — 2025 구성(배치도 + 분류별 번호·기업명 목록)을 2026 다크 톤으로
   ============================================================================= */
.market-booth {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px 104px;
}

.market-booth__map {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--r-lg);
  background: rgba(255,255,255,.04);
}
.market-booth__map img { display: block; width: 100%; height: auto; }

.market-booth__group { margin-top: 44px; }
.market-booth__cate {
  display: inline-block;
  padding-bottom: 10px;
  color: var(--group-color, var(--accent-cyan));
  font-family: var(--font-display);
  font-size: clamp(19px, 2.2vw, 24px);
  font-weight: 700;
  font-style: normal;
}
.market-booth__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0 28px;
  border-top: 1px solid var(--group-color, var(--accent-cyan));
}
.market-booth__list li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 4px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.market-booth__no {
  flex: none;
  min-width: 42px;
  padding: 5px 8px;
  border-radius: var(--r-xs);
  background: var(--group-color, var(--accent-cyan));
  color: #050a1f;
  font-family: var(--font-mono);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  text-align: center;
}
.market-booth__name {
  color: var(--ink-on-dark-1);
  font-size: 15px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
a.market-booth__name:hover,
a.market-booth__name:focus-visible {
  color: var(--group-color, var(--accent-cyan));
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 분류별 포인트 컬러 — 2026 액센트 팔레트를 순환시킨다. */
.market-booth__group--1 { --group-color: var(--accent-cyan); }
.market-booth__group--2 { --group-color: var(--accent-mint); }
.market-booth__group--3 { --group-color: var(--accent-pink); }
.market-booth__group--4 { --group-color: var(--accent-violet); }
.market-booth__group--5 { --group-color: var(--accent-yellow); }

@media (max-width: 900px) {
  .market-booth { padding: 0 18px 72px; }
  .market-booth__group { margin-top: 32px; }
  .market-booth__list { grid-template-columns: 1fr; gap: 0; }
}

/* 길(존) 라벨 — 존 이름과 설명.
   [2026-08-22] 요청에 따라 'DD' 같은 존 코드 배지는 화면에서 뺐다(전시 존 헤더와 동일).
   아래 .market-booth__lane 은 현재 렌더되지 않는다 — 배지를 되살릴 때를 위해 남겨 둔 규칙이다.
   존 코드 자체는 여전히 포인트 색(--group-color)을 고르는 기준으로 쓰인다. */
.market-booth__cate { display: flex; align-items: baseline; gap: 10px; }
.market-booth__lane {
  padding: 3px 9px;
  border-radius: var(--r-xs);
  background: var(--group-color, var(--accent-cyan));
  color: #050a1f;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
}
.market-booth__lane-desc {
  margin: 0 0 12px;
  color: var(--ink-on-dark-3);
  font-size: 14px;
  line-height: 1.6;
}
