/* ═══════════════════════════════════════════════════════════
   Postcard — "엽서 수정3" 기반 본문 스타일 (Figma 550:2092)
   히어로/GNB는 건드리지 않고 본문 섹션만 옐로우 엽서 룩으로 덮어쓴다.
   로드 순서상 가장 마지막 → 기존 섹션 스타일 위에 적용.
   ═══════════════════════════════════════════════════════════ */

:root {
  /* ─── 엽서 수정3 팔레트 ─── */
  --lv-yellow:  #FFFE7C;  /* 배경 옐로우 */
  --lv-brown:   #2B1A12;  /* 다크 브라운 (헤더바·테두리·텍스트) */
  --lv-card:    #F0F2F5;  /* 카드 라이트 */
  --lv-blue:    #81D5F1;  /* B2C / 푸터 */
  --lv-purple:  #BE3FFF;  /* B2B */
  --lv-tape-o:  rgba(255,181,145,0.55);  /* 주황 마스킹테이프 */
  --lv-tape-g:  rgba(176,255,198,0.6);   /* 연두 마스킹테이프 */
  --lv-disp: "jjzukinie", 'Noto Sans KR', sans-serif; /* 둥근 디스플레이 — JJZukinie(Adobe Fonts), Noto 폴백 */

  /* 전시품목 카드 블롭은 Figma 추출 실제 SVG(images/exhibit/blob-*.svg)로 교체됨 — 아래 .lv-card-blob 참고 */
}

/* ═══ GNB — 로컬바이브 (브라운 스티키 바 + 옐로우) ═══ */
.lvnav {
  position: sticky; top: 0; z-index: 100;
  background: var(--lv-brown);
  box-shadow: 0 2px 0 rgba(0,0,0,.12);
}
.lvnav-inner {
  max-width: 1180px; margin: 0 auto;
  display: flex; align-items: center; gap: 16px;
  height: 64px; padding: 0 clamp(16px, 3vw, 40px);
  /* 히어로 로고(left:4.4vw)와 좌우 끝을 맞추는 가장자리 정렬 오프셋.
     nav-inner 좌측 = max(0,(100vw-1180px)/2), nav 패딩 = clamp(16px,3vw,40px) 보정 */
  --edge-align: calc(4.4vw - max(0px, (100vw - 1180px) / 2) - clamp(16px, 3vw, 40px));
}
.lvnav-logo {
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  gap: 2px; margin-right: auto; flex-shrink: 0;
  margin-left: var(--edge-align);   /* 히어로 로고와 좌측 끝 정렬 */
}
/* 우측 끝(데스크톱:CTA / 모바일:햄버거)을 로고와 대칭으로 우측 가장자리에 정렬 */
.lvnav-inner > .lvnav-cta,
.lvnav-toggle { margin-right: var(--edge-align); }
.lvnav-logo img { display: block; width: auto; }
.lvnav-logo .l-local { height: 15px;  aspect-ratio: 226.437 / 40.9215; }
.lvnav-logo .l-vibe  { height: 15px;  aspect-ratio: 143.172 / 42.3345; }
.lvnav-logo .l-kr    { height: 9.5px; aspect-ratio: 143.02 / 25.6047; }
.lvnav-menu { display: flex; align-items: center; gap: clamp(6px, 1.4vw, 22px); }
.lvnav-menu a {
  font-size: 15px; font-weight: 700;
  color: rgba(255,254,124,.82);
  padding: 8px 4px; position: relative;
  transition: color var(--motion);
}
.lvnav-menu a::after {
  content: ''; position: absolute; left: 50%; bottom: 2px; transform: translateX(-50%);
  width: 0; height: 2.5px; background: var(--lv-blue);
  transition: width var(--motion);
}
.lvnav-menu a:hover { color: var(--lv-yellow); }
.lvnav-menu a:hover::after { width: 100%; }
.lvnav-cta {
  flex-shrink: 0;
  background: var(--lv-yellow); color: var(--lv-brown);
  font-weight: 800; font-size: 15px;
  padding: 10px 20px; border-radius: 999px;
  white-space: nowrap;
  transition: transform var(--motion), box-shadow var(--motion);
}
.lvnav-cta:hover { transform: translateY(-2px); box-shadow: 0 5px 0 rgba(255,254,124,.35); }

/* 모바일 토글 (햄버거) */
.lvnav-toggle {
  display: none;
  width: 42px; height: 42px;
  flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  background: none; border: none; cursor: pointer;
}
.lvnav-toggle span {
  display: block; width: 24px; height: 2.5px; border-radius: 2px;
  background: var(--lv-yellow);
  transition: transform .3s ease, opacity .3s ease;
}
.lvnav.is-open .lvnav-toggle span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.lvnav.is-open .lvnav-toggle span:nth-child(2) { opacity: 0; }
.lvnav.is-open .lvnav-toggle span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* 모바일 드롭다운 */
.lvnav-mobile {
  display: none;
  flex-direction: column;
  padding: 8px clamp(16px, 4vw, 28px) 18px;
  background: var(--lv-brown);
  border-top: 1px solid rgba(255,254,124,.15);
}
.lvnav-mobile a {
  font-size: 16px; font-weight: 700; color: rgba(255,254,124,.9);
  padding: 13px 4px; border-bottom: 1px solid rgba(255,254,124,.1);
}
.lvnav-mobile a:last-child { border-bottom: none; }
/* 모바일 드롭다운 CTA: .lvnav-mobile a(노란 글자)가 .lvnav-cta(갈색 글자)를
   덮어 노란 배경 위 노란 글자로 사라지던 문제 → 갈색 글자 명시 + 링크 밑줄선 제거 */
.lvnav-mobile .lvnav-cta {
  margin-top: 14px; text-align: center; padding: 13px;
  color: var(--lv-brown); border-bottom: none;
}
.lvnav.is-open .lvnav-mobile { display: flex; }

/* 앵커 이동 시 스티키 바에 가리지 않도록 */
#concept, #exhibit, #audience, #booth, #collab, #register {
  scroll-margin-top: 72px;
}

@media (max-width: 760px) {
  .lvnav-menu { display: none; }
  .lvnav-inner > .lvnav-cta { display: none; }
  .lvnav-toggle { display: flex; }
}

/* ─── 본문 래퍼 : 옐로우 종이 ─── */
.lv-paper {
  background: var(--lv-yellow);
  color: var(--lv-brown);
  position: relative;
  overflow: hidden;
}
.lv-paper .container { max-width: 1100px; }

.lv-section { padding: clamp(48px, 7vw, 96px) var(--gutter); }
.lv-section + .lv-section { padding-top: 0; }

/* ─── 브래킷 라벨  【 ... 】 ─── */
.lv-label {
  display: inline-flex; align-items: center; gap: .35em;
  font-family: var(--lv-disp);
  font-size: clamp(20px, 2.6vw, 30px);
  color: var(--lv-brown);
  line-height: 1;
  margin-bottom: clamp(22px, 3vw, 38px);
  letter-spacing: -0.01em;
}
.lv-label::before { content: '['; font-weight: 400; opacity: .9; transform: translateY(-2px); }
.lv-label::after  { content: ']'; font-weight: 400; opacity: .9; transform: translateY(-2px); }

/* ═══ ① 컨셉 다크 밴드 (엽서 백페이지 상단 헤더바) ═══ */
.lv-concept {
  background: var(--lv-brown);
  color: var(--lv-yellow);
  padding: clamp(56px, 9vw, 120px) var(--gutter);
  text-align: center;
}
.lv-concept-inner { max-width: 860px; margin: 0 auto; }
.lv-concept-eyebrow {
  font-size: var(--fs-sm); font-weight: 700;
  letter-spacing: .28em; text-transform: uppercase;
  color: rgba(255,254,124,.6);
  margin-bottom: clamp(18px, 2.5vw, 28px);
}
/* 섹션 아이브로 라벨 ([ About ], [ Registration ]) — JJZukinie, 가운데, 제목보다 작게 */
.lv-eyebrow {
  font-family: var(--lv-disp);
  font-size: clamp(15px, 1.7vw, 20px);
  line-height: 1.2; letter-spacing: .01em;
  width: fit-content;
  margin: 0 auto clamp(8px, 1.1vw, 14px);
  padding: .08em .14em;          /* 글자에 딱 붙는 블록(선택) 느낌 하이라이트 */
  border-radius: 1px;
}
/* [ About ] — 노란 섹션 위, 하늘색 하이라이트 + 다크 글씨 */
.lv-eyebrow--dark  { color: var(--lv-brown); background: var(--lv-blue); }
/* [ Registration ] — 스카이블루 섹션 위, 노란 하이라이트 + 다크 글씨 */
.lv-eyebrow.lv-eyebrow--light { color: #000; background: var(--lv-yellow); }  /* .lv-cta p 우선순위 이김 */

.lv-concept-title {
  font-family: var(--lv-disp);
  font-size: clamp(15px, 4.4vw, 54px);
  line-height: 1.18;
  color: var(--lv-yellow);
  white-space: nowrap;
}
.lv-bracket {
  display: inline-flex; align-items: center; justify-content: center;
  height: 1.05em; padding: 0;
  margin: 0;
  color: var(--lv-blue);
  position: relative;
}
.lv-bracket-word { padding: 0 .04em; }
.lv-bracket b { font-weight: 400; } /* 괄호 [ ] 는 제목과 동일하게 JJZukinie 유지 */
.lv-bracket-word {
  display: inline-block; min-width: 1ch; text-align: center;
  /* 괄호 안에서 바뀌는 단어만 손글씨체 Cafe24 Shiningstar */
  font-family: 'Cafe24 Shiningstar', cursive;
  font-size: 1.18em;            /* 손글씨라 작아 보여 살짝 키워 균형 */
  line-height: 1; transform: translateY(.04em);
}
.lv-concept-desc {
  margin: clamp(24px, 3.5vw, 40px) auto 0;
  max-width: 620px;
  font-size: clamp(15px, 1.9vw, 20px);
  line-height: 1.75;
  color: rgba(255,254,124,.92);
  font-weight: 400;
}
.lv-concept-desc b { font-weight: 800; color: var(--lv-blue); }

/* ─── 전시품목 인트로 (Frame 462 헤딩+설명) ─── */
.lv-exhibit-intro { text-align: center; margin: clamp(8px,1.5vw,18px) 0 clamp(28px,3.6vw,48px); }
.lv-exhibit-head {
  display: inline-flex; align-items: center; gap: .35em;
  font-family: var(--lv-disp);
  font-size: clamp(22px, 3.2vw, 40px); color: var(--lv-brown);
  line-height: 1.2; letter-spacing: -0.01em;
}
.lv-exhibit-head .bk { font-weight: 400; transform: translateY(-.04em); }
.lv-exhibit-desc {
  margin-top: clamp(12px, 1.6vw, 20px);
  font-size: clamp(14px, 1.7vw, 19px); line-height: 1.7;
  color: rgba(43,26,18,.82);
}

/* ═══ ② 전시품목 카드 (가로형 · 3+2 가운데 정렬) ═══ */
/* #exhibit 전용 세로 여유 — .lv-section(공용)은 안 건드리고 여기서만 위·아래 패딩 확장 */
#exhibit { padding-top: clamp(56px, 8vw, 110px); padding-bottom: clamp(72px, 9vw, 150px); }
.lv-cards {
  display: flex; flex-wrap: wrap;
  justify-content: center;
  position: relative;
  z-index: 0;                /* 공유 스택 컨텍스트: 모든 블롭(z-index:-1)을 모든 텍스트 뒤로 */
  /* 3+2 센터 배치. 윗줄 3개는 카드폭 30% + 열간격 5% → 3×30+2×5=100%로 좌우 꽉 차게.
     아랫줄 2개는 2×30+5=65%로 가운데 모임. justify-center라 행마다 자동 중앙 정렬. */
  row-gap: clamp(64px, 8vw, 130px);    /* 윗줄↔아랫줄 세로 간격 넉넉히 — 블롭끼리 빽빽하지 않게 */
  column-gap: 9.5%;                    /* 가로 간격 확대 — 인접 블롭 중심 간격 27+9.5=36.5%로 벌려 가로 겹침 제거 */
  padding-top: clamp(40px, 5vw, 80px); /* 인트로 설명과 윗줄 블롭 사이 간격(여행 블롭이 desc를 덮지 않게) */
  padding-bottom: clamp(8px, 1.4vw, 24px);
}
.lv-card {
  position: relative;        /* isolation 제거 — .lv-cards 공유 컨텍스트에서 블롭만 뒤로 보냄 */
  flex: 0 0 27%;             /* 윗줄 3개 (3×27 + 2×9.5gap = 100%), 중심 간격 36.5% */
  min-width: 250px;          /* 텍스트 줄바꿈 유지를 위한 최소 카드 콘텐츠 폭 */
  background: transparent;
  border: 0;
  border-radius: 0;
  /* 텍스트를 블롭의 넓은 중앙대로 모으기 위해 세로 중앙 정렬 */
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(20px, 2.2vw, 34px) clamp(26px, 2.8vw, 40px);
  min-height: clamp(150px, 17vw, 220px);
  transition: transform var(--motion);
}
/* 컬러 유기적 블롭 배경 — Figma 시안에서 통짜 추출한 실제 블롭 SVG
   (5장 모두 동일 path를 카테고리별 색 + 회전으로 변형. 원본 viewBox 334.363×320.487 비율 유지)
   Figma 블롭 시각폭 ≈ 38%W. 카드폭 26%W의 약 1.46배 → width:146% */
.lv-card-blob {
  position: absolute;
  left: 50%; top: 50%;
  width: 122%;                /* 카드폭(27%W)의 1.22배 = 박스폭 33% < 중심간격 36.5% → 가로 인접 블롭 안 닿고 노란 틈 보임 */
  max-width: none;            /* globals.css의 img{max-width:100%} 무력화 — 카드 밖으로 오버플로 허용 */
  height: auto;
  aspect-ratio: 334.363 / 320.487;
  z-index: 0;                 /* 모든 블롭=레이어0, 모든 텍스트=레이어2(아래) → 텍스트가 항상 위 */
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(var(--blob-rot, 0deg));
  transition: transform var(--motion);
}
/* 아랫줄(4,5번째) 행 간격 — row-gap이 기본 분리, 살짝 끌어올려 윗줄 블롭과 유기적으로만 겹치게 */
.lv-card:nth-child(n+4) { margin-top: clamp(-30px, -2.4vw, -14px); }
/* .reveal(opacity/transform)이 카드마다 스택 컨텍스트를 만들므로, 윗줄(1~3)을 아랫줄(4,5) 위로
   올려 윗줄 글씨가 아랫줄 블롭에 가리지 않게(Figma처럼 윗줄이 앞). 행간격을 충분히 둬서
   윗줄 블롭이 아랫줄 오브젝트를 덮지 않게 함. */
.lv-card:nth-child(-n+3) { z-index: 2; }
.lv-card:nth-child(n+4)  { z-index: 1; }
.lv-card:hover { transform: translateY(-6px); }
.lv-card:hover .lv-card-blob { transform: translate(-50%, -50%) scale(1.03) rotate(var(--blob-rot, 0deg)); }
/* 카테고리별 회전(Figma 원본 각도)로 5장이 똑같아 보이지 않게 */
.lv-card:nth-child(1) .lv-card-blob { --blob-rot: -143.2deg; }
.lv-card:nth-child(2) .lv-card-blob { --blob-rot: 13.1deg; }
.lv-card:nth-child(3) .lv-card-blob { --blob-rot: 35.6deg; }
.lv-card:nth-child(4) .lv-card-blob { --blob-rot: 40.3deg; }
.lv-card:nth-child(5) .lv-card-blob { --blob-rot: -135deg; }
/* 픽토그램 — 우측 float (글씨가 그림을 피해 흐름) · 높이 고정 + 각 SVG viewBox 비율 유지 */
.lv-card-icon {
  float: right;
  height: clamp(66px, 7.8vw, 86px);
  margin: 0 0 8px 14px;
  display: flex; align-items: flex-start; justify-content: flex-end; gap: 4px;
  position: relative; z-index: 2;   /* 인접(아랫줄) 블롭 위로 */
}
/* preserveAspectRatio="none" SVG라 img에 명시 aspect-ratio(인라인) 필요. 높이만 100%, 너비는 비율로 자동 */
.lv-card-icon img { height: 100%; width: auto; display: block; }
.lv-card-icon--duo { height: clamp(60px, 7.2vw, 80px); }
/* 제목 */
.lv-card-name {
  font-family: var(--lv-disp);         /* JJZukinie (단일 Regular) */
  font-size: clamp(19px, 2vw, 25px);
  color: var(--lv-brown); line-height: 1.1;
  margin-bottom: 12px;
  white-space: nowrap;  /* 큰 아이콘이 옆에 와도 라벨은 한 줄 유지 */
  position: relative; z-index: 2;   /* 인접(아랫줄) 블롭 위로 */
}
.lv-card-desc {
  font-size: clamp(12.5px, 1.4vw, 14.5px); line-height: 1.6;
  color: rgba(43,26,18,.78);
  max-width: 100%;
  position: relative; z-index: 2;   /* 인접(아랫줄) 블롭 위로 */
}
.lv-card::after { content: ''; display: block; clear: both; }

/* ═══ ③ 주요참관객 — 기울어진 테이프 패널 ═══ */
.lv-aud {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 3vw, 48px);
  max-width: 920px;
}
.lv-panel {
  position: relative;
  border-radius: 6px 48px 6px 6px;
  padding: clamp(26px, 3vw, 40px) clamp(24px, 2.6vw, 38px);
  color: var(--lv-brown);
}
.lv-panel--b2c { background: var(--lv-blue);   transform: rotate(-1.4deg); }
.lv-panel--b2b { background: var(--lv-purple); transform: rotate(1.4deg); border-radius: 6px 6px 6px 48px; color: #fff; }
.lv-panel:hover { transform: rotate(0) scale(1.015); transition: transform var(--motion); }
/* 마스킹 테이프 */
.lv-panel::before {
  content: ''; position: absolute; top: -12px; left: 18%;
  width: 78px; height: 24px;
  background: var(--lv-tape-o);
  transform: rotate(-18deg);
  box-shadow: 0 1px 2px rgba(0,0,0,.08);
}
.lv-panel--b2b::before { left: auto; right: 16%; background: var(--lv-tape-g); transform: rotate(15deg); }
.lv-panel h3 {
  font-family: var(--lv-disp);
  font-size: clamp(18px, 2.1vw, 26px);
  margin-bottom: 18px;
}
.lv-panel--b2b h3 { color: #fff; }
.lv-panel ul { display: grid; gap: 11px; }
.lv-panel li {
  position: relative; padding-left: 28px;
  font-size: clamp(13px, 1.5vw, 15.5px); line-height: 1.5;
  font-weight: 500;
}
.lv-panel li::before {
  content: ''; position: absolute; left: 0; top: 1px;
  width: 16px; height: 16px; border-radius: 4px;
  border: 1.8px solid currentColor;
  background:
    linear-gradient(45deg, transparent 42%, currentColor 42%, currentColor 56%, transparent 56%) center/12px 12px no-repeat,
    linear-gradient(-45deg, transparent 42%, currentColor 42%, currentColor 56%, transparent 56%) center 1px/9px 9px no-repeat;
}
/* 체크 표시를 보다 단순하게: 박스 + ✓ */
.lv-panel li::after {
  content: '✓'; position: absolute; left: 2.5px; top: -1px;
  font-size: 12px; font-weight: 900;
}
.lv-panel li::before { background: none; }

/* ═══ ④ 부스 참가 안내 + 행사소개 ═══ */
.lv-booth-grid {
  display: grid; grid-template-columns: 1.55fr .9fr;
  gap: clamp(28px, 3.5vw, 56px);
  align-items: start;
}
.lv-table {
  width: 100%; border-collapse: collapse;
  border: 2px solid var(--lv-brown);
  background: #fff;
  overflow: hidden; border-radius: 10px;
}
.lv-table th, .lv-table td {
  border: 1px solid rgba(43,26,18,.18);
  padding: clamp(10px, 1.3vw, 16px) 8px;
  text-align: center; font-size: clamp(12px, 1.4vw, 15px);
}
.lv-table thead th {
  background: var(--lv-brown); color: var(--lv-yellow);
  font-family: var(--lv-disp); font-weight: 400; letter-spacing: .01em;
}
.lv-table tbody th {
  background: var(--lv-brown); color: var(--lv-yellow);
  font-family: var(--lv-disp); font-weight: 400; width: 22%;
}
.lv-table .price {
  font-family: var(--lv-disp);
  font-size: clamp(14px, 1.6vw, 18px); color: var(--lv-brown);
}
.lv-promo {
  margin-top: 18px;
  background: var(--lv-brown); color: var(--lv-yellow);
  border-radius: 10px;
  padding: clamp(16px, 2vw, 24px) clamp(18px, 2.2vw, 26px);
}
.lv-promo h4 {
  font-family: var(--lv-disp); font-size: clamp(15px,1.7vw,19px);
  margin-bottom: 12px; color: #fff;
}
.lv-promo ul { display: grid; gap: 9px; }
.lv-promo li {
  font-size: clamp(12.5px,1.4vw,14.5px); line-height: 1.5;
  padding-left: 16px; position: relative; color: rgba(255,254,124,.92);
}
.lv-promo li::before { content: '·'; position: absolute; left: 4px; font-weight: 900; }
.lv-promo li b { color: #fff; font-weight: 800; }
.lv-promo .promo-max {
  margin-top: 12px; font-weight: 800; color: #fff;
  padding-left: 0;
}
.lv-promo .promo-max::before { content: ''; }

/* 행사소개 / QR aside */
.lv-info {
  background: #fff; border: 1.5px solid var(--lv-brown);
  border-radius: 14px; padding: clamp(20px,2.4vw,28px);
  text-align: center;
}
.lv-info .lv-label { margin-bottom: 18px; }
.lv-qr {
  width: 150px; height: 150px; margin: 0 auto 18px;
  border: 1.5px solid var(--lv-brown); border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; overflow: hidden;
}
.lv-qr img { width: 100%; height: 100%; }
.lv-info-row { font-size: 14px; line-height: 1.5; color: var(--lv-brown); }
.lv-info-row + .lv-info-row { margin-top: 10px; }
.lv-info-row .k {
  display: block; font-size: 10.5px; font-weight: 800;
  letter-spacing: .15em; color: rgba(43,26,18,.45);
}
.lv-info-row .v { font-family: var(--lv-disp); font-size: 18px; }

/* ═══ ⑤ CTA ═══ */
.lv-cta {
  background: var(--lv-blue);
  color: var(--lv-brown);
  text-align: center;
  padding: clamp(56px, 8vw, 110px) var(--gutter);
}
.lv-cta h2 {
  font-family: var(--lv-disp);
  font-size: clamp(24px, 4vw, 44px); line-height: 1.25;
  color: var(--lv-brown); margin-bottom: 16px;
}
.lv-cta p { color: rgba(43,26,18,.82); margin-bottom: 32px; font-size: clamp(15px,1.8vw,19px); }
.lv-cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.lv-btn {
  display: inline-flex; align-items: center; justify-content: center;
  text-align: center; line-height: 1;
  font-family: var(--font-primary); font-weight: 800;
  font-size: clamp(15px,1.7vw,18px);
  padding: 16px 36px; border-radius: 999px; min-height: 52px;
  transition: transform var(--motion), box-shadow var(--motion);
}
/* 스카이블루 배경 → 채운 버튼은 다크 배경+밝은 글씨, 아웃라인은 다크 테두리+다크 글씨 */
.lv-btn--fill { background: var(--lv-brown); color: var(--lv-yellow); }
.lv-btn--fill:hover { transform: translateY(-3px); box-shadow: 0 8px 0 rgba(43,26,18,.3); }
.lv-btn--line { border: 2px solid var(--lv-brown); color: var(--lv-brown); }
.lv-btn--line:hover { background: var(--lv-brown); color: var(--lv-yellow); }

/* ═══ ⑥ 푸터 — 다크 브라운 ═══ */
.lv-footer {
  background: var(--lv-brown); color: var(--lv-yellow);
  padding: clamp(40px,5vw,64px) var(--gutter) clamp(28px,3vw,40px);
}
.lv-footer-inner {
  max-width: 1100px; margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 28px;
  justify-content: space-between; align-items: flex-start;
}
.lv-footer-brand {
  font-family: var(--lv-disp); font-size: clamp(20px,2.4vw,28px);
  margin-bottom: 8px;
}
.lv-footer-desc { font-size: 13.5px; line-height: 1.7; color: rgba(255,254,124,.78); }
.lv-footer-contact { display: grid; gap: 6px; font-size: 13.5px; }
.lv-footer-contact a, .lv-footer-contact span { color: var(--lv-yellow); }
.lv-footer-contact b { font-weight: 800; margin-right: 6px; }
.lv-footer-contact a:hover { text-decoration: underline; }
.lv-footer-sns { display: flex; gap: 12px; margin-top: 14px; }
.lv-footer-sns a {
  width: 38px; height: 38px; border-radius: 50%;
  border: 1.6px solid var(--lv-yellow);
  display: flex; align-items: center; justify-content: center;
}
.lv-footer-sns a:hover { background: var(--lv-yellow); }
.lv-footer-sns a:hover svg { stroke: var(--lv-brown); }
.lv-footer-sns svg { width: 18px; height: 18px; stroke: var(--lv-yellow); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.lv-footer-bottom {
  max-width: 1100px; margin: clamp(28px,3vw,40px) auto 0;
  padding-top: 18px; border-top: 1.5px solid rgba(255,254,124,.25);
  font-size: 12px; color: rgba(255,254,124,.62); text-align: center;
}

/* ═══ 섹션 색 경계 물결 디바이더 ═══ */
.lv-wave {
  display: block; width: 100%; height: clamp(40px, 5vw, 70px);
  margin: -1px 0; position: relative; z-index: 1;
}
/* 히어로→컨셉: 물결을 히어로 위로 끌어올려 사람 발치를 살짝 덮음 */
.lv-wave--overlap {
  height: clamp(66px, 8vw, 116px);
  margin-top: clamp(-104px, -7.3vw, -56px);
  z-index: 10;
}

/* ═══ 협업 문의 — 다크 카드 ═══ */
.lv-collab {
  background: var(--lv-brown);
  color: var(--lv-yellow);
  border-radius: 18px;
  padding: clamp(28px, 4vw, 48px) clamp(24px, 4vw, 56px);
  text-align: center;
}
.lv-collab h3 {
  font-size: clamp(16px, 2vw, 22px); font-weight: 700;
  color: rgba(255,254,124,.92);
  margin-bottom: clamp(20px, 2.6vw, 32px);
}
.lv-collab-pills {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: clamp(10px, 1.4vw, 16px);
  margin-bottom: clamp(22px, 3vw, 34px);
}
.lv-collab-pills span {
  background: var(--lv-yellow); color: var(--lv-brown);
  font-weight: 700; font-size: clamp(13px, 1.5vw, 15.5px);
  padding: 12px 22px; border-radius: 999px;
  line-height: 1.3;
}
.lv-collab-banner {
  font-family: var(--lv-disp);
  font-size: clamp(16px, 2.1vw, 24px);
  color: var(--lv-yellow);
  letter-spacing: .01em;
}

/* ═══ 반응형 ═══ */
@media (max-width: 640px) {
  .lv-aud { grid-template-columns: 1fr; }
  .lv-panel--b2c, .lv-panel--b2b { transform: rotate(0); }

  /* ── 전시품목 모바일: 세로 1열 · 블롭이 카드에 꼭 맞는 독립 타일 ──
     데스크톱은 가로형 카드(텍스트 좌, 블롭·오브젝트 우 부유)지만 좁은 화면에선
     블롭이 거대해지고 텍스트가 밖으로 새므로, 카드를 블롭 비율(334:320)에 맞춘
     정사각 타일로 만들고 내용을 가운데 모은다. */
  .lv-cards {
    flex-direction: column;
    align-items: center;
    row-gap: clamp(14px, 4vw, 26px);   /* 블롭끼리 살짝만 떨어지게 */
    column-gap: 0;
    padding-top: clamp(20px, 6vw, 36px);
    padding-bottom: 0;
  }
  .lv-card {
    flex: 0 0 auto;
    width: min(84vw, 360px);
    min-width: 0;
    aspect-ratio: 334.363 / 320.487;   /* 블롭과 같은 비율 → 블롭이 카드를 꽉 채움 */
    min-height: 0;
    padding: clamp(26px, 9vw, 44px);
    /* 내용 가운데 정렬 (데스크톱 좌측 정렬 → 모바일 중앙) */
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: 0;                      /* 데스크톱 3+2 음수 마진 해제 */
  }
  /* 데스크톱 행 겹침/스택 순서 해제 — 1열에선 순수 흐름대로 */
  .lv-card:nth-child(n+4) { margin-top: 0; }
  .lv-card:nth-child(-n+3),
  .lv-card:nth-child(n+4) { z-index: auto; }

  /* 블롭: 카드를 채우되 회전 0 — 1열에서 깔끔하고 예측 가능하게(회전 시 이웃과 겹침) */
  .lv-card-blob { width: 100%; }
  .lv-card:nth-child(1) .lv-card-blob,
  .lv-card:nth-child(2) .lv-card-blob,
  .lv-card:nth-child(3) .lv-card-blob,
  .lv-card:nth-child(4) .lv-card-blob,
  .lv-card:nth-child(5) .lv-card-blob { --blob-rot: 0deg; }
  .lv-card:hover .lv-card-blob { transform: translate(-50%, -50%) scale(1.03); }

  /* 아이콘: 우측 부유 해제 → 상단 중앙 */
  .lv-card-icon {
    float: none;
    margin: 0 auto clamp(8px, 2.5vw, 14px);
    justify-content: center;
    height: clamp(56px, 17vw, 78px);
  }
  .lv-card-icon--duo { height: clamp(52px, 15vw, 72px); }
  .lv-card-name { margin-bottom: clamp(6px, 1.6vw, 10px); }
  /* 설명은 블롭 가운데 폭 안에 머무르게 */
  .lv-card-desc { max-width: 80%; margin: 0 auto; }
}
@media (max-width: 520px) {
  .lv-concept { padding-left: 12px; padding-right: 12px; }
}

/* ═══════════════════════════════════════════════════════════
   HERO — 로컬바이브 키비주얼 (Figma Frame 463 · 665×345)
   컨테이너 폭 100% 채우는 드롭인 블록. aspect-ratio 고정,
   모든 요소 % 좌표 + cqw 단위라 어떤 폭에서도 비율 불변.
   ═══════════════════════════════════════════════════════════ */
.lv-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 665 / 345;
  background: var(--lv-yellow);
  overflow: hidden;
  container-type: inline-size;
  font-family: var(--font-primary);
  color: var(--lv-brown);
}
.lv-hero .at { position: absolute; transform: translate(-50%, -50%); }

/* TEXT */
.lv-hero .travelshow {
  left: 29.5%; top: 45.55%;
  transform: none;
  font-weight: 700;
  font-size: 1.656cqw;
  white-space: nowrap;
}

/* TITLE wordmark */
.lv-hero .title {
  left: 4.4%; top: 18.25%;
  transform: none;
  width: 38.04%;
  aspect-ratio: 253 / 138.115;
}
.lv-hero .title img { position: absolute; display: block; }
.lv-hero .title .t-local { top: 0;     left: 0;    width: 100%;   height: 33.1%; }
.lv-hero .title .t-vibe  { top: 37.8%; left: .13%; width: 63.25%; height: 34.25%; }
.lv-hero .title .t-kr    { top: 79.3%; left: .13%; width: 63.17%; height: 20.71%; }

/* 사전등록 정보 블록 (로고 아래) — 키비주얼 비율에 맞춰 cqw 스케일 */
.lv-hero .lv-hero-reg {
  left: 4.4%; top: 65.5%;
  transform: none;
  width: 46%;
  color: var(--lv-brown);
}
.lv-hero-reg-title {
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 1.6cqw;
  line-height: 1.2;
  margin: 0 0 1.5cqw;     /* 라벨이 하단 → 아래 버튼과의 간격 */
  white-space: nowrap;
}
/* 오픈 예정 안내 — 작고 연하게 */
.lv-hero-reg-note { font-weight: 700; font-size: .82em; opacity: .58; }
.lv-hero-reg-date {
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 1.6cqw;
  line-height: 1.2;
  margin: 0 0 1.0cqw;     /* 날짜 아래 버튼과의 간격 */
  letter-spacing: -0.04em; /* 자간 축소 */
  white-space: nowrap;
}
.lv-hero-reg-date span { opacity: .45; margin: 0 .3em; }
.lv-hero-reg-btns { display: flex; gap: 1cqw; flex-wrap: wrap; }
.lv-hero-btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-primary); font-weight: 800;
  font-size: 1.45cqw; line-height: 1;
  padding: 1.1cqw 2.3cqw; border-radius: 999px;
  white-space: nowrap;
  transition: transform var(--motion), box-shadow var(--motion), background var(--motion), color var(--motion);
}
.lv-hero-btn--fill { background: var(--lv-brown); color: var(--lv-yellow); }
.lv-hero-btn--fill:hover { transform: translateY(-2px); box-shadow: 0 6px 0 rgba(43,26,18,.25); }
.lv-hero-btn--line { background: transparent; color: var(--lv-brown); border: 1px solid var(--lv-brown); }
.lv-hero-btn--line:hover { background: var(--lv-brown); color: #fff; }

/* PERSON (static) */
.lv-hero .figure {
  left: 57.63%; top: 39.66%;
  transform: none;
  width: 26.18%;
  aspect-ratio: 174.109 / 207.782;
  z-index: 3;
  filter: drop-shadow(0 1.6cqw 2.2cqw rgba(43,26,18,.16));
}
.lv-hero .figure img { width: 100%; height: 100%; display: block; }

/* FLOATING OBJECTS */
.lv-hero .obj { z-index: 4; aspect-ratio: 1; }
.lv-hero .obj .float { width: 100%; height: 100%; animation: var(--fl) ease-in-out infinite; }
.lv-hero .obj .art   { width: 100%; height: 100%; transform: rotate(var(--rot, 0deg)); will-change: transform; }
.lv-hero .obj img    { width: 100%; height: 100%; display: block;
                       filter: drop-shadow(0 1.2cqw 1.6cqw rgba(43,26,18,.15)); }
.lv-hero .arms { aspect-ratio: 70.5223 / 70.8975; }

.lv-hero .chair { left: 54.31%; top: 28.91%; width: 16.13%; --rot: -8.81deg;  --fl: floatC 7.4s .2s; }
.lv-hero .brain { left: 80.50%; top: 30.04%; width: 21.83%;                    --fl: floatA 6.6s 0s; }
.lv-hero .fish  { left: 94.42%; top: 15.59%; width: 9.42%;  --rot: 120deg;     --fl: floatB 5.2s .4s; }
.lv-hero .books { left: 98.45%; top: 42.46%; width: 17.63%; --rot: 16.64deg;   --fl: floatA 6.0s .9s; }
.lv-hero .mic   { left: 89.45%; top: 58.74%; width: 8.61%;  --rot: 131.7deg;   --fl: floatB 4.6s .6s; }
.lv-hero .arms  { left: 55.16%; top: 67.74%; width: 10.60%;                    --fl: floatC 8.0s 1.1s; }

.lv-hero .brain .art  { transform: rotate(-16.1deg); }
.lv-hero .brain .blob { position: absolute; inset: 0; width: 100%; height: 100%; }
.lv-hero .brain .icon { position: absolute; left: 27.7%; top: 35.3%;
                        width: 42%; height: auto; aspect-ratio: 81.2292 / 61.9296;
                        transform: rotate(-2.6deg); }

@keyframes floatA { 0%,100%{transform:translateY(0)    rotate(-2deg);} 50%{transform:translateY(-2.4cqh) rotate(3deg);} }
@keyframes floatB { 0%,100%{transform:translateY(0)    rotate(3deg);}  50%{transform:translateY(-2cqh)   rotate(-4deg);} }
@keyframes floatC { 0%,100%{transform:translateY(-.7cqh) rotate(-3deg);} 50%{transform:translateY(1.9cqh) rotate(2deg);} }

@media (prefers-reduced-motion: reduce) {
  .lv-hero .obj .float { animation: none !important; }
}

/* ═══ 사전 등록하기 안내 팝업 ═══ */
.lv-modal {
  position: fixed; inset: 0; z-index: 1000;
  display: none; align-items: center; justify-content: center;
  padding: 24px;
}
.lv-modal.is-open { display: flex; }
.lv-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(43,26,18,.55);
  backdrop-filter: blur(2px);
  animation: lvFade .2s ease;
}
.lv-modal-box {
  position: relative;
  box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center;
  gap: 11px;                          /* Figma: 본문↔버튼 간격 */
  background: #F5F5F5;
  color: var(--lv-brown);
  border: 1px solid var(--lv-brown);  /* Figma Stroke #2B1A12 1px */
  border-radius: 15px;                /* Figma radius 15 */
  padding: clamp(26px, 5vw, 31px) clamp(30px, 8vw, 55px);
  width: min(92vw, 360px);
  text-align: center;
  box-shadow: 0 24px 60px rgba(43,26,18,.22);
  animation: lvPop .26s cubic-bezier(.2,.9,.3,1.2);
}
.lv-modal-msg {
  font-family: var(--font-primary);
  font-weight: 800;                   /* Figma ExtraBold */
  font-size: clamp(19px, 2.4vw, 24px);
  line-height: 1.5;                   /* Figma 36/24 */
  letter-spacing: -0.01em;            /* Freesentation 폭 근사 */
  white-space: nowrap;                /* 시안처럼 한 줄 */
  margin: 0;
}
/* 팝업 보조 안내 (7월말 오픈예정) — 메시지 아래 작고 연하게 */
.lv-modal-sub {
  display: block;
  margin-top: 0;
  font-weight: 700;
  font-size: 0.62em;
  letter-spacing: -0.01em;
  opacity: 0.55;
}
.lv-modal-btn {
  appearance: none; border: 0; cursor: pointer;
  box-sizing: border-box;
  display: inline-flex; align-items: center; justify-content: center;
  width: 126px;                       /* Figma 고정폭 */
  background: var(--lv-brown); color: var(--lv-yellow);
  font-family: var(--font-primary); font-weight: 700;  /* Figma Bold */
  font-size: clamp(16px, 1.9vw, 18px);
  letter-spacing: -0.01em;
  padding: 9px 26px;                  /* Figma 패딩 */
  border-radius: 999px; line-height: 1;
  transition: transform var(--motion), box-shadow var(--motion), filter var(--motion);
}
.lv-modal-btn:hover { transform: translateY(-2px); filter: brightness(1.12); box-shadow: 0 8px 18px rgba(43,26,18,.3); }
@keyframes lvFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes lvPop { from { opacity: 0; transform: scale(.9) translateY(8px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .lv-modal-backdrop, .lv-modal-box { animation: none; }
}
