/* Assets/css/main.css - CAVUNET Custom Styles */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Nanum+Myeongjo:wght@400;700;800&family=Noto+Serif+KR:wght@300;400;600;700&display=swap');

/* [스크롤바 밀림 방지] 팝업/모달 오픈 및 뷰 전환 시 화면 우측 밀림(Layout Shift) 원천 차단 */
html {
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

/* 1. Edge-to-Edge Full-Width Container Layout (화면 좌우 끝까지 닿는 가로선 시스템) */
:root {
  --cavunet-gutter: 32px;
  --cavunet-col-title-width: 440px;
  --cavunet-grid-col1-width: 40.7%;
  --cavunet-grid-col2-width: 29.5%;
  --cavunet-grid-col3-width: 29.8%;
  --cavunet-shelf-menu-left-pad: calc(100% - clamp(20px, 3vw, 48px) - 110px);
}

@media (max-width: 768px) {
  :root {
    --cavunet-gutter: 16px;
    --cavunet-col-title-width: 100%;
  }
}

.cavunet-site-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0; /* 컨테이너 외곽 패딩을 0으로 하여 모든 가로 선이 화면 좌우 끝(100vw)까지 닿도록 설정 */
  box-sizing: border-box;
}

/* 2. 1px Precision Black Border Utilities (모든 선 색상 블랙 변환) */
.border-top-black,
.border-top-red {
  border-top: 1px solid var(--cavunet-line, #111111);
}
.border-bottom-black,
.border-bottom-red {
  border-bottom: 1px solid var(--cavunet-line, #111111);
}
.border-black,
.border-red {
  border: 1px solid var(--cavunet-line, #111111);
}

/* =========================================================
   Sticky Header Wrap (1층 메인 헤더 + 2층 100% 가로 배너 티커 바 일체형 상단 고정)
   ========================================================= */
.cavunet-header-wrap {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background-color: var(--cavunet-bg, #ffffff) !important;
  border-bottom: none;
}

/* [요청 1 반영] 스크롤 시 라인이 두껍게 보이는 원인인 box-shadow 제거 */
.cavunet-header-wrap.is-scrolled {
  box-shadow: none !important;
}

body.cavunet-dark-theme .cavunet-header-wrap,
html.cavunet-dark-theme .cavunet-header-wrap {
  background-color: var(--cavunet-bg, #111111) !important;
}

body.cavunet-dark-theme .cavunet-header-wrap.is-scrolled,
html.cavunet-dark-theme .cavunet-header-wrap.is-scrolled {
  box-shadow: none !important;
}

/* =========================================================
   [요청 반영] 상단 로고/메뉴 구역과 푸터 구역:
   - 사이트 내 머무는 동안 상단 헤더(cavunet-header-wrap)와 푸터(cavunet-footer)는 언제나 고정 상태(Sticky)로 유지
   ========================================================= */
.cavunet-header-wrap {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  width: 100%;
  background-color: var(--cavunet-bg, #ffffff) !important;
}

.cavunet-footer {
  position: sticky !important;
  bottom: 0 !important;
  z-index: 990 !important;
  width: 100%;
  background-color: var(--cavunet-bg, #ffffff) !important;
}

/* 1층: 상단 메인 헤더 (2단 라인 스택: 좌측 로고 ─ 우측 상단 메뉴행/하단 캡슐행) */
.cavunet-header {
  padding-top: var(--cavunet-header-pt, 16px);
  padding-bottom: var(--cavunet-header-pb, 14px);
  padding-left: var(--cavunet-gutter, 32px);
  padding-right: var(--cavunet-gutter, 32px);
  margin-bottom: 0;
  display: flex;
  align-items: stretch; /* 3개 구역 전체가 로고 높이 기준으로 상단/하단 라인 완벽 일치 */
  justify-content: space-between;
  position: relative;
  background-color: transparent;
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
}

/* 1구역: 좌측 브랜드 로고 */
.cavunet-header-left-zone,
.cavunet-header-left {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

/* 2구역: 2단 헤더 콘텐츠 영역 (우측 전체) */
.cavunet-header-content-zone {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-self: stretch;
  margin-left: 32px;
  min-width: 0;
}

/* 윗선: 로고 상단 라인과 완벽 일치하는 전체 메뉴 행 */
.cavunet-header-top-line {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 100%;
  line-height: 1;
}

.cavunet-top-nav-groups {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 100%;
}

.cavunet-group-account-global {
  margin-left: auto;
}

.cavunet-header-top-line .cavunet-nav-menu {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* 아랫선: 로고 하단 라인과 완벽 일치하는 캡슐 행 */
.cavunet-header-bottom-line {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 100%;
  line-height: 1;
}

.cavunet-capsule-group-preserved {
  display: inline-flex;
  align-items: flex-end;
  margin-left: clamp(20px, 18vw, 220px);
}

.cavunet-capsule-group-tools {
  display: inline-flex;
  align-items: flex-end;
  gap: 6px;
  margin-left: auto;
}

.cavunet-global-bullet {
  font-size: 8px;
  vertical-align: middle;
  margin-right: 4px;
  display: inline-block;
  color: var(--cavunet-black, #111111);
}
body.cavunet-dark-theme .cavunet-global-bullet,
html.cavunet-dark-theme .cavunet-global-bullet {
  color: #ffffff !important;
}

/* 브라우저 너비 반응형 처리 */
@media (max-width: 1080px) {
  .cavunet-top-nav-groups {
    gap: clamp(14px, 3vw, 28px);
  }
  .cavunet-capsule-group-preserved {
    margin-left: 20px;
  }
}

/* [요청 1 반영] 로고 + 슬로건 수직 묶음 래퍼 */
.cavunet-logo-slogan-wrap {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 2px;
  line-height: 1;
}

/* ==========================================================================
   상단 통합 아키텍처 그리드 시스템 (3열 x 2행 건축적 그리드 헤더)
   - 모크업 디자인(테스트_001.jpg) 100% 충실 구현
   - 행 1 (155px): [열 1: cavunet 로고] | [열 2: 72 Exhibitions Preserved] | [열 3: 적층 가로선 메뉴 선반]
   - 행 2 (29px): [열 1: A Home for Exhibitions] | [열 2: On This Day 배너] | [열 3: 심플 블랙 아이콘 3종]
   - 세로선 1: 열 1과 열 2 사이의 선 ──> 본문 전시 목록의 전시 제목 우측 세로선과 100% 일치
   - 세로선 2: 열 2와 열 3 사이의 선 ──> 본문 전시 목록의 국가(country) 좌측 세로선과 100% 일치
   ========================================================================== */

.cavunet-header.cavunet-grid-header-wrap {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 0 !important;
  margin: 0 !important;
  border-top: none !important; /* [요청 1 반영] 화면 최상단의 가로 외곽선 제거, 세로선은 화면 최상단과 완벽 접촉 */
  background-color: var(--cavunet-bg, #ffffff);
  box-sizing: border-box;
  position: relative;
  z-index: 100;
}

body.cavunet-dark-theme .cavunet-header.cavunet-grid-header-wrap {
  border-top: none !important;
  background-color: var(--cavunet-bg, #111111) !important;
}

/* 그리드 행(Row) 공통 */
.cavunet-grid-row {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  padding: 0 !important;
  margin: 0 !important;
}

/* [요청 4 반영] 1층 대형 행: 목록 및 메뉴 칸 높이(22px)에 맞춰 132px(6칸)로 컴팩트하게 축소 */
.cavunet-grid-row-top {
  height: 132px;
  min-height: 132px;
  max-height: 132px;
  border-bottom: 1px solid var(--cavunet-line, #111111) !important;
}

/* 2층 하단 띠배너 행 (29px) */
.cavunet-grid-row-bottom.cavunet-grid-ribbon {
  height: 29px;
  min-height: 29px;
  max-height: 29px;
  border-bottom: 1px solid var(--cavunet-line, #111111) !important;
  line-height: 1;
}

body.cavunet-dark-theme .cavunet-grid-row-top,
body.cavunet-dark-theme .cavunet-grid-row-bottom.cavunet-grid-ribbon {
  border-bottom-color: rgba(255, 255, 255, 0.2) !important;
}

/* 그리드 열(Col) 공통 폭 및 분할선 */
.cavunet-grid-col {
  box-sizing: border-box;
  position: relative;
  height: 100%;
}

/* 열 1: 전시 제목 열과 100% 완벽 일치 */
.cavunet-grid-col-1 {
  width: var(--cavunet-grid-col1-width, 40.7%);
  min-width: var(--cavunet-grid-col1-width, 40.7%);
  max-width: var(--cavunet-grid-col1-width, 40.7%);
  flex: 0 0 var(--cavunet-grid-col1-width, 40.7%);
  border-right: 1px solid var(--cavunet-line, #111111) !important;
}

/* 열 2: 중간 열군(작가/연도/기간/공간)과 100% 완벽 일치 */
.cavunet-grid-col-2 {
  width: var(--cavunet-grid-col2-width, 29.5%);
  min-width: var(--cavunet-grid-col2-width, 29.5%);
  max-width: var(--cavunet-grid-col2-width, 29.5%);
  flex: 0 0 var(--cavunet-grid-col2-width, 29.5%);
  border-right: 1px solid var(--cavunet-line, #111111) !important;
}

/* 열 3: 국가부터 테이블 끝까지와 100% 완벽 일치 */
.cavunet-grid-col-3 {
  flex: 1 1 auto;
  width: var(--cavunet-grid-col3-width, 29.8%);
  min-width: var(--cavunet-grid-col3-width, 29.8%);
}

body.cavunet-dark-theme .cavunet-grid-col-1,
body.cavunet-dark-theme .cavunet-grid-col-2 {
  border-right-color: rgba(255, 255, 255, 0.2) !important;
}

/* --------------------------------------------------------------------------
   열 1 (좌측): [행 1: 브랜드 로고] & [행 2: 슬로건 (A Home for Exhibitions)]
   -------------------------------------------------------------------------- */
.cavunet-grid-cell-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 20px;
}

.cavunet-grid-cell-logo .cavunet-brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.cavunet-logo-serif-text {
  font-family: 'Cormorant Garamond', 'Times New Roman', 'Noto Serif KR', Georgia, serif;
  font-size: clamp(46px, 4.4vw, 68px);
  font-weight: 500;
  letter-spacing: -0.035em;
  color: var(--cavunet-black, #111111);
  line-height: 1;
  text-transform: lowercase;
  margin: 0;
  padding: 0;
}

body.cavunet-dark-theme .cavunet-logo-serif-text,
html.cavunet-dark-theme .cavunet-logo-serif-text {
  color: #ffffff !important;
}

.cavunet-grid-cell-slogan {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 20px;
}

.cavunet-ribbon-slogan-text {
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--cavunet-black, #111111);
  line-height: 1;
  white-space: nowrap;
}

body.cavunet-dark-theme .cavunet-ribbon-slogan-text,
html.cavunet-dark-theme .cavunet-ribbon-slogan-text {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-ribbon-slogan-text {
  color: #ffffff;
}

/* --------------------------------------------------------------------------
   열 2 (중앙): [행 1: 72 Exhibitions Preserved] & [행 2: On This Day 배너]
   -------------------------------------------------------------------------- */
.cavunet-grid-cell-preserved {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important; /* [요청 2 반영] 좌우 정중앙 */
  justify-content: center !important; /* [요청 2 반영] 위아래 정중앙 */
  text-align: center !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 100% !important;
}

.cavunet-grid-preserved-link {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  text-decoration: none;
  color: var(--cavunet-black, #111111);
  transition: opacity 0.15s ease;
}

.cavunet-grid-preserved-link:hover {
  opacity: 0.65;
}

.cavunet-grid-preserved-num {
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-weight: 800;
  font-size: 12px;
  line-height: 1.15em;
  color: inherit;
  display: inline-flex;
  align-items: center;
  vertical-align: baseline;
}

.cavunet-odometer-digit {
  display: inline-block;
  height: 1.15em;
  line-height: 1.15em;
  overflow: hidden;
  position: relative;
  vertical-align: baseline;
}

.cavunet-odometer-ribbon {
  display: flex;
  flex-direction: column;
  will-change: transform;
  transform: translateY(0);
}

.cavunet-odometer-ribbon > span {
  display: block;
  height: 1.15em;
  line-height: 1.15em;
  text-align: center;
  font-weight: 800;
  font-size: 12px;
}

.cavunet-grid-preserved-label {
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-weight: 600;
  font-size: 11.5px;
  line-height: 1;
  color: inherit;
}

body.cavunet-dark-theme .cavunet-grid-preserved-link {
  color: #ffffff;
}

.cavunet-grid-cell-banner {
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-left: 12px;
  padding-right: 12px;
}

.cavunet-grid-banner-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  height: 100%;
  overflow: hidden;
}

.cavunet-grid-banner-badge {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10px;
  font-weight: 600;
  color: #666666;
  white-space: nowrap;
  letter-spacing: 0.02em;
  text-transform: lowercase;
}

body.cavunet-dark-theme .cavunet-grid-banner-badge,
html.cavunet-dark-theme .cavunet-grid-banner-badge {
  color: #e4e4e7 !important;
}

.cavunet-grid-marquee-wrap {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  display: flex;
  align-items: center;
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);
}

.cavunet-grid-marquee-track {
  display: flex;
  width: max-content;
  white-space: nowrap;
  animation: cavunetGridMarqueeRoll var(--cavunet-marquee-duration, 38s) linear infinite;
}

.cavunet-grid-marquee-wrap:hover .cavunet-grid-marquee-track {
  animation-play-state: paused;
}

@keyframes cavunetGridMarqueeRoll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.cavunet-grid-marquee-content {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  padding-right: 28px;
}

.cavunet-grid-marquee-item a,
.cavunet-grid-marquee-link {
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: 10.5px;
  color: #555555;
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: -0.01em;
  transition: color 0.15s ease;
}

.cavunet-grid-marquee-item a:hover,
.cavunet-grid-marquee-link:hover {
  color: var(--cavunet-black, #111111);
}

body.cavunet-dark-theme .cavunet-grid-marquee-content,
body.cavunet-dark-theme .cavunet-grid-marquee-item,
body.cavunet-dark-theme .cavunet-grid-marquee-item a,
body.cavunet-dark-theme .cavunet-grid-marquee-link,
html.cavunet-dark-theme .cavunet-grid-marquee-content,
html.cavunet-dark-theme .cavunet-grid-marquee-item,
html.cavunet-dark-theme .cavunet-grid-marquee-item a,
html.cavunet-dark-theme .cavunet-grid-marquee-link {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-marquee-item a:hover,
body.cavunet-dark-theme .cavunet-grid-marquee-link:hover,
html.cavunet-dark-theme .cavunet-grid-marquee-item a:hover,
html.cavunet-dark-theme .cavunet-grid-marquee-link:hover {
  color: #ffffff !important;
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   열 3 (우측): [행 1: 적층 메뉴 선반 (호버 시 블랙 배경 반전)] & [행 2: 심플 블랙 아이콘 3종]
   -------------------------------------------------------------------------- */
.cavunet-grid-cell-menus {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

/* [요청 1 반영] 메뉴를 일부 삭제하거나 개수가 적어도 6개 구역의 가로 분할선이 영구 보존되는 그리드 배경 */
.cavunet-grid-shelf-nav {
  display: flex;
  flex-direction: column;
  height: 132px;
  min-height: 132px;
  max-height: 132px;
  width: 100%;
  position: relative;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 21px,
    var(--cavunet-line, #111111) 21px,
    var(--cavunet-line, #111111) 22px
  );
  background-size: 100% 132px;
  background-repeat: no-repeat;
}

body.cavunet-dark-theme .cavunet-grid-shelf-nav {
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 21px,
    rgba(255, 255, 255, 0.2) 21px,
    rgba(255, 255, 255, 0.2) 22px
  );
}

.cavunet-grid-shelf-menu {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* [요청 2 반영] 첫 번째 메뉴가 항상 위에서 두 번째 칸(22px)부터 시작하도록 보장 */
.cavunet-grid-shelf-menu > li:first-child:not(.cavunet-grid-shelf-empty) {
  margin-top: 22px !important;
}

.cavunet-grid-shelf-item,
.cavunet-grid-shelf-menu li {
  flex: 1 1 0;
  height: 22px !important;
  min-height: 22px !important;
  max-height: 22px !important;
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  border-bottom: 1px solid var(--cavunet-line, #111111) !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background-color: transparent;
  transition: background-color 0.12s ease;
}

.cavunet-grid-shelf-item:last-child,
.cavunet-grid-shelf-menu li:last-child {
  border-bottom: none !important;
}

body.cavunet-dark-theme .cavunet-grid-shelf-item,
body.cavunet-dark-theme .cavunet-grid-shelf-menu li {
  border-bottom-color: rgba(255, 255, 255, 0.2) !important;
}

/* 빈 선반 행 */
.cavunet-grid-shelf-empty {
  pointer-events: none;
}

/* 메뉴 링크: [요청 3 반영] 왼쪽 정렬 & 검색창 돋보기 앞쪽과 100% 수직 일치 */
.cavunet-grid-shelf-link,
.cavunet-grid-shelf-menu li a {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important; /* [요청 3] 왼쪽 정렬 */
  width: 100% !important;
  height: 100% !important;
  padding-left: var(--cavunet-shelf-menu-left-pad, calc(100% - clamp(20px, 3vw, 48px) - 110px)) !important; /* [요청 3] 돋보기 버튼 앞쪽 기준선 일치 */
  padding-right: 16px !important;
  font-family: var(--cavunet-menu-font, var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif)) !important;
  font-size: var(--cavunet-menu-size, 12.5px) !important;
  font-weight: var(--cavunet-menu-weight, 500) !important;
  line-height: 1 !important;
  letter-spacing: var(--cavunet-menu-spacing, -0.01em) !important;
  color: var(--cavunet-black, #111111) !important;
  text-decoration: none !important;
  transition: color 0.12s ease, background-color 0.12s ease !important;
  box-sizing: border-box !important;
}

body.cavunet-dark-theme .cavunet-grid-shelf-link,
body.cavunet-dark-theme .cavunet-grid-shelf-menu li a {
  color: #ffffff !important;
}

/* [요청 4 반영] 메뉴 마우스 오버 시 해당 메뉴 구역의 영역이 솔리드 검정 배경으로 반전 */
.cavunet-grid-shelf-item:hover,
.cavunet-grid-shelf-menu li:hover {
  background-color: var(--cavunet-black, #111111) !important;
}

.cavunet-grid-shelf-item:hover .cavunet-grid-shelf-link,
.cavunet-grid-shelf-menu li:hover a {
  background-color: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
}

/* 흑백 화면(다크 모드) 전환 시 반전: 흰색 배경 + 검정 글자 */
body.cavunet-dark-theme .cavunet-grid-shelf-item:hover,
body.cavunet-dark-theme .cavunet-grid-shelf-menu li:hover {
  background-color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-shelf-item:hover .cavunet-grid-shelf-link,
body.cavunet-dark-theme .cavunet-grid-shelf-menu li:hover a {
  background-color: #ffffff !important;
  color: #111111 !important;
}

/* --------------------------------------------------------------------------
   [요청 3 반영] 심플한 검정색 도구 이모티콘 3종 (검색, 회원정보, 흑백 변환)
   -------------------------------------------------------------------------- */
.cavunet-grid-cell-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: clamp(20px, 3vw, 48px);
  height: 100%;
}

.cavunet-grid-tools-inner {
  display: inline-flex;
  align-items: center;
  gap: 32px;
  height: 100%;
}

.cavunet-grid-tool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer;
  color: var(--cavunet-black, #111111);
  text-decoration: none;
  line-height: 1;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.cavunet-grid-tool-btn:hover {
  opacity: 0.55;
  transform: scale(1.1);
}

.cavunet-grid-tool-btn svg {
  display: block;
  stroke: currentColor;
}

/* [요청 4 반영] 라이트 모드: 햇살 심볼 표시, 달 심볼 숨김 */
.cavunet-desktop-theme-toggle .cavunet-theme-svg-sun {
  display: block !important;
}
.cavunet-desktop-theme-toggle .cavunet-theme-svg-moon {
  display: none !important;
}

/* [요청 4 반영] 흑백 변환 버튼 클릭 시 검은 화면에서는 하얀 달(White Moon) 이모티콘으로 변환 */
body.cavunet-dark-theme .cavunet-desktop-theme-toggle .cavunet-theme-svg-sun,
html.cavunet-dark-theme .cavunet-desktop-theme-toggle .cavunet-theme-svg-sun {
  display: none !important;
}

body.cavunet-dark-theme .cavunet-desktop-theme-toggle .cavunet-theme-svg-moon,
html.cavunet-dark-theme .cavunet-desktop-theme-toggle .cavunet-theme-svg-moon {
  display: block !important;
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-tool-btn {
  color: #ffffff;
}

/* 모바일 반응형 처리 */
@media (max-width: 768px) {
  .cavunet-site-wrapper {
    overflow-x: clip !important;
    position: relative !important;
    padding-top: 88px !important; /* 상단 고정 헤더(60px 로고행 + 28px 티커행) 높이 확보 */
  }

  /* 상단 로고와 메뉴 구역 스크롤 시 상단 고정 (Fixed Header) */
  .cavunet-header.cavunet-grid-header-wrap,
  .cavunet-header-wrap {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    background-color: var(--cavunet-bg, #ffffff) !important;
    border-bottom: none !important;
  }
  body.cavunet-dark-theme .cavunet-header.cavunet-grid-header-wrap,
  body.cavunet-dark-theme .cavunet-header-wrap {
    background-color: var(--cavunet-bg, #111111) !important;
  }

  .cavunet-grid-row-top {
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    padding: 0 16px !important;
    justify-content: space-between !important;
    align-items: center !important;
    border-bottom: 1px solid var(--cavunet-line, #111111) !important;
    box-sizing: border-box !important;
  }
  .cavunet-grid-col-1 {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    border-right: none !important;
    display: flex !important;
    align-items: center !important;
  }
  .cavunet-brand-logo,
  .cavunet-logo-wrap {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: none !important;
  }
  .cavunet-brand-logo img,
  .cavunet-brand-logo-img,
  .cavunet-main-logo,
  .custom-logo {
    max-height: 30px !important;
    max-width: 125px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 !important;
  }
  .cavunet-logo-serif-text {
    font-size: 26px !important;
    line-height: 1 !important;
    letter-spacing: -0.5px !important;
  }
  .cavunet-grid-col-2,
  .cavunet-grid-col-3 {
    display: none !important;
  }
  .cavunet-header-buttons-row.cavunet-mobile-only {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .cavunet-theme-toggle-btn.cavunet-mobile-search-toggle-btn,
  .cavunet-theme-toggle-btn.cavunet-mobile-theme-toggle-btn,
  .cavunet-mobile-nav-toggle-btn {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    border-radius: 50% !important;
    border: 1px solid var(--cavunet-line, #111111) !important;
    background: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    cursor: pointer !important;
    color: var(--cavunet-line, #111111) !important;
    box-sizing: border-box !important;
  }
  body.cavunet-dark-theme .cavunet-theme-toggle-btn.cavunet-mobile-search-toggle-btn,
  body.cavunet-dark-theme .cavunet-theme-toggle-btn.cavunet-mobile-theme-toggle-btn,
  body.cavunet-dark-theme .cavunet-mobile-nav-toggle-btn {
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: #ffffff !important;
  }
  .cavunet-grid-row-bottom.cavunet-grid-ribbon {
    height: 28px !important;
    min-height: 28px !important;
    display: flex !important;
    border-bottom: 1px solid var(--cavunet-line, #111111) !important;
    background: var(--cavunet-bg, #ffffff) !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .cavunet-grid-row-bottom .cavunet-grid-col-1 {
    display: none !important;
  }
  .cavunet-grid-row-bottom .cavunet-grid-col-2 {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border-right: none !important;
    padding: 0 16px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  .cavunet-grid-ribbon .cavunet-grid-banner-inner {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .cavunet-grid-ribbon .cavunet-grid-marquee-wrap {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
}


.cavunet-top-banner-bar .cavunet-today-exhibition-header {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  white-space: nowrap;
}

.cavunet-top-banner-bar .cavunet-marquee-badge,
.cavunet-top-banner-bar .cavunet-today-exhibition-label,
.cavunet-top-banner-bar .cavunet-capsule-label {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: var(--cavunet-red, #ff0000);
  text-transform: uppercase;
}

.cavunet-top-banner-bar .cavunet-marquee-wrap {
  flex: 1 1 auto;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}

.cavunet-top-banner-bar .cavunet-marquee-item {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  padding-right: 32px;
}

.cavunet-top-banner-bar .cavunet-marquee-link,
.cavunet-top-banner-bar .cavunet-ticker-link,
.cavunet-top-banner-bar .cavunet-capsule-link {
  color: var(--cavunet-black, #111111);
  text-decoration: none;
  transition: color 0.2s ease;
}

.cavunet-top-banner-bar .cavunet-marquee-link:hover,
.cavunet-top-banner-bar .cavunet-ticker-link:hover,
.cavunet-top-banner-bar .cavunet-capsule-link:hover {
  color: var(--cavunet-red, #ff0000) !important;
}

body.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-marquee-link,
html.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-marquee-link,
body.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-ticker-link,
html.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-ticker-link,
body.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-capsule-link,
html.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-capsule-link {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-marquee-link:hover,
html.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-marquee-link:hover,
body.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-ticker-link:hover,
html.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-ticker-link:hover,
body.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-capsule-link:hover,
html.cavunet-dark-theme .cavunet-top-banner-bar .cavunet-capsule-link:hover {
  color: var(--cavunet-red, #ff0000) !important;
}

/* Logo Switcher for Light / Dark Mode & Custom Width (Zero Flicker) */
.cavunet-brand-logo-img,
.custom-logo {
  display: block;
  height: auto;
  vertical-align: top;
  content-visibility: visible;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.cavunet-logo-wrap {
  display: inline-flex;
  align-items: flex-start;
  line-height: 1;
}

/* [요청 2 반영] 다크 모드 시 브랜드 텍스트 로고 흰색 전환 */
body.cavunet-dark-theme .cavunet-brand-logo,
html.cavunet-dark-theme .cavunet-brand-logo,
body.cavunet-dark-theme .cavunet-brand-logo a,
body.cavunet-dark-theme .cavunet-brand-logo span,
body.cavunet-dark-theme .cavunet-brand-logo * {
  color: #ffffff !important;
}

/* PC 데스크톱 및 전역 다크 모드 로고 자동 반전 (라이트 로고 -> 화이트 반전) */
body.cavunet-dark-theme .cavunet-brand-logo-img,
body.cavunet-dark-theme .cavunet-main-logo,
body.cavunet-dark-theme .cavunet-main-logo.cavunet-light-logo,
body.cavunet-dark-theme .cavunet-desktop-logo.cavunet-light-logo,
body.cavunet-dark-theme .cavunet-brand-logo-img.cavunet-light-logo,
body.cavunet-dark-theme .custom-logo {
  filter: invert(1) brightness(1.5) !important;
}

/* 전용 다크 로고가 있는 경우 필터 없이 그대로 표시 */
body.cavunet-dark-theme .cavunet-main-logo.cavunet-dark-logo,
body.cavunet-dark-theme .cavunet-desktop-logo.cavunet-dark-logo,
body.cavunet-dark-theme .cavunet-brand-logo-img.cavunet-dark-logo {
  display: inline-block !important;
  filter: none !important;
}
body.cavunet-dark-theme .cavunet-logo-wrap:has(.cavunet-dark-logo) .cavunet-light-logo {
  display: none !important;
}

/* [요청 1 반영] 로고 + 슬로건 수직 묶음 래퍼 */
.cavunet-logo-slogan-wrap {
  display: inline-flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 4px;
  line-height: 1;
}

.cavunet-header-slogan {
  display: block;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10.5px;
  line-height: 1.3;
  letter-spacing: 0.3px;
  color: var(--cavunet-gray-muted, #777777);
  white-space: nowrap;
  transition: color 0.2s ease;
}

body.cavunet-dark-theme .cavunet-header-slogan,
html.cavunet-dark-theme .cavunet-header-slogan {
  color: #aaaaaa !important;
}

/* [상단 중앙 정렬] 숫자 + exhibitions preserved 카운터: 헤더 수직/수평 정중앙 배치 */
.cavunet-header-archive-count {
  flex: 1 1 auto;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 0 auto; /* 좌측 로고와 우측 메뉴 사이 수평 정중앙 배치 */
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  color: var(--cavunet-black, #111111);
  letter-spacing: 0.4px;
  padding-bottom: 0;
  white-space: nowrap;
  align-self: center !important; /* 상단 구역 전체 높이의 수직 정중앙 배치 */
}

/* [신규 기능] 숫자 카운터: 괄호 대신 글씨 크기에 딱 맞춘 라운드 모서리 네온 캡슐 뱃지 (커스터마이저 연동) */
.cavunet-count-number-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 7px;
  border-radius: 12px;
  background-color: var(--cavunet-badge-bg, #111111);
  border: 1px solid var(--cavunet-badge-border, var(--cavunet-preserved-bg, #00f0ff));
  box-shadow: 0 0 6px var(--cavunet-badge-border, var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.35)));
  line-height: 1.25;
  transition: all 0.3s ease;
  user-select: none;
}

body.cavunet-dark-theme .cavunet-count-number-badge,
html.cavunet-dark-theme .cavunet-count-number-badge {
  background-color: var(--cavunet-badge-bg, #000000) !important;
  border-color: var(--cavunet-badge-border, var(--cavunet-preserved-bg, #00f0ff)) !important;
  box-shadow: 0 0 8px var(--cavunet-badge-border, var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.6))) !important;
}

.cavunet-count-number-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 10px var(--cavunet-badge-border, var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.7)));
}

.cavunet-header-archive-count .cavunet-count-number {
  font-weight: 800;
  font-size: 11px;
  color: var(--cavunet-badge-color, var(--cavunet-badge-border, var(--cavunet-preserved-bg, #00f0ff)));
  display: inline-block;
  letter-spacing: 0.3px;
  line-height: 1.25;
  text-shadow: 0 0 4px var(--cavunet-badge-border, var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.4)));
  transition: color 0.3s ease, text-shadow 0.3s ease;
  animation: none;
}

/* [신규 기능] 커스터마이저에서 활성화 시에만 동작하는 무지개 네온 스펙트럼 시프트 애니메이션 */
.cavunet-header-archive-count .cavunet-count-number.has-color-shift,
.cavunet-header-archive-count .cavunet-count-number[data-anim-shift="true"] {
  animation: cavunetNeonPrimaryShift 12s infinite ease-in-out !important;
  will-change: color;
}

/* [신규 기능] exhibitions preserved 텍스트: 숫자 뱃지와 완벽히 동일한 라운드 모서리 네온 캡슐 디자인 */
.cavunet-header-archive-count .cavunet-count-label {
  font-weight: 700;
  font-size: 11px;
  color: var(--cavunet-preserved-color, var(--cavunet-preserved-bg, #00f0ff));
  background-color: var(--cavunet-badge-bg, #111111);
  border: 1px solid var(--cavunet-preserved-bg, #00f0ff);
  box-shadow: 0 0 6px var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.35));
  padding: 1px 9px;
  border-radius: 12px;
  line-height: 1.25;
  display: inline-flex;
  align-items: center;
  text-shadow: 0 0 4px var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.4));
  transition: all 0.3s ease;
  letter-spacing: 0.3px;
  user-select: none;
}

body.cavunet-dark-theme .cavunet-header-archive-count .cavunet-count-label,
html.cavunet-dark-theme .cavunet-header-archive-count .cavunet-count-label {
  color: var(--cavunet-preserved-color, var(--cavunet-preserved-bg, #00f0ff)) !important;
  background-color: var(--cavunet-badge-bg, #000000) !important;
  border-color: var(--cavunet-preserved-bg, #00f0ff) !important;
  box-shadow: 0 0 8px var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.6)) !important;
}

.cavunet-header-archive-count .cavunet-count-label:hover {
  filter: brightness(1.15);
  transform: translateY(-1px);
  box-shadow: 0 0 10px var(--cavunet-preserved-bg, rgba(0, 240, 255, 0.7));
}

@keyframes cavunetNeonPrimaryShift {
  0% {
    color: #ff0033; /* 비비드 크림슨 레드 (원색) */
  }
  12.5% {
    color: #ff5500; /* 네온 오렌지 */
  }
  25% {
    color: #ffcc00; /* 일렉트릭 앰버 옐로우 (형광 네온) */
  }
  37.5% {
    color: #39ff14; /* 형광 라임 그린 (형광 네온) */
  }
  50% {
    color: #00f0ff; /* 일렉트릭 시안 블루 (형광 네온) */
  }
  62.5% {
    color: #0055ff; /* 울트라마린 코발트 (원색 블루) */
  }
  75% {
    color: #bf00ff; /* 네온 바이올렛 / 퍼플 */
  }
  87.5% {
    color: #ff007f; /* 핫 마젠타 핑크 (형광 네온) */
  }
  100% {
    color: #ff0033; /* 비비드 크림슨 레드 (원색 복귀 무한 루프) */
  }
}

body.cavunet-dark-theme .cavunet-header-archive-count,
html.cavunet-dark-theme .cavunet-header-archive-count {
  color: #ffffff !important;
}

.cavunet-info-btn {
  display: none !important;
}

.cavunet-brand-logo {
  font-family: 'Times New Roman', serif;
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -1px;
  color: var(--cavunet-black);
  margin-right: 0;
  line-height: 1;
  display: inline-flex;
  align-items: flex-end;
}

/* [요청 반영] 상단 우측: 네비게이션 메뉴 + 우측 끝 캡슐 버튼(검색 [🔍] + 테마 [🌙/☀️]) 일렬 수평 정렬 (로고 하단 라인과 수평 정렬) */
.cavunet-header-right {
  display: flex;
  align-items: flex-end; /* 좌측 로고 하단 라인과 수평 일치 */
  justify-content: flex-end;
  gap: 14px;
  flex-shrink: 0;
  align-self: stretch;
  padding-bottom: 0;
}

.cavunet-header-nav-buttons-wrap {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  align-self: flex-end;
}

.cavunet-desktop-nav {
  display: inline-block;
  align-self: center;
}

.cavunet-nav-menu {
  display: flex;
  align-items: center;
  gap: 16px;
  list-style: none;
  font-family: var(--cavunet-menu-font, inherit);
  font-weight: var(--cavunet-menu-weight, 600);
  font-size: var(--cavunet-menu-size, 13px);
  letter-spacing: var(--cavunet-menu-spacing, 0.3px);
  margin: 0;
  padding: 0;
  line-height: 1;
}

/* [상단 메뉴 호버 인터랙션] 인버스 캡슐 반전 + 미세 블러 테두리 (Feathered Pill Inversion)
   - 검색/테마 캡슐 버튼과 100% 동일한 22px 고정 높이, 11px 라운드 곡률 및 광학적 수직 정렬
   - 캡슐 테두리에 아주 미세한 소프트 블러 음영(Feathered Edge) 적용 */
.cavunet-nav-menu a {
  position: relative;
  z-index: 1;
  font-family: var(--cavunet-menu-font, inherit);
  font-size: var(--cavunet-menu-size, 13px);
  font-weight: var(--cavunet-menu-weight, 600);
  letter-spacing: var(--cavunet-menu-spacing, 0.3px);
  color: var(--cavunet-black, #111111);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px; /* 검색/테마 캡슐 버튼(22px)과 완벽히 동일한 높이 */
  padding: 0 8px; /* 캡슐 좌우 패딩 */
  margin: 0;
  border-radius: 11px; /* 검색/테마 캡슐 버튼(11px)과 동일한 라운드 */
  background-color: transparent;
  box-sizing: border-box;
  box-shadow: 0 0 0 transparent;
  transition: background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), 
              color 0.2s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              transform 0.15s ease;
  will-change: background-color, color, box-shadow, transform;
}

/* 1. 라이트 모드 (화이트 배경): 검정 캡슐 반전 + 미세 소프트 블러 테두리 */
.cavunet-nav-menu a:hover {
  background-color: var(--cavunet-black, #111111) !important;
  color: var(--cavunet-bg, #ffffff) !important;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.28), 
              0 0 6px rgba(0, 0, 0, 0.1) !important;
  transform: translateY(-0.5px);
  opacity: 1 !important;
}

/* 2. 다크 모드 (블랙 배경): 화이트 캡슐 반전 + 미세 화이트 소프트 블러 테두리 */
body.cavunet-dark-theme .cavunet-nav-menu a,
html.cavunet-dark-theme .cavunet-nav-menu a {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-nav-menu a:hover,
html.cavunet-dark-theme .cavunet-nav-menu a:hover {
  background-color: #ffffff !important;
  color: #111111 !important;
  box-shadow: 0 0 3px rgba(255, 255, 255, 0.45), 
              0 0 7px rgba(255, 255, 255, 0.18) !important;
  transform: translateY(-0.5px);
  opacity: 1 !important;
}

/* ============================================================
   [상단 메뉴 호버 인터랙션 후보군 5종 스타일 정의]
   ============================================================ */

/* [대안 1] 1px 미니멀 대괄호 인덱스 (Minimal Archive Brackets) */
.cavunet-nav-menu.hover-effect-brackets a,
.hover-effect-brackets .cavunet-nav-menu a {
  position: relative;
  display: inline-flex;
  align-items: center;
  transition: color 0.2s ease, transform 0.2s ease;
}
.cavunet-nav-menu.hover-effect-brackets a::before,
.hover-effect-brackets .cavunet-nav-menu a::before {
  content: '[';
  opacity: 0;
  transform: translateX(4px);
  margin-right: 2px;
  font-family: var(--cavunet-font-mono, monospace);
  font-weight: 400;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.cavunet-nav-menu.hover-effect-brackets a::after,
.hover-effect-brackets .cavunet-nav-menu a::after {
  content: ']';
  opacity: 0;
  transform: translateX(-4px);
  margin-left: 2px;
  font-family: var(--cavunet-font-mono, monospace);
  font-weight: 400;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.cavunet-nav-menu.hover-effect-brackets a:hover::before,
.hover-effect-brackets .cavunet-nav-menu a:hover::before {
  opacity: 1;
  transform: translateX(0);
}
.cavunet-nav-menu.hover-effect-brackets a:hover::after,
.hover-effect-brackets .cavunet-nav-menu a:hover::after {
  opacity: 1;
  transform: translateX(0);
}

/* [대안 2] 인버스 캡슐 반전 (Inverse Pill Fill / High-Contrast Inversion) */
.cavunet-nav-menu.hover-effect-pill a,
.hover-effect-pill .cavunet-nav-menu a {
  padding: 3px 9px;
  border-radius: 12px;
  transition: background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), 
              color 0.2s cubic-bezier(0.16, 1, 0.3, 1), 
              transform 0.15s ease;
}
.cavunet-nav-menu.hover-effect-pill a:hover,
.hover-effect-pill .cavunet-nav-menu a:hover {
  background-color: var(--cavunet-black, #111111) !important;
  color: var(--cavunet-bg, #ffffff) !important;
  transform: translateY(-0.5px);
  opacity: 1 !important;
}
body.cavunet-dark-theme .cavunet-nav-menu.hover-effect-pill a:hover,
body.cavunet-dark-theme .hover-effect-pill .cavunet-nav-menu a:hover,
html.cavunet-dark-theme .cavunet-nav-menu.hover-effect-pill a:hover,
html.cavunet-dark-theme .hover-effect-pill .cavunet-nav-menu a:hover {
  background-color: #ffffff !important;
  color: #111111 !important;
  opacity: 1 !important;
}

/* [대안 3] 미니멀 1px 언더라인 슬라이드 (Sliding 1px Underline) */
.cavunet-nav-menu.hover-effect-underline a,
.hover-effect-underline .cavunet-nav-menu a {
  position: relative;
  transition: color 0.2s ease, transform 0.2s ease;
}
.cavunet-nav-menu.hover-effect-underline a::after,
.hover-effect-underline .cavunet-nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  width: 0;
  height: 1px;
  background-color: currentColor;
  transform: translateX(-50%);
  transition: width 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.cavunet-nav-menu.hover-effect-underline a:hover,
.hover-effect-underline .cavunet-nav-menu a:hover {
  transform: translateY(-1px);
  opacity: 1 !important;
}
.cavunet-nav-menu.hover-effect-underline a:hover::after,
.hover-effect-underline .cavunet-nav-menu a:hover::after {
  width: 100%;
}

/* [대안 4] 기하학적 블릿 도트 인디케이터 (Geometric Dot Indicator) */
.cavunet-nav-menu.hover-effect-bullet a,
.hover-effect-bullet .cavunet-nav-menu a {
  position: relative;
  display: inline-flex;
  align-items: center;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease;
}
.cavunet-nav-menu.hover-effect-bullet a::before,
.hover-effect-bullet .cavunet-nav-menu a::before {
  content: '▪';
  position: absolute;
  left: -8px;
  font-size: 8px;
  line-height: 1;
  opacity: 0;
  transform: scale(0.4);
  color: var(--cavunet-accent-red, #e60000);
  transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.cavunet-nav-menu.hover-effect-bullet a:hover,
.hover-effect-bullet .cavunet-nav-menu a:hover {
  transform: translateX(6px);
  opacity: 1 !important;
}
.cavunet-nav-menu.hover-effect-bullet a:hover::before,
.hover-effect-bullet .cavunet-nav-menu a:hover::before {
  opacity: 1;
  transform: scale(1);
}

/* [대안 5] 시그니처 레드 포인트 & 리프팅 (Signature Red Accent) */
.cavunet-nav-menu.hover-effect-red a,
.hover-effect-red .cavunet-nav-menu a {
  transition: color 0.18s ease, transform 0.18s ease;
}
.cavunet-nav-menu.hover-effect-red a:hover,
.hover-effect-red .cavunet-nav-menu a:hover {
  color: var(--cavunet-accent-red, #e60000) !important;
  transform: translateY(-1px);
  opacity: 1 !important;
}

/* PC 상단 우측: 검색 캡슐 버튼 + 흑백 전환 캡슐 버튼 (메뉴의 오른쪽 끝에 배치) */
.cavunet-search-controls-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  vertical-align: middle;
  box-sizing: border-box;
}

/* ============================================================
   [상단 캡슐 버튼 통합 스타일: 검색 버튼 & 흑백 테마 전환 버튼]
   - 메뉴와 완벽히 통일된 슬림 캡슐 형태 + 인버스 반전 + 미세 블러 테두리
   ============================================================ */
.cavunet-capsule-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: transparent !important;
  border: 1px solid var(--cavunet-line-light, #e0e0e0) !important;
  border-radius: 11px !important;
  width: 32px !important;
  height: 22px !important;
  min-width: 32px !important;
  max-width: 32px !important;
  padding: 0 !important;
  font-size: 11.5px !important;
  cursor: pointer !important;
  line-height: 1 !important;
  color: var(--cavunet-black, #111111) !important;
  box-shadow: 0 0 0 transparent !important;
  transition: background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), 
              color 0.2s cubic-bezier(0.16, 1, 0.3, 1), 
              border-color 0.2s ease, 
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              transform 0.15s ease !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  user-select: none !important;
  outline: none !important;
  will-change: background-color, color, box-shadow, transform;
}

.cavunet-capsule-btn svg {
  stroke: var(--cavunet-black, #111111) !important;
  transition: stroke 0.2s ease;
}

/* 1. 라이트 모드 (화이트 배경): 호버 시 블랙 캡슐 반전 + 미세 소프트 블러 테두리 */
.cavunet-capsule-btn:hover {
  background-color: var(--cavunet-black, #111111) !important;
  border-color: var(--cavunet-black, #111111) !important;
  color: var(--cavunet-bg, #ffffff) !important;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.28), 
              0 0 6px rgba(0, 0, 0, 0.1) !important;
  transform: translateY(-0.5px) !important;
}

.cavunet-capsule-btn:hover svg {
  stroke: #ffffff !important;
}

/* 2. 다크 모드 (블랙 배경): 기본 및 호버 시 화이트 캡슐 반전 + 미세 화이트 소프트 블러 테두리 */
body.cavunet-dark-theme .cavunet-capsule-btn,
html.cavunet-dark-theme .cavunet-capsule-btn {
  border-color: #383838 !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-capsule-btn svg,
html.cavunet-dark-theme .cavunet-capsule-btn svg {
  stroke: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-capsule-btn:hover,
html.cavunet-dark-theme .cavunet-capsule-btn:hover {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  color: #111111 !important;
  box-shadow: 0 0 3px rgba(255, 255, 255, 0.45), 
              0 0 7px rgba(255, 255, 255, 0.18) !important;
  transform: translateY(-0.5px) !important;
}

body.cavunet-dark-theme .cavunet-capsule-btn:hover svg,
html.cavunet-dark-theme .cavunet-capsule-btn:hover svg {
  stroke: #111111 !important;
}

/* ============================================================
   [EXHIBITIONS PRESERVED 캡슐 버튼]
   - 검색 버튼 & 흑백 전환 버튼과 100% 동일한 슬림 캡슐 디자인, 색상, 22px 높이, 11px 라운드 및 테두리 적용
   ============================================================ */
.cavunet-preserved-capsule-btn {
  width: auto !important;
  min-width: auto !important;
  max-width: none !important;
  height: 22px !important;
  padding: 0 9px !important;
  border-radius: 11px !important;
  border: 1px solid var(--cavunet-line-light, #e0e0e0) !important;
  background-color: transparent !important;
  color: var(--cavunet-black, #111111) !important;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2px !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  gap: 5px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.cavunet-preserved-capsule-btn .cavunet-preserved-count-num {
  font-weight: 700 !important;
}

.cavunet-preserved-capsule-btn .cavunet-preserved-count-txt {
  font-weight: 500 !important;
  opacity: 0.92;
}

/* Zero-FOUC & Zero-Layout-Shift: 순수 CSS 기반 테마 아이콘 정밀 전환 (JS 지연 깜빡임 및 떨림 원천 차단) */
.cavunet-theme-icon-moon,
.cavunet-theme-icon-sun {
  width: 15px !important;
  height: 15px !important;
  line-height: 1 !important;
  font-size: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  pointer-events: none !important;
}

.cavunet-theme-icon-moon {
  display: inline-flex !important;
}

.cavunet-theme-icon-sun {
  display: none !important;
}

html.cavunet-dark-theme .cavunet-theme-icon-moon,
body.cavunet-dark-theme .cavunet-theme-icon-moon {
  display: none !important;
}

html.cavunet-dark-theme .cavunet-theme-icon-sun,
body.cavunet-dark-theme .cavunet-theme-icon-sun {
  display: inline-flex !important;
}

/* PC 데스크톱 기본값: 모바일 전용 버튼/드로어는 PC에서 완전 숨김 */
.cavunet-header-buttons-row,
.cavunet-mobile-search-toggle-btn,
.cavunet-mobile-hamburger-btn,
.cavunet-mobile-search-drawer,
.cavunet-mobile-nav-backdrop,
.cavunet-mobile-nav-drawer {
  display: none !important;
}

.cavunet-desktop-nav {
  display: block;
}

.cavunet-desktop-search-form {
  display: flex !important;
}

/* [요청 3 반영] PC 데스크톱에서는 모바일 로고를 라이트/다크 불문하고 100% 완전 숨김 */
.cavunet-mobile-logo,
.cavunet-mobile-logo.cavunet-light-logo,
.cavunet-mobile-logo.cavunet-dark-logo,
body.cavunet-dark-theme .cavunet-mobile-logo,
body.cavunet-dark-theme .cavunet-mobile-logo.cavunet-light-logo,
body.cavunet-dark-theme .cavunet-mobile-logo.cavunet-dark-logo {
  display: none !important;
}

/* PC 데스크톱 로고 기본 표시 */
.cavunet-desktop-logo {
  display: inline-block;
}

/* [요청 2 반영] 검색창: 가로폭 220px 고정 (클릭 시 늘어나는 현상 완전 제거) */
.cavunet-search-form {
  position: relative;
  display: flex;
  align-items: center;
  border: none !important;
  border-bottom: 1px solid var(--cavunet-line, #111111) !important;
  background: transparent;
  padding: 2px 4px;
  border-radius: 0;
  width: 220px !important;
  max-width: 220px !important;
  min-width: 220px !important;
  box-sizing: border-box;
  transition: border-color 0.2s ease;
  margin-bottom: 1px;
}

.cavunet-search-form:focus-within {
  width: 220px !important;
  border-bottom-color: var(--cavunet-line, #111111) !important;
}

.cavunet-search-input {
  border: none !important;
  outline: none !important;
  background: transparent !important;
  font-family: inherit;
  font-size: 11.5px;
  padding: 2px 4px;
  width: 100%;
  color: var(--cavunet-black);
  box-sizing: border-box;
}

.cavunet-search-input::placeholder {
  color: var(--cavunet-gray-muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cavunet-search-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cavunet-black);
}

.cavunet-search-btn svg {
  stroke: var(--cavunet-black);
  width: 13px;
  height: 13px;
}

/* Theme Toggle Button: exhibitions preserved와 동일한 12px 라운드 캡슐 알약 디자인 */
.cavunet-theme-toggle-btn {
  background: var(--cavunet-badge-bg, #ffffff);
  border: 1px solid var(--cavunet-line, #111111);
  border-radius: 12px;
  padding: 1px 8px;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.25;
  transition: all 0.25s ease;
  color: var(--cavunet-black, #111111);
  margin-left: 2px;
  margin-bottom: 2px;
  align-self: flex-end;
  user-select: none;
  box-sizing: border-box;
}

.cavunet-theme-toggle-btn:hover {
  border-color: var(--cavunet-black, #111111);
  transform: translateY(-1px);
}

.cavunet-theme-toggle-btn * {
  pointer-events: none;
}

/* 상단 배너 투명 배경 (요청 2: 상단 배너 배경을 100% 투명으로 설정) */
.cavunet-header-center-banner,
.cavunet-exhibition-slider-box,
.cavunet-marquee-box,
.cavunet-capsule-box,
.cavunet-live-ticker-box,
.cavunet-quote-card,
.cavunet-quote-container {
  background: transparent !important;
  background-color: transparent !important;
}

/* ==========================================
   Black/Dark Theme Overrides (검정 테마 설정 - 본문 텍스트 및 전역 라인 완전 색반전)
   ========================================== */
html.cavunet-dark-theme,
body.cavunet-dark-theme {
  background-color: #111111 !important;
  color: #ffffff !important;
  --cavunet-line: #444444;
  --cavunet-black: #ffffff;
  --cavunet-bg: #111111;
  --cavunet-gray-dark: #cccccc;
  --cavunet-gray-muted: #888888;
}

html.cavunet-dark-theme body,
body.cavunet-dark-theme .cavunet-site-wrapper,
body.cavunet-dark-theme .cavunet-page-container,
body.cavunet-dark-theme .cavunet-single-product,
body.cavunet-dark-theme .cavunet-sidebar-box {
  background-color: #111111 !important;
  color: #ffffff !important;
}

/* 헤더 & 로고 & 네비게이션 다크 모드 */
body.cavunet-dark-theme .cavunet-header,
html.cavunet-dark-theme .cavunet-header {
  background-color: transparent !important;
}
body.cavunet-dark-theme .cavunet-brand-logo,
body.cavunet-dark-theme .cavunet-nav-menu a,
body.cavunet-dark-theme .cavunet-footer-brand,
body.cavunet-dark-theme .cavunet-footer-copy,
body.cavunet-dark-theme .cavunet-footer-policy a,
body.cavunet-dark-theme .cavunet-footer-instagram a {
  color: #ffffff !important;
}

/* 검색창 다크 모드 */
body.cavunet-dark-theme .cavunet-search-form {
  border-color: #555555 !important;
}
body.cavunet-dark-theme .cavunet-search-input {
  color: #ffffff !important;
}
body.cavunet-dark-theme .cavunet-search-btn svg {
  stroke: #ffffff !important;
}

/* 테마 토글 버튼 다크 모드 */
body.cavunet-dark-theme .cavunet-theme-toggle-btn,
html.cavunet-dark-theme .cavunet-theme-toggle-btn {
  border-color: rgba(255, 255, 255, 0.25) !important;
  color: #ffffff !important;
  background-color: #000000 !important;
}

body.cavunet-dark-theme .cavunet-theme-toggle-btn:hover,
html.cavunet-dark-theme .cavunet-theme-toggle-btn:hover {
  border-color: #ffffff !important;
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.3) !important;
}

/* 전시 목록 테이블 다크 모드 라인 & 텍스트 */
body.cavunet-dark-theme .cavunet-table-container {
  border-top-color: #555555 !important;
}
body.cavunet-dark-theme .cavunet-books-table tr {
  border-bottom-color: #333333 !important;
}
body.cavunet-dark-theme .cavunet-books-table th {
  color: #888888 !important;
}
body.cavunet-dark-theme .cavunet-books-table td,
body.cavunet-dark-theme .cavunet-books-table td a,
body.cavunet-dark-theme .cavunet-books-table td span,
body.cavunet-dark-theme .cavunet-books-table td strong {
  color: #e0e0e0 !important;
}

/* 본문(Single Post) 상세 정보 및 3분할 전역 라인 색반전 */
body.cavunet-dark-theme .cavunet-breadcrumb {
  color: #aaaaaa !important;
}
body.cavunet-dark-theme .cavunet-product-top-bar {
  border-top-color: #555555 !important;
  border-bottom-color: #444444 !important;
}
body.cavunet-dark-theme .cavunet-product-title-sm {
  border-left-color: #ffffff !important;
  color: #ffffff !important;
}
body.cavunet-dark-theme .cavunet-product-price-box > span,
body.cavunet-dark-theme .cavunet-product-price-box > div {
  border-left-color: #444444 !important;
  border-right-color: #444444 !important;
  color: #ffffff !important;
}
body.cavunet-dark-theme .cavunet-regular-price {
  color: #777777 !important;
}
body.cavunet-dark-theme .cavunet-sale-price {
  color: #ffffff !important;
}

/* 3분할 세로 구분 라인 색반전 */
body.cavunet-dark-theme .cavunet-col-featured-image,
body.cavunet-dark-theme .cavunet-col-spec-info {
  border-right-color: #444444 !important;
}

/* 전시 스펙 테이블 다크 모드 색반전 */
body.cavunet-dark-theme .cavunet-spec-table {
  border-top-color: #555555 !important;
  border-bottom-color: #555555 !important;
}
body.cavunet-dark-theme .cavunet-spec-table tr {
  border-bottom-color: #333333 !important;
}
body.cavunet-dark-theme .cavunet-spec-table tr:last-child {
  border-bottom-color: #555555 !important;
}
body.cavunet-dark-theme .cavunet-spec-table th {
  color: #ffffff !important;
}
body.cavunet-dark-theme .cavunet-spec-table td {
  color: #cccccc !important;
}

/* 아코디언 & 관리코드 점선 다크 모드 색반전 */
body.cavunet-dark-theme .cavunet-accordion-item {
  border-bottom-color: #444444 !important;
}
body.cavunet-dark-theme .cavunet-accordion-header {
  color: #ffffff !important;
}
body.cavunet-dark-theme .cavunet-accordion-body,
body.cavunet-dark-theme .cavunet-accordion-body p {
  color: #bbbbbb !important;
}
body.cavunet-dark-theme .cavunet-mgmt-dotted-line {
  border-bottom-color: #444444 !important;
}

/* ============================================================
   [요청 반영] Dark Mode: BODY IMAGE GRID, CONTEMPLATION MODES, 
   MANAGEMENT CODE, DATA PROVIDER, COPYRIGHT NOTICE 구역 완벽 배경/텍스트 반전
   ============================================================ */

/* 1. 관리 코드, 자료 제공자, 저작권 안내 블록 다크 모드 (퓨어 블랙 #000000 배경) */
html.cavunet-dark-theme .cavunet-block-dynamic-box,
body.cavunet-dark-theme .cavunet-block-dynamic-box,
.cavunet-dark-theme .cavunet-block-dynamic-box {
  background-color: #000000 !important;
  border: 1px solid #333333 !important;
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-block-dynamic-box:hover,
body.cavunet-dark-theme .cavunet-block-dynamic-box:hover,
.cavunet-dark-theme .cavunet-block-dynamic-box:hover {
  background-color: #111111 !important;
  border-color: #555555 !important;
}

html.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-label,
body.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-label,
.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-label,
.cavunet-dark-theme .cavunet-block-label {
  color: #888888 !important;
}

html.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-value,
body.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-value,
.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-value,
.cavunet-dark-theme .cavunet-block-value {
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-text,
body.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-text,
.cavunet-dark-theme .cavunet-block-dynamic-box .cavunet-block-text {
  color: #cccccc !important;
}

/* 2. BODY IMAGE GRID LAYOUT 컨테이너 및 1/2/3열 버튼 다크 모드 (퓨어 블랙 #000000 배경) */
html.cavunet-dark-theme .cavunet-image-layout-container,
body.cavunet-dark-theme .cavunet-image-layout-container,
.cavunet-dark-theme .cavunet-image-layout-container {
  background-color: #000000 !important;
  border: 1px solid #333333 !important;
}

html.cavunet-dark-theme .cavunet-image-layout-title,
body.cavunet-dark-theme .cavunet-image-layout-title,
.cavunet-dark-theme .cavunet-image-layout-title {
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-image-layout-dot,
body.cavunet-dark-theme .cavunet-image-layout-dot,
.cavunet-dark-theme .cavunet-image-layout-dot {
  background-color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-layout-btn,
body.cavunet-dark-theme .cavunet-layout-btn,
.cavunet-dark-theme .cavunet-layout-btn {
  background-color: #111111 !important;
  border: 1px solid #444444 !important;
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-layout-btn:hover,
body.cavunet-dark-theme .cavunet-layout-btn:hover,
.cavunet-dark-theme .cavunet-layout-btn:hover {
  background-color: #222222 !important;
  border-color: #777777 !important;
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-layout-btn.active,
body.cavunet-dark-theme .cavunet-layout-btn.active,
.cavunet-dark-theme .cavunet-layout-btn.active {
  background-color: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;
}

/* 3. EXHIBITION CONTEMPLATION MODES 컨테이너 및 감상 버튼 다크 모드 (퓨어 블랙 #000000 배경) */
html.cavunet-dark-theme .cavunet-view-actions-container,
body.cavunet-dark-theme .cavunet-view-actions-container,
.cavunet-dark-theme .cavunet-view-actions-container {
  background-color: #000000 !important;
  border: 1px solid #333333 !important;
}

html.cavunet-dark-theme .cavunet-view-actions-title,
body.cavunet-dark-theme .cavunet-view-actions-title,
.cavunet-dark-theme .cavunet-view-actions-title {
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-view-actions-dot,
body.cavunet-dark-theme .cavunet-view-actions-dot,
.cavunet-dark-theme .cavunet-view-actions-dot {
  background-color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-mode-btn,
body.cavunet-dark-theme .cavunet-mode-btn,
.cavunet-dark-theme .cavunet-mode-btn {
  background-color: #111111 !important;
  border: 1px solid #444444 !important;
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-mode-btn:hover,
body.cavunet-dark-theme .cavunet-mode-btn:hover,
.cavunet-dark-theme .cavunet-mode-btn:hover {
  background-color: #222222 !important;
  border-color: #777777 !important;
  color: #ffffff !important;
}

/* 푸터 다크 모드 스타일 */
html.cavunet-dark-theme .cavunet-footer,
body.cavunet-dark-theme .cavunet-footer {
  background-color: var(--cavunet-bg, #111111) !important;
  border-top-color: #444444 !important;
  color: #888888 !important;
}

/* 유틸리티 보더 클래스 색반전 */
body.cavunet-dark-theme .border-top-black,
body.cavunet-dark-theme .border-top-red,
body.cavunet-dark-theme .border-bottom-black,
body.cavunet-dark-theme .border-bottom-red,
body.cavunet-dark-theme .border-black,
body.cavunet-dark-theme .border-red {
  border-color: #444444 !important;
}

/* Today's Exhibition Widget Area (Top Left Aligned, 504px Wide, 80% Font Size, Borderless) */
.cavunet-quote-container {
  display: flex;
  justify-content: flex-start; /* 상단 좌측 정렬 */
  align-items: flex-start;
  padding: 15px 0 10px 0;
  width: 100%;
}

.cavunet-quote-card {
  width: 100%;
  max-width: 504px; /* 기존 720px의 70%인 504px로 축소 */
  text-align: left;
  line-height: 1.6;
  color: var(--cavunet-black);
  border: none !important; /* 모든 외곽 테두리 라인 제거 */
  padding: 10px 0;
  box-sizing: border-box;
  background-color: transparent;
}

/* Concept 1: Live Ticker Editorial Badge & Vertical 3D Flip Styles */
.cavunet-live-pulse-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background-color: var(--cavunet-red, #ff0000);
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7);
  animation: cavunetLivePulse 1.8s infinite cubic-bezier(0.66, 0, 0, 1);
  flex-shrink: 0;
}

@keyframes cavunetLivePulse {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7);
  }
  70% {
    box-shadow: 0 0 0 6px rgba(255, 0, 0, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 0, 0, 0);
  }
}

.cavunet-vertical-ticker-wrap {
  position: relative;
  height: 18px;
  overflow: hidden;
  perspective: 400px;
}

.cavunet-slide-item.cavunet-vertical-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transform: translateY(100%) rotateX(-20deg);
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.4s ease;
  pointer-events: none;
}

.cavunet-slide-item.cavunet-vertical-slide.active {
  opacity: 1;
  transform: translateY(0) rotateX(0deg);
  pointer-events: auto;
}

.cavunet-slide-item.cavunet-vertical-slide.exit-up {
  opacity: 0;
  transform: translateY(-100%) rotateX(20deg);
  pointer-events: none;
}

.cavunet-ticker-link {
  color: inherit;
  text-decoration: none;
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.cavunet-ticker-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 1px;
  background-color: var(--cavunet-red, #ff0000);
  transition: width 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

.cavunet-ticker-link:hover::after {
  width: 100%;
}

/* Concept 2: Gallery Wall Marquee Styles & Pause-on-Hover */
.cavunet-marquee-wrap {
  width: 100%;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
  mask-image: linear-gradient(to right, transparent 0%, black 8px, black calc(100% - 8px), transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8px, black calc(100% - 8px), transparent 100%);
}

.cavunet-marquee-track {
  display: inline-flex;
  animation: cavunetMarqueeScroll var(--cavunet-marquee-duration, 38s) linear infinite;
  will-change: transform;
}

.cavunet-marquee-wrap:hover .cavunet-marquee-track {
  animation-play-state: paused !important; /* 마우스 오버 시 일시정지 */
}

.cavunet-marquee-content {
  display: inline-flex;
  align-items: center;
}

.cavunet-marquee-item {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  padding-right: 28px;
}

.cavunet-marquee-sep {
  color: var(--cavunet-red, #ff0000);
  margin-right: 10px;
  font-weight: 700;
  letter-spacing: -1px;
}

.cavunet-marquee-link {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.cavunet-marquee-link:hover {
  color: var(--cavunet-red, #ff0000) !important;
}

@keyframes cavunetMarqueeScroll {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Concept 3: Museum Modern Capsule & Progress Bar Styles */
.cavunet-capsule-box {
  position: relative;
  padding-bottom: 2px;
}

.cavunet-banner-progress-container {
  width: 100%;
  height: 2px;
  background-color: rgba(200, 200, 200, 0.25);
  margin-top: 5px;
  border-radius: 1px;
  overflow: hidden;
  position: relative;
}

.cavunet-banner-progress-bar {
  width: 0%;
  height: 100%;
  background-color: var(--cavunet-red, #ff0000);
  transition: width 4.5s linear;
  will-change: width;
}

.cavunet-capsule-link {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.cavunet-capsule-link:hover {
  color: var(--cavunet-red, #ff0000) !important;
}

.cavunet-today-exhibition-label {
  font-size: 8.8px !important; /* 기존 11px의 80% */
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--cavunet-red, #ff0000);
  text-transform: uppercase;
}

.cavunet-quote-text {
  font-size: 12.8px !important; /* 기존 16px의 80% */
  font-weight: 600;
  line-height: 1.5;
  word-break: keep-all;
  margin-bottom: 6px;
}

.cavunet-quote-meta {
  font-size: 9.6px !important; /* 기존 12px의 80% */
  color: var(--cavunet-gray-muted);
  margin-bottom: 0;
}

.cavunet-quote-dots {
  display: flex;
  gap: 4px;
}

.cavunet-dot {
  width: 12px;
  height: 2px;
  background-color: #ddd;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.cavunet-dot.active {
  background-color: var(--cavunet-red);
}

/* Product Catalog Grid / Table View (전체화면 폭 및 1px 블랙 라인 시스템) */
.cavunet-table-container {
  width: 100%;
  border-top: none !important; /* [요청 1 반영] 상단 헤더의 border-bottom과 중복되어 2px로 두껍게 보이는 현상 원천 차단 */
  border-bottom: none !important; /* 바닥 중복 border-bottom을 제거하여 목록 행 사이 1px 줄 굵기와 100% 일치 */
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.cavunet-books-table {
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 11.5px;
  letter-spacing: -0.01em;
}

/* [요청 반영] 마우스 오버 시: 게시물 목록 전체(Full Row) 영역에 깔끔한 인터랙션 적용 (화면 이탈 및 가로 스크롤 방지) */
.cavunet-books-table tr {
  border-bottom: 1px solid var(--cavunet-line, #111111);
  position: relative;
  z-index: 1;
  transition: background-color 0.18s cubic-bezier(0.16, 1, 0.3, 1), color 0.18s ease;
}

/* [요청 1 반영] 마지막 행의 테두리를 제거하여 푸터 상단 라인과 겹쳐서 두껍게 보이는 현상 차단 */
.cavunet-books-table tr:last-child {
  border-bottom: none !important;
}

/* 좌측 세로선 제거 */
.cavunet-books-table tr.cavunet-table-row::before {
  display: none !important;
}

.cavunet-books-table tr td,
.cavunet-books-table tr a,
.cavunet-books-table tr span,
.cavunet-books-table tr strong {
  transition: color 0.18s ease;
}

/* 마우스 오버 시: 전체 행(Full Row) 배경 및 텍스트 전환 (화면 밖으로 튀어나가지 않음) */
.cavunet-books-table tr.cavunet-table-row:hover,
.cavunet-books-table tr.cavunet-table-row.is-hovered-row {
  cursor: pointer;
  position: relative;
  z-index: 100 !important;
  transform: none !important;
  box-shadow: none !important;
}

.cavunet-books-table tr.cavunet-table-row:hover .col-title,
.cavunet-books-table tr.cavunet-table-row:hover .col-project_title,
.cavunet-books-table tr.cavunet-table-row.is-hovered-row .col-title,
.cavunet-books-table tr.cavunet-table-row.is-hovered-row .col-project_title {
  transform: none !important;
}

.cavunet-books-table tr.cavunet-table-row:hover .buy-btn,
.cavunet-books-table tr.cavunet-table-row:hover .cavunet-badge,
.cavunet-books-table tr.cavunet-table-row.is-hovered-row .buy-btn,
.cavunet-books-table tr.cavunet-table-row.is-hovered-row .cavunet-badge {
  transform: none !important;
  box-shadow: none !important;
}

/* Dark Theme Support */
body.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row:hover,
body.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row.is-hovered-row {
  box-shadow: none !important;
}

/* [요청 4 반영] 전시 목록 행 높이 슬림 축소 (22px) - 메뉴 선반 칸 높이와 100% 동일하게 일치 */
.cavunet-books-table tr.cavunet-table-row,
.cavunet-books-table tr {
  height: 22px !important;
  max-height: 22px !important;
  box-sizing: border-box !important;
}

.cavunet-books-table td, 
.cavunet-books-table th {
  height: 22px !important;
  max-height: 22px !important;
  padding: 2px 10px !important;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
  font-size: 10.5px;
  line-height: 1.25 !important;
  box-sizing: border-box !important;
  color: var(--cavunet-black, #111111);
}

.cavunet-books-table td:first-child,
.cavunet-books-table th:first-child {
  padding-left: var(--cavunet-gutter, 32px) !important;
}

.cavunet-books-table td:last-child,
.cavunet-books-table th:last-child {
  padding-right: var(--cavunet-gutter, 32px) !important;
}

/* 1. 카테고리 / 관리 코드 (모노스페이스 10px) */
.col-cat,
.col-mgmt_code,
.cavunet-books-table td.col-cat,
.cavunet-books-table td.col-mgmt_code {
  font-family: 'Space Mono', 'Courier New', monospace !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: var(--cavunet-gray-muted, #888888) !important;
  width: 65px;
}

/* 2. [요청 반영] 전시 제목 (고전 서적 풍의 품격 있는 필기체/이탤릭 세리프 명조 서체 & 11.5px로 축소) */
.col-title,
.col-project_title,
.col-name,
.cavunet-books-table td.col-title,
.cavunet-books-table td.col-project_title,
.cavunet-books-table td.col-first-title,
.cavunet-books-table td.col-first-title .cavunet-row-title-text {
  position: relative !important;
  font-family: 'Cormorant Garamond', 'Noto Serif KR', 'Nanum Myeongjo', 'Batang', 'Gungsuh', serif !important;
  font-style: italic !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  color: var(--cavunet-black, #111111) !important;
  min-width: 230px;
  padding-right: 30px !important;
  line-height: 1.3 !important;
}

body.cavunet-dark-theme .col-title,
body.cavunet-dark-theme .col-project_title,
body.cavunet-dark-theme .col-name,
body.cavunet-dark-theme .cavunet-books-table td.col-title,
body.cavunet-dark-theme .cavunet-books-table td.col-project_title,
body.cavunet-dark-theme .cavunet-books-table td.col-first-title,
body.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-text,
html.cavunet-dark-theme .col-title,
html.cavunet-dark-theme .col-project_title,
html.cavunet-dark-theme .col-name,
html.cavunet-dark-theme .cavunet-books-table td.col-title,
html.cavunet-dark-theme .cavunet-books-table td.col-project_title,
html.cavunet-dark-theme .cavunet-books-table td.col-first-title,
html.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-text {
  color: #ffffff !important;
}

.cavunet-books-table td.col-first-title .cavunet-row-title-text,
.cavunet-row-title-text {
  display: inline-block;
  vertical-align: middle;
}

/* [요청 2 반영] 전시명 구역의 가장 오른쪽에 정확히 고정된 세로 라인 */
.cavunet-books-table td.col-first-title .cavunet-row-title-sep,
.cavunet-row-title-sep {
  position: absolute;
  right: 0 !important;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background-color: var(--cavunet-line, #111111);
  opacity: 0.35;
  pointer-events: none;
}
body.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-sep,
body.cavunet-dark-theme .cavunet-row-title-sep,
html.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-sep,
html.cavunet-dark-theme .cavunet-row-title-sep {
  background-color: #ffffff !important;
  opacity: 0.35;
}

/* [기획과 국가 사이 세로 구분선: 상단 그리드 2번 세로선과 100% 일치] */
.cavunet-books-table td.col-publisher {
  position: relative !important;
}

.cavunet-books-table td.col-country {
  position: relative !important;
  overflow: visible !important;
  padding-left: 18px !important;
}

.cavunet-books-table td.col-publisher .cavunet-row-country-sep {
  position: absolute;
  right: 0 !important;
  left: auto !important;
  margin: 0 !important;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background-color: var(--cavunet-line, #111111);
  opacity: 0.35;
  pointer-events: none;
  z-index: 2;
}

.cavunet-books-table td.col-country .cavunet-row-country-sep,
.cavunet-row-country-sep {
  position: absolute;
  left: 0 !important;
  right: auto !important;
  margin-left: -1px !important;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background-color: var(--cavunet-line, #111111);
  opacity: 0.35;
  pointer-events: none;
  z-index: 2;
}

body.cavunet-dark-theme .cavunet-books-table .cavunet-row-country-sep,
body.cavunet-dark-theme .cavunet-row-country-sep,
html.cavunet-dark-theme .cavunet-books-table .cavunet-row-country-sep,
html.cavunet-dark-theme .cavunet-row-country-sep {
  background-color: #ffffff !important;
  opacity: 0.35;
}

/* [그리드 동기화] 상단 3열 그리드와 전시 목록 테이블 열 폭 일체화 */
.cavunet-books-table td,
.cavunet-books-table th {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

.cavunet-books-table td.col-first-title,
.cavunet-books-table th.col-first-title {
  width: var(--cavunet-grid-col1-width, 40.7%) !important;
  max-width: var(--cavunet-grid-col1-width, 40.7%) !important;
  box-sizing: border-box !important;
}

.cavunet-books-table td.col-author,
.cavunet-books-table th.col-author {
  width: 7% !important;
}

.cavunet-books-table td.col-year,
.cavunet-books-table th.col-year {
  width: 4.5% !important;
}

.cavunet-books-table td.col-pages,
.cavunet-books-table th.col-pages {
  width: 9% !important;
}

/* [요청 1 반영] '기획' 표시 위치를 열 2 끝(오른쪽 세로선 바로 앞)으로 배치 */
.cavunet-books-table td.col-publisher,
.cavunet-books-table th.col-publisher {
  width: 9% !important;
  text-align: right !important;
  padding-right: 14px !important;
  position: relative !important;
}

.cavunet-books-table td.col-country,
.cavunet-books-table th.col-country {
  width: 7.5% !important;
  position: relative !important;
  padding-left: 16px !important;
}

.cavunet-books-table td.col-city,
.cavunet-books-table th.col-city {
  width: 5% !important;
}

/* [요청 1 반영] '공간' 표시 위치를 열 3 끝(오른쪽 끝)으로 이동하고, 전시제목 앞의 비어있는 구역(gutter) 넓이와 동일하게 일치 */
.cavunet-books-table td.col-dimensions,
.cavunet-books-table th.col-dimensions {
  width: 17.3% !important;
  text-align: right !important;
  padding-right: var(--cavunet-gutter, 32px) !important;
}

/* 3. [요청 반영] 전시 작가, 기획, 장소, 국가, 도시, 장르, 자료제공자 (10.5px 정갈한 레귤러) */
.col-author,
.col-publisher,
.col-dimensions,
.col-country,
.col-city,
.col-category,
.col-genre,
.col-binding,
.col-data_provider,
.cavunet-books-table td.col-author,
.cavunet-books-table td.col-publisher,
.cavunet-books-table td.col-dimensions,
.cavunet-books-table td.col-country,
.cavunet-books-table td.col-city,
.cavunet-books-table td.col-category,
.cavunet-books-table td.col-genre,
.cavunet-books-table td.col-binding,
.cavunet-books-table td.col-data_provider {
  font-size: 10.5px !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
  color: #444444 !important;
  min-width: 80px;
}

body.cavunet-dark-theme .col-author,
body.cavunet-dark-theme .col-publisher,
body.cavunet-dark-theme .col-dimensions,
body.cavunet-dark-theme .col-country,
body.cavunet-dark-theme .col-city,
body.cavunet-dark-theme .col-category,
body.cavunet-dark-theme .col-genre,
body.cavunet-dark-theme .col-binding,
body.cavunet-dark-theme .col-data_provider,
body.cavunet-dark-theme .cavunet-books-table td.col-author,
body.cavunet-dark-theme .cavunet-books-table td.col-publisher,
body.cavunet-dark-theme .cavunet-books-table td.col-dimensions,
body.cavunet-dark-theme .cavunet-books-table td.col-country,
body.cavunet-dark-theme .cavunet-books-table td.col-city,
body.cavunet-dark-theme .cavunet-books-table td.col-category,
body.cavunet-dark-theme .cavunet-books-table td.col-genre,
body.cavunet-dark-theme .cavunet-books-table td.col-binding,
body.cavunet-dark-theme .cavunet-books-table td.col-data_provider,
html.cavunet-dark-theme .col-author,
html.cavunet-dark-theme .col-publisher,
html.cavunet-dark-theme .col-dimensions,
html.cavunet-dark-theme .col-country,
html.cavunet-dark-theme .col-city,
html.cavunet-dark-theme .col-category,
html.cavunet-dark-theme .col-genre,
html.cavunet-dark-theme .col-binding,
html.cavunet-dark-theme .col-data_provider,
html.cavunet-dark-theme .cavunet-books-table td.col-author,
html.cavunet-dark-theme .cavunet-books-table td.col-publisher,
html.cavunet-dark-theme .cavunet-books-table td.col-dimensions,
html.cavunet-dark-theme .cavunet-books-table td.col-country,
html.cavunet-dark-theme .cavunet-books-table td.col-city,
html.cavunet-dark-theme .cavunet-books-table td.col-category,
html.cavunet-dark-theme .cavunet-books-table td.col-genre,
html.cavunet-dark-theme .cavunet-books-table td.col-binding,
html.cavunet-dark-theme .cavunet-books-table td.col-data_provider {
  color: #e4e4e7 !important;
}

/* 4. [요청 반영] 연도 / 전시 기간 / 날짜 (모노스페이스 10.5px Medium, 자간 0.02em) */
.col-year,
.col-pages,
.col-period,
.col-date,
.col-dates,
.cavunet-books-table td.col-year,
.cavunet-books-table td.col-pages,
.cavunet-books-table td.col-period,
.cavunet-books-table td.col-date,
.cavunet-books-table td.col-dates {
  font-family: 'Space Mono', 'Courier New', monospace !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  color: #555555 !important;
  width: 85px;
}

body.cavunet-dark-theme .col-year,
body.cavunet-dark-theme .col-pages,
body.cavunet-dark-theme .col-period,
body.cavunet-dark-theme .col-date,
body.cavunet-dark-theme .col-dates,
body.cavunet-dark-theme .cavunet-books-table td.col-year,
body.cavunet-dark-theme .cavunet-books-table td.col-pages,
body.cavunet-dark-theme .cavunet-books-table td.col-period,
body.cavunet-dark-theme .cavunet-books-table td.col-date,
body.cavunet-dark-theme .cavunet-books-table td.col-dates,
html.cavunet-dark-theme .col-year,
html.cavunet-dark-theme .col-pages,
html.cavunet-dark-theme .col-period,
html.cavunet-dark-theme .col-date,
html.cavunet-dark-theme .col-dates,
html.cavunet-dark-theme .cavunet-books-table td.col-year,
html.cavunet-dark-theme .cavunet-books-table td.col-pages,
html.cavunet-dark-theme .cavunet-books-table td.col-period,
html.cavunet-dark-theme .cavunet-books-table td.col-date,
html.cavunet-dark-theme .cavunet-books-table td.col-dates {
  color: #a1a1aa !important;
}

/* [요청 1 & 3 반영] Exhibition 분류 열 및 [보기] 버튼 열 완전 숨김 */
.col-cat,
.col-buy,
.col-action,
.cavunet-books-table td.col-cat,
.cavunet-books-table td.col-buy,
.cavunet-books-table th.col-cat,
.cavunet-books-table th.col-buy {
  display: none !important;
}

.cavunet-buy-btn:hover {
  background-color: var(--cavunet-red);
  color: #fff;
}

.cavunet-buy-btn-disabled {
  display: inline-block;
  padding: 4px 10px;
  background-color: #eee;
  color: #aaa;
  border-radius: 2px;
  font-size: 11px;
  cursor: not-allowed;
}

.cavunet-load-more-container {
  padding: 20px 0;
  text-align: left;
}

.cavunet-load-more-btn {
  font-size: 13px;
  font-weight: 700;
  color: var(--cavunet-red);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Hover Floating Image Preview Overlay */
#cavunet-hover-preview {
  position: fixed;
  pointer-events: none;
  z-index: 50 !important; /* 마우스 오버된 행(z-index: 100)의 뒤, 일반 행들(z-index: 1) 보다는 위에 배치 */
  display: none;
  /* 너비/높이는 워드프레스 커스터마이저(외모 > 사용자 지정 > 목록 팝업 이미지 크기 설정)에서 제어됩니다.
     기본값: width 220px, height 300px — JS(hover-preview.js)로 동적 적용됩니다. */
  width: 220px;
  height: 300px;
  max-height: 800px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.22), 0 2px 6px rgba(0,0,0,0.08);
  border: 1px solid var(--cavunet-black);
  background-color: #ffffff;
  overflow: hidden;
  opacity: 0;
  transform: translateY(6px) scale(0.98);
  transition: opacity 0.22s ease-out, transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

#cavunet-hover-preview.is-visible {
  opacity: 1;
  transform: translateY(0px) scale(1);
}

#cavunet-hover-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Single Product Detail Page (풀와이드 3분할 레이아웃) */
.cavunet-single-product {
  width: 100%;
  max-width: 100%;
  padding-top: 0 !important;
  margin-bottom: 40px;
}

.cavunet-breadcrumb {
  display: none !important;
}

/* [요청 3 반영] 본문과 상단 사이 [| 전시제목, ARCHIVE RECORD] 구역 완전 제거 */
.cavunet-product-top-bar {
  display: none !important;
}

/* [요청 2 반영] 본문 3분할 전체화면 폭 구역 설정: 상단 그리드 헤더 열 너비와 100% 일치
   - 1분할: 대표이미지 (--cavunet-grid-col1-width)
   - 2분할: 전시 정보 스펙 표 (--cavunet-grid-col2-width)
   - 3분할: 전시 서문 / 개요 (--cavunet-grid-col3-width)
   - 2분할과 3분할 사이의 세로 점선이 상단 그리드 2번 세로선과 완벽 일치 */
.cavunet-product-top-section,
.cavunet-product-layout,
.cavunet-3col-layout {
  display: grid !important;
  grid-template-columns: var(--cavunet-grid-col1-width, 40.7%) var(--cavunet-grid-col2-width, 29.5%) var(--cavunet-grid-col3-width, 29.8%) !important;
  gap: 0 !important;
  align-items: stretch;
  width: 100% !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  margin-bottom: 50px;
}

.cavunet-page-container {
  width: 100%;
  padding: 0 var(--cavunet-gutter, 32px);
  box-sizing: border-box;
}

/* 1분할 (좌측): 대표이미지 구역 [요청 1, 2 반영] 상단 28px 여백 및 우측 세로 점선(상단 세로선 1과 100% 일치) */
.cavunet-col-featured-image,
.cavunet-featured-image-container {
  width: 100%;
  padding-top: 28px !important;
  padding-left: var(--cavunet-gutter, 32px);
  padding-right: 24px;
  border-right: 1px dotted var(--cavunet-line, #111111) !important;
  border-left: none !important;
  box-sizing: border-box;
}

/* 2분할 (중앙): 전시 정보 스펙 표 구역 [요청 1, 2 반영] 상단 28px 여백 및 우측 세로 점선(상단 세로선 2와 100% 일치) */
.cavunet-col-spec-info {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding-top: 28px !important;
  padding-left: 20px;
  padding-right: 20px;
  border-left: none !important;
  border-right: 1px dotted var(--cavunet-line, #111111) !important;
  box-sizing: border-box;
}

/* 3분할 (우측): [요청 1, 2 반영] 전시 서문 & 개요 구역 (상단 28px 여백) */
.cavunet-col-intro-sidebar,
.cavunet-product-sidebar {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding-top: 28px !important;
  padding-left: 20px;
  padding-right: var(--cavunet-gutter, 32px);
  border-left: none !important;
  border-right: none !important;
  box-sizing: border-box;
}

.cavunet-sidebar-color-blocks {
  margin-top: auto !important;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1100px) {
  .cavunet-product-top-section,
  .cavunet-product-layout,
  .cavunet-3col-layout {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .cavunet-col-intro-sidebar,
  .cavunet-product-sidebar {
    grid-column: span 2;
    border-left: none;
    border-top: 1px dotted var(--cavunet-line, #111111);
    padding-left: 0;
    padding-top: 20px;
  }
}

@media (max-width: 768px) {
  .cavunet-product-top-section,
  .cavunet-product-layout,
  .cavunet-3col-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .cavunet-col-featured-image,
  .cavunet-col-spec-info,
  .cavunet-col-intro-sidebar,
  .cavunet-product-sidebar {
    border-left: none;
    border-right: none;
    border-top: 1px dotted var(--cavunet-line, #111111);
    padding-left: 0;
    padding-top: 16px;
  }
}

/* Spec Table: 상/하단 1px 실선 + 행 사이 1px 블랙 점선 */
.cavunet-spec-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--cavunet-line, #111111) !important;
  border-bottom: 1px solid var(--cavunet-line, #111111) !important;
  font-size: 11.5px;
  margin-bottom: 24px;
}

.cavunet-spec-table tr {
  border-bottom: 1px dotted var(--cavunet-line, #111111) !important; /* 각 행 간 가로 블랙 점선 */
}

.cavunet-spec-table tr:last-child {
  border-bottom: 1px solid var(--cavunet-line, #111111) !important; /* 마지막 행(관리 코드) 하단 블랙 실선 */
}

.cavunet-spec-table th {
  text-align: left;
  padding: 6px 4px;
  width: 110px;
  font-weight: 700;
  color: var(--cavunet-black);
}

.cavunet-spec-table td {
  padding: 6px 4px;
  color: var(--cavunet-black);
}

/* 전시 스펙 표 내의 모든 태그 & 링크 (점선 줄 없음, 배경색/버튼 없음, 원래 폰트 색상 및 텍스트 표시, 링크 정상 작동) */
.cavunet-spec-table a,
.cavunet-clean-spec-link,
.cavunet-smart-spec-link,
.cavunet-artist-link,
.cavunet-venue-link {
  color: inherit !important;
  text-decoration: none !important;
  border-bottom: none !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  display: inline !important;
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.cavunet-spec-table a:hover,
.cavunet-clean-spec-link:hover,
.cavunet-smart-spec-link:hover,
.cavunet-artist-link:hover,
.cavunet-venue-link:hover {
  opacity: 0.65;
  text-decoration: none !important;
  border-bottom: none !important;
}

body.cavunet-dark-theme .cavunet-spec-table a,
body.cavunet-dark-theme .cavunet-clean-spec-link,
body.cavunet-dark-theme .cavunet-smart-spec-link {
  color: inherit !important;
  border-bottom: none !important;
}

/* [신규 기능] 전시 진행 상태 뱃지 (Exhibition Progress Status Badge) */
.cavunet-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.4px;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
}

.cavunet-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
}

.cavunet-badge.status-ongoing {
  background: rgba(0, 240, 255, 0.12);
  color: #0088cc;
  border: 1px solid #00f0ff;
  box-shadow: 0 0 6px rgba(0, 240, 255, 0.35);
}

.cavunet-badge.status-ongoing .cavunet-status-dot {
  background: #00f0ff;
  box-shadow: 0 0 5px #00f0ff;
  animation: cavunetPulsingDot 2s infinite ease-in-out;
}

.cavunet-badge.status-upcoming {
  background: rgba(255, 140, 0, 0.12);
  color: #d97706;
  border: 1px solid #ff8c00;
}

.cavunet-badge.status-upcoming .cavunet-status-dot {
  background: #ff8c00;
}

.cavunet-badge.status-archived {
  background: #ffffff;
  color: var(--cavunet-black, #111111);
  border: 1px solid var(--cavunet-line, #111111);
}

.cavunet-badge.status-archived .cavunet-status-dot {
  background: var(--cavunet-black, #111111);
}

body.cavunet-dark-theme .cavunet-badge.status-ongoing {
  color: #00f0ff;
}

body.cavunet-dark-theme .cavunet-badge.status-upcoming {
  color: #ffaa00;
}

body.cavunet-dark-theme .cavunet-badge.status-archived {
  background: #000000 !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

body.cavunet-dark-theme .cavunet-badge.status-archived .cavunet-status-dot {
  background: #ffffff !important;
}

@keyframes cavunetPulsingDot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.35); opacity: 0.6; }
}

/* Accordion System (전시 서문 / 개요 및 작가소개 - 블랙 점선 배치) */
.cavunet-accordion-container {
  margin-top: 0;
  border-top: none !important;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cavunet-accordion-item {
  border: none !important;
  border-bottom: 1px dotted var(--cavunet-line, #111111) !important; /* 전시 서문 하단 가로 블랙 점선 */
  border-radius: 0 !important;
  background-color: transparent !important;
  padding-bottom: 4px;
  margin-bottom: 4px;
}

body.cavunet-dark-theme .cavunet-accordion-item {
  border-bottom-color: #333333 !important;
  background-color: transparent !important;
}

.cavunet-accordion-header {
  width: 100%;
  background: transparent !important;
  border: none !important;
  outline: none;
  padding: 6px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--cavunet-black);
  cursor: pointer;
  text-align: left;
  transition: color 0.15s ease;
}

.cavunet-accordion-item.active .cavunet-accordion-header {
  border-bottom: none !important;
}

body.cavunet-dark-theme .cavunet-accordion-header {
  color: #ffffff;
}

.cavunet-accordion-header * {
  pointer-events: none;
}

.cavunet-accordion-header:hover {
  color: var(--cavunet-red, #ff0000);
}

.cavunet-accordion-icon {
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  color: var(--cavunet-red, #ff0000);
  transition: transform 0.2s ease;
  user-select: none;
}

/* Accordion Body Content Visibility Control */
.cavunet-accordion-body {
  display: none; /* 기본 숨김 상태 */
  padding: 6px 0 10px 0;
  font-size: 12px;
  line-height: 1.6;
  color: #333333;
  background-color: transparent !important;
}

body.cavunet-dark-theme .cavunet-accordion-body {
  color: #cccccc;
  background-color: transparent !important;
}

/* 관리 코드 하단 가로 점선 스타일 (블랙 점선) */
.cavunet-mgmt-dotted-line {
  width: 100%;
  height: 1px;
  border-bottom: 1px dotted var(--cavunet-line, #111111) !important;
  margin: 4px 0 8px 0;
}

/* Active State: active 클래스 존재 시 펼침 표시 */
.cavunet-accordion-item.active .cavunet-accordion-body {
  display: block !important; /* 클릭 시 내용 펼침 100% 보장 */
}

.cavunet-accordion-body p {
  margin: 0 0 10px 0;
}

.cavunet-accordion-body p:last-child {
  margin-bottom: 0;
}

.cavunet-main-featured-img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
  object-fit: cover;
  border-radius: 0;
}

/* 2. 중간 형광 녹색 관리 코드 바 (Neon Green Bar with Black Top/Bottom Lines & Centered Badge) */
.cavunet-mgmt-code-bar {
  width: 100%;
  background-color: #00ff66; /* 형광 녹색 배경 */
  border-top: 1px solid var(--cavunet-line, #111111); /* 위쪽 블랙 라인 */
  border-bottom: 1px solid var(--cavunet-line, #111111); /* 아래쪽 블랙 라인 */
  padding: 6px 0;
  display: flex;
  justify-content: center; /* 중앙 정렬 */
  align-items: center;
  margin: 30px 0 25px 0;
  box-sizing: border-box;
}

/* 4-Tier Editorial Neon Color Blocks (All Center Aligned & Fixed Colors) */
.cavunet-sidebar-color-blocks {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

/* Dynamic Box (5대 구역: 희미한 회색 배경 및 얇은 직선 테두리) */
.cavunet-block-dynamic-box {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  background-color: #f8f8f9;
  border: 1px solid rgba(0, 0, 0, 0.22);
  color: var(--cavunet-black, #111111);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  text-align: center;
  font-weight: 700;
  font-size: 13px;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.cavunet-block-dynamic-box:hover {
  transform: translateY(-1px);
}

.cavunet-block-dynamic-box .cavunet-block-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  opacity: 0.75;
  color: var(--cavunet-black, #111111);
}

.cavunet-block-dynamic-box .cavunet-block-value {
  font-family: 'Space Mono', monospace, sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-align: center;
  color: var(--cavunet-black, #111111);
}

.cavunet-block-dynamic-box .cavunet-block-text {
  font-family: 'Space Mono', monospace, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  margin: 0;
  text-align: center;
  color: var(--cavunet-black, #111111);
}

.cavunet-block-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1px;
  opacity: 0.85;
  text-transform: uppercase;
  text-align: center;
}

.cavunet-block-value {
  font-family: 'Space Mono', monospace, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-align: center;
}

/* 3. 하단 구역: 대표이미지 + 전시 정보 구역 아래에서부터 게시글 첨부 이미지 가로 100% 비율 출력 */
.cavunet-fullwidth-body-gallery {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 30px;
  padding-top: 30px;
  border-top: 1px solid var(--cavunet-red, #ff0000); /* 상단과 하단 구역 구분 빨간색 가로줄 복구 */
}

.cavunet-fullwidth-img-wrap {
  width: 100%;
}

.cavunet-fullwidth-img,
.cavunet-fullwidth-body-gallery img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
  object-fit: contain;
  border-radius: 2px;
}

.cavunet-product-sidebar {
  position: sticky;
  top: 20px;
}

.cavunet-spec-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--cavunet-red) !important;
  border-bottom: none !important;
  font-size: 11px;
  margin-bottom: 24px;
}

.cavunet-spec-table tr {
  border-bottom: 1px solid var(--cavunet-red) !important;
}

.cavunet-spec-table th {
  text-align: left;
  padding: 6px 0;
  width: 110px;
  font-weight: 700;
  color: var(--cavunet-black);
}

.cavunet-spec-table td {
  padding: 6px 0;
  color: var(--cavunet-black);
}

.cavunet-accordion-header {
  width: 100%;
  padding: 10px 0;
  background: none;
  border: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--cavunet-black);
  cursor: pointer;
}

.cavunet-accordion-icon {
  color: var(--cavunet-red);
  font-size: 14px;
  font-weight: 400;
}

.cavunet-accordion-body {
  padding: 0 0 16px 0;
  font-size: 11px;
  line-height: 1.7;
  color: var(--cavunet-black);
  word-break: keep-all;
  display: none;
}

.cavunet-accordion-item.active .cavunet-accordion-body {
  display: block;
}

/* WooCommerce Add to Cart Box */
.cavunet-add-to-cart-box {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--cavunet-line, #111111);
  display: flex;
  gap: 10px;
}

.cavunet-qty-input {
  width: 50px;
  border: 1px solid var(--cavunet-black);
  padding: 6px;
  text-align: center;
  font-size: 12px;
}

.cavunet-buy-btn {
  flex: 1;
  background-color: var(--cavunet-black);
  color: #ffffff;
  border: none;
  padding: 10px 20px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.cavunet-buy-btn:hover {
  background-color: var(--cavunet-accent-red, #e60000);
}

/* Post Main Content Container (상단 3분할 아래 본문 내용 및 이미지 출력 구역 - 요청 2) */
.cavunet-post-content-container {
  width: 100%;
  padding: 0 var(--cavunet-gutter, 32px);
  box-sizing: border-box;
  margin-top: 30px;
  margin-bottom: 60px;
}

.cavunet-post-content-divider {
  width: 100%;
  border-top: 1px solid var(--cavunet-line, #111111);
  margin-bottom: 35px;
}

.cavunet-post-body-content {
  width: 100%;
  font-size: 13.5px;
  line-height: 1.85;
  color: var(--cavunet-black);
  word-break: keep-all;
}

.cavunet-post-body-content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 30px 0;
}

.cavunet-post-body-content p {
  margin-bottom: 20px;
}

.cavunet-post-body-content h1,
.cavunet-post-body-content h2,
.cavunet-post-body-content h3,
.cavunet-post-body-content h4 {
  margin: 35px 0 15px 0;
  font-weight: 700;
  color: var(--cavunet-black);
}

.cavunet-post-body-content blockquote {
  border-left: 2px solid var(--cavunet-line, #111111);
  padding-left: 18px;
  margin: 25px 0;
  color: var(--cavunet-gray-muted);
  font-style: italic;
}

/* Footer Logo Styles (요청 3) */
.cavunet-footer-logo-wrap {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.cavunet-footer-logo-img {
  display: block;
  height: auto;
  vertical-align: middle;
}

body.cavunet-dark-theme .cavunet-footer-logo-img {
  filter: invert(1) brightness(1.2);
}

body.cavunet-dark-theme .cavunet-post-content-divider {
  border-top-color: #444444 !important;
}

body.cavunet-dark-theme .cavunet-post-body-content {
  color: #e0e0e0 !important;
}

body.cavunet-dark-theme .cavunet-post-body-content h1,
body.cavunet-dark-theme .cavunet-post-body-content h2,
body.cavunet-dark-theme .cavunet-post-body-content h3,
body.cavunet-dark-theme .cavunet-post-body-content h4 {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-post-body-content blockquote {
  border-left-color: #555555 !important;
  color: #aaaaaa !important;
}

/* Infinite Scroll Fade-In Animation & Sentinel Spinner */
@keyframes cavunetRowFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cavunet-row-fade-in {
  animation: cavunetRowFadeIn 0.35s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.cavunet-infinite-sentinel {
  width: 100%;
  height: 0;
  min-height: 0;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cavunet-infinite-spinner {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--cavunet-gray-muted);
  position: absolute;
  bottom: 6px;
  z-index: 50;
}

.cavunet-spinner-dot {
  width: 6px;
  height: 6px;
  background-color: var(--cavunet-red, #ff0000);
  border-radius: 50%;
  display: inline-block;
  animation: cavunetSpinPulse 1s infinite alternate ease-in-out;
}

@keyframes cavunetSpinPulse {
  0% { transform: scale(0.6); opacity: 0.4; }
  100% { transform: scale(1.3); opacity: 1; }
}

/* Footer: 상단 배너와 동일한 높이의 1줄 슬림 하단 고정 레이아웃 (일반 페이지 하단 고정 / 본문 열람시 스크롤 해제) */
.cavunet-footer {
  position: sticky;
  bottom: 0;
  z-index: 990;
  margin-top: auto;
  border-top: 1px solid var(--cavunet-line, #111111);
  background-color: var(--cavunet-bg, #ffffff);
  padding: var(--cavunet-banner-pad-v, 5px) var(--cavunet-gutter, 32px);
  font-size: 10px;
  color: var(--cavunet-black);
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  min-height: var(--cavunet-banner-min-h, 28px);
  line-height: 1;
}

.cavunet-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 14px;
  white-space: nowrap;
  line-height: 1;
}

.cavunet-footer-left {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 10px;
  line-height: 1;
}

.cavunet-footer-center {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
  flex: 1 1 auto;
  margin: 0 auto;
  font-size: 10px;
  line-height: 1;
}

.cavunet-footer-slogan {
  font-size: 10px;
  font-weight: 500;
  color: var(--cavunet-gray-muted, #777777);
  letter-spacing: 0.2px;
  line-height: 1;
}

body.cavunet-dark-theme .cavunet-footer-slogan,
html.cavunet-dark-theme .cavunet-footer-slogan {
  color: #aaaaaa !important;
}

.cavunet-footer-right {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 10px;
  line-height: 1;
}

.cavunet-footer-sep {
  display: none !important; /* [요청 2] 푸터에 있는 모든 '/' 표시 제거 */
}

.cavunet-footer-brand strong {
  font-weight: 700;
  font-size: 10px;
}

/* [요청 3 반영] 푸터 인스타그램의 폰트 및 폰트 크기를 TOP 버튼과 100% 동일하게 통일 */
.cavunet-footer-link,
.cavunet-footer-instagram-link,
.cavunet-footer-instagram a {
  color: inherit;
  text-decoration: none;
  font-family: inherit;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 4.5px;
  vertical-align: middle;
  transition: color 0.15s ease;
}

.cavunet-footer-instagram-icon {
  display: inline-block !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
  color: inherit !important;
  transition: color 0.15s ease, transform 0.15s ease !important;
}

.cavunet-footer-instagram-link:hover .cavunet-footer-instagram-icon {
  color: var(--cavunet-red) !important;
  transform: translateY(-0.5px);
}

.cavunet-footer-policy a {
  color: inherit;
  text-decoration: none;
  font-size: 10px;
  transition: color 0.15s ease;
  line-height: 1;
}

.cavunet-footer-link:hover,
.cavunet-footer-instagram-link:hover,
.cavunet-footer-policy a:hover {
  color: var(--cavunet-red);
}

.cavunet-back-to-top {
  width: auto;
  height: auto;
  border: none;
  background: none;
  color: inherit;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  padding: 0 1px;
  display: inline-flex;
  align-items: center;
  gap: 3.5px;
  line-height: 1;
  letter-spacing: 0.02em;
  vertical-align: middle;
  transition: color 0.15s ease;
}

.cavunet-footer-top-icon {
  display: inline-block !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
  color: inherit !important;
  transition: color 0.15s ease, transform 0.15s ease !important;
}

.cavunet-back-to-top:hover {
  color: var(--cavunet-red);
}

.cavunet-back-to-top:hover .cavunet-footer-top-icon {
  color: var(--cavunet-red) !important;
  transform: translateY(-1px);
}

@media (max-width: 900px) {
  .cavunet-footer-row {
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
  }
}

/* ============================================================
   CAVUNET — Archive View Switcher & Scroll Portrait Wall
   ============================================================ */

/* 1. Archive Header Toolbar */
.cavunet-archive-toolbar {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px var(--cavunet-gutter, 32px);
  box-sizing: border-box;
  border-top: 1px solid var(--cavunet-line, #111111);
  border-bottom: 1px solid var(--cavunet-line, #111111);
  background-color: var(--cavunet-bg, #ffffff);
  font-size: 11px;
  letter-spacing: 0.5px;
}

.cavunet-archive-toolbar-left {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--cavunet-black);
}

.cavunet-archive-toolbar-tag {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-weight: 700;
  font-size: 10px;
  color: var(--cavunet-red, #ff0000);
}

.cavunet-archive-toolbar-sep {
  color: var(--cavunet-gray-muted, #888888);
}

.cavunet-archive-toolbar-count {
  font-weight: 600;
  color: var(--cavunet-black);
}

/* View Mode Switcher Buttons (GALLERY / LIST: [요청 3 반영] 캡슐 네모 박스 테두리 제거) */
.cavunet-archive-view-switcher {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 0;
  border-radius: 0;
  border: none !important;
  background: transparent !important;
  line-height: 1.25;
  user-select: none;
  box-sizing: border-box;
  transition: all 0.25s ease;
}

body.cavunet-dark-theme .cavunet-archive-view-switcher,
html.cavunet-dark-theme .cavunet-archive-view-switcher {
  background-color: transparent !important;
  border-color: transparent !important;
}

.cavunet-view-btn {
  background: transparent;
  border: none;
  padding: 3px 8px;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--cavunet-black, #111111);
  border-radius: 9999px !important;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  line-height: 1;
  text-transform: uppercase;
  cursor: default !important;
}

.cavunet-view-btn-icon {
  display: none !important;
}

.cavunet-view-btn:hover {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-view-btn {
  color: #e4e4e7;
}

body.cavunet-dark-theme .cavunet-view-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

.cavunet-view-btn.active {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  font-weight: 700;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-view-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  font-weight: 700;
  border-radius: 9999px !important;
}

.cavunet-view-btn-sep {
  color: var(--cavunet-black, #111111);
  opacity: 0.25;
  font-size: 10px;
  padding: 0 1px;
}

body.cavunet-dark-theme .cavunet-view-btn-sep {
  color: #ffffff;
}

/* 2. Scroll Portrait Wall Layout */
/* [신규 기능] 갤러리 리스트 썸네일 열 밀도 (3개, 6개, 9개, 미니 15개+ 동적 변경) */
.cavunet-portrait-wall-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
  width: 100%;
  box-sizing: border-box;
}

/* 3열 보기 (Large View: 3개 per row) */
.cavunet-portrait-wall-grid.cols-3 {
  grid-template-columns: repeat(3, 1fr) !important;
}
.cavunet-portrait-wall-grid.cols-3 .cavunet-portrait-card {
  padding: 12px !important;
}

/* 6열 보기 (Standard View: 6개 per row - 기본) */
.cavunet-portrait-wall-grid.cols-6 {
  grid-template-columns: repeat(6, 1fr) !important;
}
.cavunet-portrait-wall-grid.cols-6 .cavunet-portrait-card {
  padding: 8px !important;
}

/* 9열 보기 (Dense View: 9개 per row) */
.cavunet-portrait-wall-grid.cols-9 {
  grid-template-columns: repeat(9, 1fr) !important;
}
.cavunet-portrait-wall-grid.cols-9 .cavunet-portrait-card {
  padding: 5px !important;
}

/* 미니 썸네일 보기 (Mini View: 15개 이상 per row) */
.cavunet-portrait-wall-grid.cols-mini {
  grid-template-columns: repeat(auto-fill, minmax(85px, 1fr)) !important;
}
@media (min-width: 1600px) {
  .cavunet-portrait-wall-grid.cols-mini {
    grid-template-columns: repeat(16, 1fr) !important;
  }
}
.cavunet-portrait-wall-grid.cols-mini .cavunet-portrait-card {
  padding: 2px !important;
}

@media (max-width: 1440px) {
  .cavunet-portrait-wall-grid:not([class*="cols-"]) {
    grid-template-columns: repeat(6, 1fr);
  }
  .cavunet-portrait-wall-grid.cols-9 {
    grid-template-columns: repeat(8, 1fr) !important;
  }
}
@media (max-width: 1200px) {
  .cavunet-portrait-wall-grid:not([class*="cols-"]) {
    grid-template-columns: repeat(4, 1fr);
  }
  .cavunet-portrait-wall-grid.cols-9 {
    grid-template-columns: repeat(6, 1fr) !important;
  }
}
@media (max-width: 860px) {
  .cavunet-portrait-wall-grid:not([class*="cols-"]) {
    grid-template-columns: repeat(3, 1fr);
  }
  .cavunet-portrait-wall-grid.cols-6,
  .cavunet-portrait-wall-grid.cols-9 {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}
@media (max-width: 580px) {
  .cavunet-portrait-wall-grid:not([class*="cols-"]),
  .cavunet-portrait-wall-grid.cols-3,
  .cavunet-portrait-wall-grid.cols-6,
  .cavunet-portrait-wall-grid.cols-9 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .cavunet-portrait-wall-grid.cols-mini {
    grid-template-columns: repeat(auto-fill, minmax(65px, 1fr)) !important;
  }
}

/* 갤러리 열 밀도 전환 컨트롤러 (COLUMNS: 3 · 6 · 9 · MINI: exhibitions preserved와 동일한 12px 캡슐 알약 디자인) */
.cavunet-density-switcher {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 11px;
  font-weight: 600;
  background: transparent;
  padding: 0;
  border-radius: 0 !important;
  border: none;
  line-height: 1;
  transition: all 0.18s ease;
  user-select: none;
  box-sizing: border-box;
}

body.cavunet-dark-theme .cavunet-density-switcher,
html.cavunet-dark-theme .cavunet-density-switcher {
  background-color: transparent !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

.cavunet-density-label {
  display: none !important;
}

.cavunet-density-btn {
  background: transparent;
  border: 1px solid transparent;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--cavunet-black, #111111);
  padding: 3px 5px;
  border-radius: 0 !important;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  line-height: 1;
}

.cavunet-density-btn:hover {
  background: rgba(0, 0, 0, 0.06);
  color: var(--cavunet-black, #111111);
}

body.cavunet-dark-theme .cavunet-density-btn {
  color: #e4e4e7;
}

body.cavunet-dark-theme .cavunet-density-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff !important;
}

.cavunet-density-btn.active {
  color: #ffffff !important;
  font-weight: 700;
  background-color: var(--cavunet-black, #111111) !important;
  border-radius: 0 !important;
}

body.cavunet-dark-theme .cavunet-density-btn.active {
  color: #000000 !important;
  background-color: #ffffff !important;
  font-weight: 700;
  border-radius: 0 !important;
}

.cavunet-density-sep {
  opacity: 0.25;
  font-size: 10px;
  color: var(--cavunet-black, #111111);
  padding: 0 1px;
}

body.cavunet-dark-theme .cavunet-density-sep {
  color: #ffffff;
}

.cavunet-portrait-card {
  position: relative;
  box-sizing: border-box;
  padding: 8px; /* [요청 4] 이미지와 카드 외곽선 간격 8px */
  border-right: 1px solid var(--cavunet-line, #111111);
  border-bottom: 1px solid var(--cavunet-line, #111111);
  border-left: none !important;
  border-top: none !important;
  background-color: var(--cavunet-bg, #ffffff);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  transition: background-color 0.25s ease, color 0.2s ease;
  cursor: pointer;
}

.cavunet-portrait-card * {
  transition: color 0.2s ease;
}

.cavunet-portrait-link {
  text-decoration: none;
  color: inherit;
  display: block;
  width: 100%;
  height: 100%;
}

.cavunet-portrait-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background-color: #f0f0f0;
  margin-bottom: 0;
  border: 1px solid var(--cavunet-line, #111111);
  display: block;
}

/* 이미지 줌/돌출 제거 (완전한 평면 유지) */
.cavunet-portrait-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Fallback card if no featured image */
.cavunet-portrait-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 14px;
  box-sizing: border-box;
  background: #fafafa;
}

.cavunet-portrait-fallback-logo {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 9px;
  font-weight: 700;
  color: inherit;
  opacity: 0.7;
}

/* Overlay & View Archive 링크 제거 */
.cavunet-portrait-overlay {
  display: none !important;
}

/* [요청 1, 2, 3 반영] 대표이미지 하단 부분에 제목만 출력 (이미지 색상에 대응하여 선명하게 보이는 지능형 그라디언트 & 텍스트 섀도우) */
.cavunet-portrait-title-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  padding: 24px 8px 8px 8px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.3) 60%, transparent 100%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
  pointer-events: none;
  z-index: 3;
}

.cavunet-portrait-title {
  margin: 0;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
  color: #ffffff !important;
  text-align: center;
  word-break: keep-all;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  max-width: 100%;
  width: 100%;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9), 0 0 2px rgba(0, 0, 0, 0.8);
  transition: transform 0.2s ease, text-shadow 0.2s ease;
}

.cavunet-portrait-card:hover .cavunet-portrait-title {
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.9), 0 0 10px rgba(0, 240, 255, 0.8);
}

/* [요청 1 & 2 반영] 이미지 외부 가로선 및 외부 정보 구역 완전 삭제 */
.cavunet-portrait-meta-wrap,
.cavunet-portrait-meta-split,
.cavunet-portrait-sub-meta {
  display: none !important;
}

/* Dark Theme Inversions for Archive Toolbar & Portrait Wall */
body.cavunet-dark-theme .cavunet-archive-toolbar {
  background-color: var(--cavunet-bg, #000000) !important;
  border-color: #444444 !important;
}

body.cavunet-dark-theme .cavunet-view-btn.active {
  background-color: #38383a !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-view-btn:hover {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-portrait-card {
  background-color: var(--cavunet-bg, #000000) !important;
  border-color: #333333 !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-portrait-meta,
body.cavunet-dark-theme .cavunet-portrait-row-title,
body.cavunet-dark-theme .cavunet-portrait-row-time {
  border-color: #444444 !important;
}

body.cavunet-dark-theme .cavunet-portrait-card:hover {
  background-color: rgba(255, 255, 255, 0.03) !important;
}

body.cavunet-dark-theme .cavunet-portrait-img-wrap {
  border-color: #444444 !important;
  background-color: #1a1a1a !important;
}

body.cavunet-dark-theme .cavunet-portrait-fallback {
  background-color: #1a1a1a !important;
}

body.cavunet-dark-theme .cavunet-portrait-fallback-title,
body.cavunet-dark-theme .cavunet-portrait-title,
body.cavunet-dark-theme .cavunet-portrait-artist,
body.cavunet-dark-theme .cavunet-wall-title {
  color: #ffffff !important;
}

/* ============================================================
   14. Exhibition Viewing Modes, Image Layout Switcher & Lightbox
   ============================================================ */

/* 하단 액션 통합 그룹: [증명서 발급] ─ [바디 이미지 그리드] ─ [감상 모드] (하단 밀착 정렬 & 균일 8px 간격) */
.cavunet-spec-bottom-actions {
  margin-top: auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* 1. Body Image Grid Layout Switcher (1열 / 2열 / 3열) */
.cavunet-image-layout-container {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 10px 12px;
  background-color: #f8f8f9;
  border: 1px solid rgba(0, 0, 0, 0.22);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
}

.cavunet-image-layout-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: var(--cavunet-black, #111111);
  text-transform: uppercase;
}

/* [요청 4 반영] 기능 제목 앞의 동그란 검은 점 삭제 */
.cavunet-image-layout-dot {
  display: none !important;
}

.cavunet-image-layout-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
  width: 100%;
}

.cavunet-layout-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 8px 4px;
  background-color: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.28);
  color: var(--cavunet-black, #111111);
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1px;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  white-space: nowrap;
}

.cavunet-layout-btn:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
}

.cavunet-layout-btn.active {
  background-color: #ffffff !important;
  color: var(--cavunet-black, #111111) !important;
  border: 1.5px solid var(--cavunet-black, #111111) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  font-weight: 800;
}

.cavunet-layout-icon {
  font-size: 10px;
  letter-spacing: -1px;
}

/* 2. Spec Table Action Buttons (우측 저작권 표시 하단과 수평 바닥 정렬) */
.cavunet-view-actions-container {
  margin-top: 0;
  margin-bottom: 0;
  padding: 12px 12px;
  background-color: #f8f8f9;
  border: 1px solid rgba(0, 0, 0, 0.22);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
}

.cavunet-view-actions-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: var(--cavunet-black, #111111);
  text-transform: uppercase;
}

/* [요청 4 반영] 기능 제목 앞의 동그란 검은 점 삭제 */
.cavunet-view-actions-dot {
  display: none !important;
}

.cavunet-view-actions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  width: 100%;
}

.cavunet-mode-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 10px;
  background-color: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.28);
  color: var(--cavunet-black, #111111);
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2px;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  white-space: nowrap;
}

.cavunet-mode-btn:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

/* Post Body Images Multi-Column Grid States (1열 / 2열 / 3열) */
.cavunet-post-body-content {
  width: 100%;
  transition: all 0.3s ease;
}

.cavunet-body-images-wrapper {
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 100%;
  margin: 24px 0;
  transition: all 0.35s ease;
}

.cavunet-body-images-wrapper img,
.cavunet-post-body-content img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--cavunet-line, #111111);
  box-sizing: border-box;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* 2열 그리드 모드 (2 Columns) */
.cavunet-post-body-content.cavunet-grid-2 .cavunet-body-images-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 20px !important;
  align-items: start;
}

/* 3열 그리드 모드 (3 Columns) */
.cavunet-post-body-content.cavunet-grid-3 .cavunet-body-images-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 14px !important;
  align-items: start;
}

@media (max-width: 900px) {
  .cavunet-post-body-content.cavunet-grid-3 .cavunet-body-images-wrapper {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 600px) {
  .cavunet-post-body-content.cavunet-grid-2 .cavunet-body-images-wrapper,
  .cavunet-post-body-content.cavunet-grid-3 .cavunet-body-images-wrapper {
    grid-template-columns: 1fr !important;
  }
}

.cavunet-mode-icon {
  font-size: 13px;
  line-height: 1;
}

/* 2. Floating Slow Scroll Control Widget */
.cavunet-floating-control {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(40px);
  opacity: 0;
  z-index: 99999;
  display: none;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
  pointer-events: auto;
}

.cavunet-floating-control.is-visible {
  opacity: 0.65;
  transform: translateX(-50%) translateY(0);
}

.cavunet-floating-control:hover,
.cavunet-floating-control.is-visible:hover {
  opacity: 1 !important;
}

.cavunet-floating-control-inner {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: rgba(10, 10, 10, 0.28) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 40px;
  color: #ffffff;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  transition: background 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
}

.cavunet-floating-control-inner:hover {
  background: rgba(10, 10, 10, 0.60) !important;
  border-color: rgba(255, 255, 255, 0.28);
}

.cavunet-floating-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #00f0ff;
  letter-spacing: 0.8px;
  font-size: 10px;
  text-transform: uppercase;
  padding-right: 6px;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.cavunet-pulse-dot {
  width: 6px;
  height: 6px;
  background: #00f0ff;
  border-radius: 50%;
  animation: cavunetPulse 1.2s infinite alternate ease-in-out;
}

@keyframes cavunetPulse {
  0% { transform: scale(0.7); opacity: 0.4; }
  100% { transform: scale(1.4); opacity: 1; }
}

.cavunet-ctrl-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #ffffff;
  padding: 5px 10px;
  border-radius: 20px;
  font-family: inherit;
  font-size: 10.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cavunet-ctrl-btn:hover {
  background: #ffffff;
  color: #000000;
}

.cavunet-btn-close-scroll {
  background: rgba(230, 0, 0, 0.18);
  border-color: rgba(230, 0, 0, 0.35);
  color: #ff6b6b;
}

.cavunet-btn-close-scroll:hover {
  background: #e60000;
  color: #ffffff;
}

.cavunet-speed-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(0, 0, 0, 0.22);
  padding: 3px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.cavunet-speed-btn {
  background: transparent;
  border: none;
  color: #888888;
  font-family: inherit;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.cavunet-speed-btn.active {
  background: #00f0ff;
  color: #000000;
}

/* 3. Zen Fullscreen Exhibition Lightbox (상단바 제거 및 하단 통합 슬림 컨트롤 도크) */
.cavunet-lightbox-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(5, 5, 5, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: 100000;
  display: none;
  flex-direction: column;
  opacity: 0;
  transition: opacity 0.35s ease;
  user-select: none;
  box-sizing: border-box;
}

.cavunet-lightbox-overlay.is-active {
  opacity: 1;
}

/* 라이트박스 메인 스테이지 (상단 여백 없이 화면 전체 영역 활용) */
.cavunet-lightbox-stage {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 48px 8px 48px;
  overflow: hidden;
  height: calc(100vh - 48px);
}

.cavunet-lightbox-img-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 92vw;
  max-height: calc(100vh - 72px);
}

.cavunet-lb-img {
  max-width: 100%;
  max-height: calc(100vh - 72px);
  object-fit: contain;
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.75);
  transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cavunet-lb-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  cursor: pointer;
  transition: all 0.2s ease;
  z-index: 10;
}

.cavunet-lb-nav:hover {
  background: rgba(255, 255, 255, 0.95);
  color: #000000;
  transform: translateY(-50%) scale(1.08);
}

.cavunet-lb-prev { left: 20px; }
.cavunet-lb-next { right: 20px; }

/* [요청 반영] 하단 통합 슬림 컨트롤 바 (높이 축소 + 작은 폰트 + 미려하고 심플한 정렬) */
.cavunet-lightbox-bottombar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 46px;
  min-height: 46px;
  padding: 0 20px;
  background: rgba(14, 14, 16, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: #ffffff;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  box-sizing: border-box;
  gap: 14px;
  z-index: 100;
  transition: opacity 0.4s ease;
}

/* 좌측: 전시 태그 + 제목 + 현재 슬라이드 캡션 */
.cavunet-lightbox-info-group {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  white-space: nowrap;
  max-width: 42%;
}

.cavunet-lightbox-tag {
  font-size: 9px;
  font-weight: 700;
  color: #ff0055;
  background: rgba(255, 0, 85, 0.12);
  border: 1px solid rgba(255, 0, 85, 0.35);
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 0.6px;
  flex-shrink: 0;
}

.cavunet-lightbox-title {
  font-size: 11px;
  font-weight: 600;
  color: #e5e5ea;
  letter-spacing: 0.2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cavunet-lightbox-sep {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
  flex-shrink: 0;
}

.cavunet-lightbox-caption {
  font-size: 10.5px;
  font-weight: 400;
  color: #a1a1a6;
  letter-spacing: 0.2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 중앙: 카운터 및 미니멀 프로그레스 도트 */
.cavunet-lightbox-center-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.cavunet-lightbox-counter {
  font-size: 10.5px;
  font-weight: 700;
  color: #00f0ff;
  letter-spacing: 0.8px;
}

.cavunet-lightbox-dots {
  display: flex;
  align-items: center;
  gap: 4px;
}

.cavunet-lb-dot {
  width: 14px;
  height: 2.5px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 2px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cavunet-lb-dot.active {
  background: #00f0ff;
  width: 22px;
}

/* 우측: 슬림 버튼 컨트롤 그룹 */
.cavunet-lightbox-controls-group {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.cavunet-lb-btn {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #d1d1d6;
  font-family: inherit;
  font-size: 9.5px;
  font-weight: 600;
  padding: 4px 9px;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  letter-spacing: 0.2px;
}

.cavunet-lb-btn:hover {
  background: #ffffff;
  color: #000000;
  border-color: #ffffff;
}

.cavunet-lb-btn.active {
  background: #00f0ff;
  color: #000000;
  border-color: #00f0ff;
}

.cavunet-lb-close-btn {
  background: rgba(255, 0, 0, 0.16);
  border-color: rgba(255, 0, 0, 0.35);
  color: #ff6b6b;
}

.cavunet-lb-close-btn:hover {
  background: #ff0033;
  color: #ffffff;
  border-color: #ff0033;
}

/* ============================================================
   15. Ultra-Wide & Fullscreen Immersion Modes (화면을 더 넓게 전체화면 감상)
   ============================================================ */

/* 1) Slow Scroll: 100% Full-Width Edge-to-Edge Immersion */
body.cavunet-wide-immersion-mode .cavunet-post-content-container {
  max-width: 100vw !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

body.cavunet-wide-immersion-mode .cavunet-post-body-content {
  max-width: 100vw !important;
  width: 100% !important;
  padding: 0 !important;
}

body.cavunet-wide-immersion-mode .cavunet-post-body-content p {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--cavunet-gutter, 32px);
  padding-right: var(--cavunet-gutter, 32px);
}

body.cavunet-wide-immersion-mode .cavunet-post-body-content img {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  object-fit: contain;
  max-height: 95vh;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.cavunet-ctrl-btn.active,
.cavunet-lb-btn.active {
  background: #00f0ff !important;
  color: #000000 !important;
  border-color: #00f0ff !important;
  font-weight: 700 !important;
}

/* 2) Lightbox: Ultra-Wide Max Scale Mode (98vw x 96vh) */
.cavunet-lightbox-overlay.is-scale-max .cavunet-lightbox-bottombar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(10, 10, 12, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 100;
  transition: all 0.35s ease;
}

.cavunet-lightbox-overlay.is-scale-max .cavunet-lightbox-stage {
  padding: 0;
  width: 100vw;
  height: 100vh;
}

.cavunet-lightbox-overlay.is-scale-max .cavunet-lightbox-img-wrap {
  max-width: 98vw;
  max-height: 98vh;
  width: 100%;
  height: 100%;
}

.cavunet-lightbox-overlay.is-scale-max .cavunet-lb-img {
  max-width: 98vw;
  max-height: calc(100vh - 48px);
  width: auto;
  height: auto;
}

/* 3) Zen Auto-Hide UI Mode */
.cavunet-lightbox-overlay.is-zen-mode .cavunet-lightbox-bottombar,
.cavunet-lightbox-overlay.is-zen-mode .cavunet-lb-nav {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.6s ease;
}

/* Dark Theme Overrides */
body.cavunet-dark-theme .cavunet-view-actions-container {
  background-color: rgba(255, 255, 255, 0.03);
  border-color: #444444;
}

body.cavunet-dark-theme .cavunet-mode-btn {
  background-color: #111111;
  border-color: #444444;
  color: #ffffff;
}

body.cavunet-dark-theme .cavunet-mode-btn:hover {
  background-color: #ffffff;
  color: #000000;
}

/* ============================================================
   16. Comprehensive Mobile UX & Responsive System (모바일 최적화 & 시뮬레이터 대응)
   ============================================================ */

/* 전역 모바일 뷰포트 가로 스크롤/넘침 방지 락 */
@media (max-width: 860px) {
  html, body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
    position: relative !important;
  }

  :root {
    --cavunet-gutter: 16px;
  }

  body {
    font-size: 13px;
  }

  .cavunet-site-wrapper,
  .site-main,
  .cavunet-table-container,
  .cavunet-archive-page,
  .cavunet-single-product {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
    box-sizing: border-box !important;
  }

  /* ============================================================
     (1) [요청 3 & 4 반영] 모바일 전용 헤더: 
         - 1층: 최상단 동일 로고 중앙 정렬 (라이트/다크 크기 100% 동일)
         - 2층: 로고 아래 [검색] + [흑백반전] + [메뉴] 3종 버튼 바
         - 3층: 검색 클릭 시 펼쳐지는 검색창 드로어
     ============================================================ */
  .cavunet-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px var(--cavunet-gutter, 16px) 12px var(--cavunet-gutter, 16px) !important;
    gap: 12px !important;
    border-bottom: 1px solid var(--cavunet-line, #111111) !important;
    background-color: var(--cavunet-bg, #ffffff) !important;
    position: relative !important;
    box-sizing: border-box !important;
    height: auto !important;
    min-height: auto !important;
    margin-bottom: 0 !important;
  }

  body.cavunet-dark-theme .cavunet-header,
  html.cavunet-dark-theme .cavunet-header {
    background-color: var(--cavunet-bg, #111111) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
  }

  /* 1층: [요청 1 반영] 최상단 로고: 모바일 화면의 가로 꽉 찬 크기 (100% Full Width) */
  .cavunet-header-left {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .cavunet-brand-logo,
  .cavunet-logo-wrap {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: none !important;
    text-decoration: none !important;
    color: var(--cavunet-black, #111111) !important;
  }

  .cavunet-brand-logo-img,
  .cavunet-main-logo,
  .cavunet-desktop-logo,
  .cavunet-mobile-logo,
  .custom-logo {
    max-height: 30px !important;
    max-width: 125px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 !important;
  }

  .cavunet-brand-logo span {
    display: inline-block !important;
    font-size: 26px !important;
    font-weight: 600 !important;
    letter-spacing: -0.5px !important;
    line-height: 1 !important;
  }

  /* 다크 테마 전환 시 로고 자동 반전 및 동일 크기 유지 */
  body.cavunet-dark-theme .cavunet-brand-logo,
  body.cavunet-dark-theme .cavunet-logo-wrap,
  body.cavunet-dark-theme .cavunet-brand-logo * {
    color: #ffffff !important;
  }
  body.cavunet-dark-theme .cavunet-main-logo.cavunet-light-logo,
  body.cavunet-dark-theme .cavunet-brand-logo-img.cavunet-light-logo {
    display: block !important;
    filter: invert(1) brightness(1.5) !important;
  }
  body.cavunet-dark-theme .cavunet-main-logo.cavunet-dark-logo,
  body.cavunet-dark-theme .cavunet-brand-logo-img.cavunet-dark-logo {
    display: block !important;
    filter: none !important;
  }
  body.cavunet-dark-theme .cavunet-logo-wrap:has(.cavunet-dark-logo) .cavunet-light-logo {
    display: none !important;
  }

  .cavunet-header-center-banner {
    display: none !important;
  }

  /* 2층: [요청 4 반영] 로고 아래 버튼 바 컨테이너 */
  .cavunet-header-right {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* PC 데스크톱 전용 요소 모바일에서 완전 숨김 */
  .cavunet-desktop-nav,
  .cavunet-search-controls-wrap,
  .cavunet-desktop-search-form,
  .cavunet-desktop-theme-toggle,
  .cavunet-desktop-only {
    display: none !important;
  }

  /* [요청 2 & 4 반영] 로고 아래 3종 아이콘 버튼 행: [🔍] + [🌙/☀️] + [☰] */
  .cavunet-header-buttons-row,
  .cavunet-mobile-only.cavunet-header-buttons-row {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 2px auto 0 auto !important;
    padding: 0 !important;
  }

  .cavunet-mobile-only {
    display: flex !important;
  }

  /* [요청 2 반영] 모바일 버튼: 글씨 없는 깔끔한 36px 원형 아이콘 버튼 */
  .cavunet-header-buttons-row .cavunet-theme-toggle-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: 50% !important;
    border: 1px solid var(--cavunet-line, #111111) !important;
    background: transparent !important;
    color: var(--cavunet-black, #111111) !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    font-size: 14px !important;
    transition: all 0.15s ease !important;
    box-sizing: border-box !important;
  }

  .cavunet-header-buttons-row .cavunet-theme-toggle-btn svg {
    stroke: var(--cavunet-black, #111111) !important;
  }

  .cavunet-header-buttons-row .cavunet-theme-toggle-btn:active {
    background-color: rgba(0, 0, 0, 0.08) !important;
  }

  body.cavunet-dark-theme .cavunet-header-buttons-row .cavunet-theme-toggle-btn {
    border-color: #555555 !important;
    color: #ffffff !important;
  }
  body.cavunet-dark-theme .cavunet-header-buttons-row .cavunet-theme-toggle-btn svg {
    stroke: #ffffff !important;
  }
  body.cavunet-dark-theme .cavunet-header-buttons-row .cavunet-theme-toggle-btn:active {
    background-color: rgba(255, 255, 255, 0.12) !important;
  }

  /* 3층: 돋보기 클릭 시 부드럽게 열리는 모바일 검색창 드로어 */
  .cavunet-mobile-search-drawer {
    display: block !important;
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto !important;
    background: transparent !important;
    max-height: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.2s ease !important;
    box-sizing: border-box !important;
  }

  .cavunet-mobile-search-drawer.is-open {
    max-height: 50px !important;
    opacity: 1 !important;
    margin-top: 6px !important;
  }

  .cavunet-mobile-search-form {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    border-bottom: 1.5px solid var(--cavunet-line, #111111) !important;
    padding: 6px 4px !important;
    box-sizing: border-box !important;
    background: transparent !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-search-form {
    border-bottom-color: #ffffff !important;
  }

  .cavunet-mobile-search-form .cavunet-search-input {
    font-size: 13px !important;
    flex: 1 !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    color: var(--cavunet-black, #111111) !important;
  }
  body.cavunet-dark-theme .cavunet-mobile-search-form .cavunet-search-input {
    color: #ffffff !important;
  }

  /* [요청 4 반영] 모바일 오프캔버스 슬라이드 메뉴 드로어 (c동영상 스타일) */
  .cavunet-mobile-nav-backdrop {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: rgba(0, 0, 0, 0.6) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    z-index: 100000 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.3s ease, visibility 0.3s ease !important;
  }

  .cavunet-mobile-nav-backdrop.is-open {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .cavunet-mobile-nav-drawer {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 85vw !important;
    max-width: 320px !important;
    height: 100vh !important;
    height: 100dvh !important;
    background-color: var(--cavunet-bg, #ffffff) !important;
    border-left: 1px solid var(--cavunet-line, #111111) !important;
    z-index: 100001 !important;
    transform: translateX(100%) !important;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.2) !important;
    box-sizing: border-box !important;
  }

  .cavunet-mobile-nav-drawer.is-open {
    transform: translateX(0) !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-nav-drawer {
    background-color: var(--cavunet-bg, #000000) !important;
    border-color: #333333 !important;
    color: #ffffff !important;
  }

  .cavunet-mobile-drawer-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 16px 20px !important;
    border-bottom: 1px solid var(--cavunet-line, #111111) !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-drawer-header {
    border-color: #333333 !important;
  }

  .cavunet-mobile-drawer-logo {
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: -0.5px !important;
  }

  .cavunet-mobile-drawer-close {
    background: none !important;
    border: none !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    color: var(--cavunet-black, #111111) !important;
    padding: 4px 8px !important;
    line-height: 1 !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-drawer-close {
    color: #ffffff !important;
  }

  .cavunet-mobile-drawer-body {
    padding: 24px 20px !important;
    overflow-y: auto !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
  }

  .cavunet-mobile-drawer-menu-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  .cavunet-mobile-drawer-menu-list li a {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--cavunet-black, #111111) !important;
    text-decoration: none !important;
    display: block !important;
    border-bottom: 1px dotted rgba(0, 0, 0, 0.15) !important;
    padding-bottom: 10px !important;
    transition: color 0.15s ease !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-drawer-menu-list li a {
    color: #ffffff !important;
    border-bottom-color: rgba(255, 255, 255, 0.15) !important;
  }

  .cavunet-mobile-drawer-info {
    margin-top: 30px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--cavunet-line, #111111) !important;
    font-size: 11.5px !important;
    color: var(--cavunet-gray-muted, #777777) !important;
    line-height: 1.6 !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-drawer-info {
    border-top-color: #333333 !important;
    color: #aaaaaa !important;
  }

  .cavunet-mobile-drawer-info-title {
    font-weight: 700 !important;
    margin-bottom: 6px !important;
    color: var(--cavunet-black, #111111) !important;
  }

  body.cavunet-dark-theme .cavunet-mobile-drawer-info-title {
    color: #ffffff !important;
  }

  .cavunet-mobile-drawer-contact {
    margin-top: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    font-family: var(--cavunet-font-mono, 'Space Mono', monospace) !important;
    font-size: 10.5px !important;
  }

  body.cavunet-drawer-open {
    overflow: hidden !important;
  }

  /* (2) [모바일 전면 개편] 현대적 에디토리얼 아카이브 카드 레이아웃 */
  .cavunet-table-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    border-top: none !important;
    box-sizing: border-box !important;
  }

  .cavunet-books-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border: none !important;
  }

  .cavunet-books-table thead {
    display: none !important;
  }

  .cavunet-books-table tbody {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* (2) [모바일 슬림 1줄 목록] 전시 제목과 연도만 출력, PC 모드처럼 폰트 크기/높이/굵기 축소 */
  .cavunet-table-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    padding-bottom: 30px !important; /* 고정 푸터와 겹침 방지 */
    overflow-x: hidden !important;
    border-top: none !important;
    box-sizing: border-box !important;
  }

  .cavunet-books-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border: none !important;
  }

  .cavunet-books-table thead {
    display: none !important;
  }

  .cavunet-books-table tbody {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* 각 행을 1줄 높이 28px 슬림 바로 변환 */
  .cavunet-books-table tr.cavunet-table-row,
  .cavunet-books-table tr {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    padding: 0 var(--cavunet-gutter, 16px) !important;
    border-bottom: 1px solid var(--cavunet-line, #111111) !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    background: var(--cavunet-bg, #ffffff) !important;
    transform: none !important;
    box-shadow: none !important;
    transition: background-color 0.15s ease !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .cavunet-books-table tr.cavunet-table-row:active {
    background-color: rgba(0, 0, 0, 0.05) !important;
  }
  body.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row:active {
    background-color: rgba(255, 255, 255, 0.08) !important;
  }
  body.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row,
  body.cavunet-dark-theme .cavunet-books-table tr {
    background: #111111 !important;
    border-bottom-color: rgba(255, 255, 255, 0.14) !important;
  }

  /* 데스크톱 기본 셀 스타일 리셋 */
  .cavunet-books-table tr td {
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
  }

  /* 1. 전시 제목 (좌측: 11.5px Pretendard 얇은 폰트 weight 400) */
  .cavunet-books-table tr td.col-title,
  .cavunet-books-table tr td.col-project_title,
  .cavunet-books-table tr td.col-first-title {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 48px) !important;
    margin-right: 8px !important;
    padding-right: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: left !important;
  }
  .cavunet-books-table tr td.col-first-title .cavunet-row-title-text {
    font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-size: 11.5px !important;
    font-weight: 400 !important;
    color: var(--cavunet-black, #111111) !important;
    letter-spacing: -0.01em !important;
    line-height: 1.2 !important;
    font-style: normal !important;
    text-decoration: none !important;
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-right: 0 !important;
  }
  body.cavunet-dark-theme .cavunet-books-table tr td.col-first-title .cavunet-row-title-text {
    color: #ffffff !important;
  }
  .cavunet-books-table tr td.col-first-title .cavunet-row-title-sep {
    display: none !important;
  }

  /* 2. 연도 (우측: 11px Space Mono 400 레드) */
  .cavunet-books-table tr td.col-year {
    display: block !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 36px !important;
    max-width: 60px !important;
    margin-left: auto !important;
    padding: 0 !important;
    text-align: right !important;
    font-family: var(--cavunet-font-mono, 'Space Mono', monospace) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    color: var(--cavunet-red, #ff0000) !important;
    letter-spacing: 0.03em !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }
  body.cavunet-dark-theme .cavunet-books-table tr td.col-year {
    color: #ff3333 !important;
  }

  /* 모바일에서 제목과 연도 외 모든 컬럼 완전 숨김 (작가, 공간, 일정, 기획, 국가 등) */
  .cavunet-books-table tr td.col-author,
  .cavunet-books-table tr td.col-dimensions,
  .cavunet-books-table tr td.col-pages,
  .cavunet-books-table tr td.col-date,
  .cavunet-books-table tr td.col-dates,
  .cavunet-books-table tr td.col-period,
  .cavunet-books-table tr td.col-publisher,
  .cavunet-books-table tr td.col-country,
  .cavunet-books-table tr td.col-city,
  .cavunet-books-table tr td.col-cat,
  .cavunet-books-table tr td.col-genre,
  .cavunet-books-table tr td.col-binding,
  .cavunet-books-table tr td.col-buy {
    display: none !important;
  }

  /* ============================================================
     (3) [요청 2 반영] 모바일 상세페이지 순서 정밀 재배치:
         1) [대표이미지]
         2) [전시정보 - 전시 스펙 표]
         3) [전시서문 개요, 작가소개]
         4) [관리코드, 데이터제공자, 저작권]
         5) [바디 이미지 그리드, exhibition contemplation mode]
         6) [본문 내용]
     ============================================================ */
  .cavunet-product-top-section.cavunet-3col-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 var(--cavunet-gutter, 16px) !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* 상단 3분할 내부 서브컬럼들을 contents로 풀어 flex 직속 자식으로 순서 완벽 제어 */
  .cavunet-col-spec-info {
    display: contents !important;
  }

  .cavunet-col-intro-sidebar {
    display: contents !important;
  }

  /* 1. [대표이미지] */
  .cavunet-col-featured-image {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
  }

  .cavunet-main-featured-img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: unset !important;
    object-fit: contain !important;
    display: block !important;
    border: 1px solid var(--cavunet-line, #111111) !important;
    margin: 0 auto !important;
  }

  /* 2. [전시정보 - 전시 스펙 표] */
  .cavunet-spec-table {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 12px !important;
    margin: 0 0 16px 0 !important;
    border-collapse: collapse !important;
  }

  .cavunet-spec-table th {
    width: 90px !important;
    padding: 6px 4px !important;
  }

  .cavunet-spec-table td {
    padding: 6px 4px !important;
  }

  /* 3. [전시서문 개요, 작가소개 아코디언] */
  .cavunet-accordion-container {
    order: 3 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0 !important;
  }

  .cavunet-accordion-header {
    font-size: 13px !important;
    padding: 8px 0 !important;
  }

  /* 4. [관리코드, 데이터제공자, 저작권 3종 블록] */
  .cavunet-sidebar-color-blocks {
    order: 4 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 20px 0 !important;
    padding-top: 0 !important;
    gap: 8px !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .cavunet-block-dynamic-box {
    padding: 10px 12px !important;
  }

  /* 5. [하단 액션 그룹: 증명서 발급 + 바디 그리드 + 감상 모드 일체형 순서 유지] */
  .cavunet-spec-bottom-actions {
    order: 5 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  .cavunet-cert-container,
  .cavunet-image-layout-container,
  .cavunet-view-actions-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 10px 12px !important;
  }

  .cavunet-image-layout-grid {
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 6px !important;
  }

  .cavunet-layout-btn {
    padding: 8px 2px !important;
    font-size: 10px !important;
    min-height: 38px !important;
  }

  .cavunet-view-actions-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
  }

  .cavunet-mode-btn {
    padding: 9px 4px !important;
    font-size: 10.5px !important;
    min-height: 40px !important;
  }

  /* 7. [본문 내용] */
  .cavunet-post-content-container,
  .cavunet-product-description-wrap {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 var(--cavunet-gutter, 16px) !important;
    margin-top: 10px !important;
    box-sizing: border-box !important;
  }

  .cavunet-post-body-content img {
    border: 1px solid var(--cavunet-line, #111111) !important;
    margin-bottom: 14px !important;
  }

  /* (4) 갤러리 월 모바일 2열 그리드 */
  .cavunet-portrait-wall-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px 10px !important;
    padding: 14px var(--cavunet-gutter, 16px) !important;
  }

  .cavunet-archive-toolbar {
    padding: 10px var(--cavunet-gutter, 16px) !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }

  /* (5) 모바일 푸터: PC 화면과 동일한 1줄 슬림 디자인 & 화면 하단 고정 */
  .cavunet-footer {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 990 !important;
    display: flex !important;
    align-items: center !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    padding: 0 var(--cavunet-gutter, 16px) !important;
    margin: 0 !important;
    border-top: 1px solid var(--cavunet-line, #111111) !important;
    background-color: var(--cavunet-bg, #ffffff) !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
    font-size: 10px !important;
  }
  body.cavunet-dark-theme .cavunet-footer {
    background-color: var(--cavunet-bg, #111111) !important;
    border-top-color: rgba(255, 255, 255, 0.14) !important;
  }

  .cavunet-footer-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    gap: 8px !important;
    line-height: 1 !important;
  }

  .cavunet-footer-left {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 9.5px !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    line-height: 1 !important;
  }
  .cavunet-footer-left .cavunet-footer-brand strong {
    font-weight: 700 !important;
    font-size: 9.5px !important;
  }
  .cavunet-footer-left .cavunet-footer-copy {
    font-size: 9px !important;
    color: var(--cavunet-gray-muted, #777777) !important;
  }

  .cavunet-footer-center {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    flex: 1 1 auto !important;
    margin: 0 auto !important;
    font-size: 9.5px !important;
    line-height: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .cavunet-footer-slogan {
    font-size: 9.5px !important;
    font-weight: 500 !important;
    color: var(--cavunet-gray-muted, #777777) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  body.cavunet-dark-theme .cavunet-footer-slogan {
    color: #888888 !important;
  }

  .cavunet-footer-right {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    font-size: 9.5px !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    line-height: 1 !important;
  }
  .cavunet-footer-link,
  .cavunet-footer-instagram-link,
  .cavunet-footer-policy a,
  .cavunet-back-to-top {
    font-size: 9.5px !important;
    line-height: 1 !important;
  }
  .cavunet-footer-instagram-icon,
  .cavunet-footer-top-icon {
    width: 10px !important;
    height: 10px !important;
  }

  /* (6) 모바일 호버 팝업 오버레이 비활성화 (터치 간섭 방지) */
  #cavunet-hover-preview {
    display: none !important;
    pointer-events: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

/* 2. Small Mobile Devices (max-width: 480px) */
@media (max-width: 480px) {
  :root {
    --cavunet-gutter: 12px;
  }

  .cavunet-brand-logo {
    font-size: 22px !important;
  }

  .cavunet-portrait-wall-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .cavunet-view-actions-grid {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .cavunet-books-table tr.cavunet-table-row,
  .cavunet-books-table tr {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    padding: 0 var(--cavunet-gutter, 12px) !important;
  }

  .cavunet-books-table td.col-first-title .cavunet-row-title-text {
    font-size: 11px !important;
  }

  .cavunet-footer {
    padding: 0 var(--cavunet-gutter, 12px) !important;
  }

  .cavunet-floating-control {
    bottom: 14px !important;
    width: calc(100% - 24px) !important;
  }
}

/* ============================================================
   16. Archive Provenance Certificate (PDF Modal & Print Styles)
   ============================================================ */
.cavunet-cert-container {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.cavunet-cert-action-wrap {
  width: 100%;
}

.cavunet-cert-btn {
  width: 100%;
  padding: 9px 12px;
  background-color: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.28);
  color: var(--cavunet-black, #111111);
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
}

.cavunet-cert-btn:hover {
  background-color: #00f0ff;
  border-color: #00f0ff;
  color: #000000;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 240, 255, 0.25);
}

html.cavunet-dark-theme .cavunet-cert-btn,
body.cavunet-dark-theme .cavunet-cert-btn {
  background-color: #111111 !important;
  border: 1px solid #444444 !important;
  color: #ffffff !important;
}

html.cavunet-dark-theme .cavunet-cert-btn:hover,
body.cavunet-dark-theme .cavunet-cert-btn:hover {
  background-color: #00f0ff !important;
  border-color: #00f0ff !important;
  color: #000000 !important;
}

/* Certificate Preview Modal */
.cavunet-cert-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.cavunet-cert-modal.is-active {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.cavunet-cert-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.cavunet-cert-dialog {
  position: relative;
  z-index: 2;
  width: 92vw;
  max-width: 860px;
  max-height: 94vh;
  display: flex;
  flex-direction: column;
  background: #1e1e1e;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.cavunet-cert-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  background: #111111;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  gap: 12px;
  flex-shrink: 0;
}

.cavunet-cert-toolbar-badge {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  color: #00f0ff;
  letter-spacing: 0.5px;
}

.cavunet-cert-toolbar-id {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10px;
  color: #888888;
  margin-left: 10px;
}

.cavunet-cert-toolbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cavunet-cert-print-btn {
  background: #00f0ff;
  border: none;
  color: #000000;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  padding: 7px 14px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cavunet-cert-print-btn:hover {
  background: #ffffff;
  transform: translateY(-1px);
}

.cavunet-cert-close-btn {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-family: inherit;
  font-size: 11px;
  padding: 7px 12px;
  border-radius: 4px;
  cursor: pointer;
}

.cavunet-cert-close-btn:hover {
  background: rgba(255, 0, 0, 0.6);
  border-color: rgba(255, 0, 0, 0.8);
}

/* Scrollable Sheet Wrapper */
.cavunet-cert-sheet {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
  background: #2a2a2e;
  display: flex;
  justify-content: center;
}

/* Printable Certificate Frame (Standard A4 Dimension Proportions) */
.cavunet-cert-inner-frame {
  width: 100%;
  max-width: 210mm;
  min-height: 297mm;
  background: #ffffff;
  color: #111111;
  padding: 12mm 14mm;
  box-sizing: border-box;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
  font-family: 'Pretendard', -apple-system, sans-serif;
  border: 3px double #111111;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.cavunet-cert-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 2px solid #111111;
  padding-bottom: 12px;
  margin-bottom: 16px;
}

.cavunet-cert-header-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.cavunet-cert-logo-wrap {
  margin-bottom: 4px;
}

.cavunet-cert-logo-img {
  max-height: 42px;
  max-width: 220px;
  object-fit: contain;
  display: block;
}

.cavunet-cert-brand {
  font-family: 'Times New Roman', serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: #000000;
}

.cavunet-cert-sub-brand {
  font-family: 'Space Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: #555555;
  margin-top: 3px;
}

.cavunet-cert-header-right {
  text-align: right;
  font-family: 'Space Mono', monospace;
  font-size: 9.5px;
  line-height: 1.5;
}

.cert-meta-k {
  color: #777777;
  margin-right: 4px;
}

.cert-meta-v {
  font-weight: 700;
  color: #111111;
}

.cert-status-verified {
  color: #0066cc;
}

.cavunet-cert-title-section {
  text-align: center;
  margin-bottom: 18px;
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: 12px;
}

.cavunet-cert-main-title {
  font-family: 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: #111111;
  margin: 0 0 4px 0;
  text-transform: uppercase;
}

.cavunet-cert-kr-title {
  font-size: 12px;
  font-weight: 600;
  color: #666666;
  letter-spacing: 0.4px;
  margin: 0;
}

.cavunet-cert-hero-grid {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 20px;
  margin-bottom: 16px;
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: 16px;
}

.cavunet-cert-img-box {
  width: 100%;
}

.cavunet-cert-thumb {
  width: 100%;
  height: auto;
  max-height: 240px;
  object-fit: cover;
  display: block;
  border: 1px solid #111111;
}

.cavunet-cert-img-caption {
  font-family: 'Space Mono', monospace;
  font-size: 8px;
  font-weight: 700;
  color: #888888;
  margin-top: 4px;
  text-align: center;
}

.cavunet-cert-specs-box {
  display: flex;
  flex-direction: column;
}

.cavunet-cert-exhibition-name {
  font-size: 16px;
  font-weight: 700;
  color: #000000;
  margin-bottom: 10px;
  line-height: 1.35;
  border-bottom: 1px solid #111111;
  padding-bottom: 6px;
}

.cavunet-cert-specs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}

.cavunet-cert-specs-table th {
  text-align: left;
  width: 90px;
  padding: 4px 0;
  color: #777777;
  font-weight: 600;
  border-bottom: 1px solid #f0f0f0;
}

.cavunet-cert-specs-table td {
  padding: 4px 0;
  color: #111111;
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0;
}

.cavunet-cert-provenance-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 8px;
  padding: 8px 12px;
  background: #f8f8f9;
  border: 1px solid #e0e0e0;
}

.cert-prov-label {
  display: block;
  font-family: 'Space Mono', monospace;
  font-size: 8.5px;
  color: #777777;
  margin-bottom: 2px;
}

.cert-prov-val {
  display: block;
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  color: #111111;
  word-break: break-all;
}

.cavunet-cert-url-box {
  background: #fafafa;
  border: 1px solid #e8e8ec;
  padding: 6px 12px;
  margin-bottom: 14px;
  font-family: 'Space Mono', monospace;
  font-size: 9.5px;
  color: #444444;
  word-break: break-all;
  line-height: 1.4;
}

.cert-url-label {
  font-weight: 700;
  color: #666666;
  margin-right: 6px;
}

.cert-url-val {
  color: #111111;
  font-weight: 600;
}

.cavunet-cert-disclaimer-box {
  padding: 10px 14px;
  background: #fff8f8;
  border-left: 3px solid #ff0033;
  border-top: 1px solid #ffebeb;
  border-right: 1px solid #ffebeb;
  border-bottom: 1px solid #ffebeb;
  margin-bottom: 18px;
}

.cavunet-cert-disclaimer-badge {
  font-family: 'Space Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  color: #ff0033;
  letter-spacing: 0.4px;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.cavunet-cert-disclaimer-kr {
  font-size: 10px;
  line-height: 1.5;
  color: #444444;
  margin: 0 0 4px 0;
}

.cavunet-cert-disclaimer-en {
  font-size: 9px;
  line-height: 1.45;
  color: #666666;
  margin: 0;
}

.cavunet-cert-footer-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 2px solid #111111;
}

.cavunet-cert-qr-mock {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cert-qr-box {
  width: 44px;
  height: 44px;
  border: 1px solid #111111;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #fdfdfd;
}

.cert-qr-text {
  font-family: 'Space Mono', monospace;
  font-size: 7px;
  font-weight: 700;
  line-height: 1.2;
  color: #111111;
}

.cert-qr-desc {
  font-family: 'Space Mono', monospace;
  font-size: 8px;
  line-height: 1.4;
  color: #777777;
}

.cert-qr-desc strong {
  display: block;
  color: #111111;
  font-size: 9.5px;
}

.cavunet-cert-footer-right {
  display: flex;
  align-items: center;
  gap: 14px;
  text-align: right;
}

.cavunet-cert-seal-wrap {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 2px dashed #ff0033;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 0, 51, 0.04);
}

.cavunet-cert-seal {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.seal-curve-top {
  font-family: 'Space Mono', monospace;
  font-size: 6px;
  font-weight: 700;
  color: #ff0033;
  letter-spacing: 0.2px;
}

.seal-star {
  font-size: 6px;
  font-weight: 700;
  color: #ff0033;
  margin: 1px 0;
}

.seal-curve-bottom {
  font-family: 'Space Mono', monospace;
  font-size: 5.5px;
  font-weight: 700;
  color: #ff0033;
}

.cert-sign-org {
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: #000000;
}

.cert-sign-copy {
  font-size: 8.5px;
  color: #777777;
  margin-top: 2px;
}

/* Print Stylesheet for 1-Click PDF Export (Strict 1-Page A4 Precision) */
@page {
  size: A4 portrait;
  margin: 0;
}

@media print {
  html, body {
    width: 210mm !important;
    height: 297mm !important;
    max-height: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body * {
    visibility: hidden !important;
  }
  #cavunet-certificate-modal,
  #cavunet-certificate-modal * {
    visibility: visible !important;
  }
  #cavunet-certificate-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 210mm !important;
    height: 297mm !important;
    max-height: 297mm !important;
    background: #ffffff !important;
    display: block !important;
    opacity: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    z-index: 9999999 !important;
    page-break-after: avoid !important;
    page-break-before: avoid !important;
    page-break-inside: avoid !important;
  }
  .cavunet-cert-backdrop,
  .cavunet-cert-toolbar,
  .no-print {
    display: none !important;
  }
  .cavunet-cert-dialog {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    border: none !important;
    box-shadow: none !important;
    max-width: 210mm !important;
    width: 210mm !important;
    height: 297mm !important;
    max-height: 297mm !important;
    background: #ffffff !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  .cavunet-cert-sheet {
    width: 210mm !important;
    height: 297mm !important;
    max-height: 297mm !important;
    padding: 7mm !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .cavunet-cert-inner-frame {
    box-shadow: none !important;
    width: 100% !important;
    height: 100% !important;
    max-height: calc(297mm - 14mm) !important;
    padding: 6mm 8mm !important;
    border: 2px solid #000000 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    overflow: hidden !important;
    page-break-inside: avoid !important;
    page-break-after: avoid !important;
  }
  .cavunet-cert-header {
    margin-bottom: 6px !important;
    padding-bottom: 5px !important;
  }
  .cavunet-cert-title-section {
    margin-bottom: 6px !important;
    padding-bottom: 5px !important;
  }
  .cavunet-cert-main-title {
    font-size: 19px !important;
  }
  .cavunet-cert-hero-grid {
    margin-bottom: 6px !important;
    padding-bottom: 6px !important;
    gap: 14px !important;
  }
  .cavunet-cert-thumb {
    max-height: 110px !important;
  }
  .cavunet-cert-specs-table {
    font-size: 10px !important;
  }
  .cavunet-cert-specs-table th,
  .cavunet-cert-specs-table td {
    padding: 2px 0 !important;
  }
  .cavunet-cert-text-section {
    margin-bottom: 6px !important;
    padding-bottom: 6px !important;
    gap: 12px !important;
  }
  .cavunet-cert-body-p {
    font-size: 9.5px !important;
    line-height: 1.4 !important;
  }
  .cavunet-cert-auth-block {
    margin-bottom: 6px !important;
    padding: 4px 8px !important;
  }
  .cavunet-cert-auth-text {
    font-size: 9.5px !important;
    line-height: 1.35 !important;
  }
  .cavunet-cert-disclaimer-box {
    margin-bottom: 6px !important;
    padding: 4px 8px !important;
  }
  .cavunet-cert-disclaimer-kr,
  .cavunet-cert-disclaimer-en {
    font-size: 8.5px !important;
    line-height: 1.3 !important;
  }
  .cavunet-cert-footer-row {
    padding-top: 5px !important;
  }
}

/* ==========================================================================
   ARCHIVE PAGE: HIGH-SENSITIVITY CHRONOLOGY TIMELINE & LIVE NETWORK TAG CLOUD
   (고감도 미니멀 아카이브 타임라인 스크러버 & 라이브 네트워크 태그 클라우드 패널)
   ========================================================================== */
.cavunet-archive-filter-panel {
  border-top: none !important;
  border-bottom: 1px solid var(--cavunet-line, #111111);
  margin-top: 24px;
  padding: 16px var(--cavunet-gutter, 32px) 14px var(--cavunet-gutter, 32px);
  margin-bottom: 0 !important;
  background-color: var(--cavunet-bg);
  box-sizing: border-box;
  width: 100%;
}

/* 1단: 가로 타임라인 스크러버 (Timeline Scrubber: 텍스트 없이 오직 정밀 레일과 노드만 배치) */
.cavunet-timeline-scrubber-wrap {
  width: 100%;
  padding-bottom: 2px;
}

.cavunet-timeline-axis-track {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 16px 4px 14px 4px;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-width: none;
}
.cavunet-timeline-axis-track::-webkit-scrollbar {
  display: none;
}

.cavunet-timeline-rail {
  position: absolute;
  top: 19px;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(0, 0, 0, 0.15);
  z-index: 1;
}

body.cavunet-dark-theme .cavunet-timeline-rail,
html.cavunet-dark-theme .cavunet-timeline-rail {
  background: rgba(255, 255, 255, 0.2);
}

.cavunet-timeline-nodes {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  min-width: 840px;
  gap: 8px;
}

.cavunet-time-node {
  background: transparent;
  border: none;
  padding: 0 4px;
  cursor: pointer;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
  flex: 1 1 auto;
}

/* 과거 10년 단위 노드: 조밀하고 단정한 밀도 */
.cavunet-time-node.node-era {
  flex: 1 1 auto;
}

/* 2020년 이후 1년 단위 노드: 점진적으로 넓어지는 간격 */
.cavunet-time-node.node-year {
  flex: 1.18 1 auto;
}

.cavunet-time-node.node-now {
  flex: 1.4 1 auto;
}

.cavunet-time-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffffff;
  border: 1.5px solid var(--cavunet-black, #111111);
  box-shadow: 0 0 0 3px var(--cavunet-bg);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

body.cavunet-dark-theme .cavunet-time-dot,
html.cavunet-dark-theme .cavunet-time-dot {
  background: #000000 !important;
  border: 1.5px solid #888888 !important;
  box-shadow: 0 0 0 3px #000000 !important;
}

.cavunet-time-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--cavunet-gray-muted, #777777);
  letter-spacing: 0.3px;
  white-space: nowrap;
  transition: color 0.2s ease;
}

body.cavunet-dark-theme .cavunet-time-label,
html.cavunet-dark-theme .cavunet-time-label {
  color: #aaaaaa !important;
}

.cavunet-time-node:hover .cavunet-time-dot {
  border-color: var(--cavunet-red, #ff0000);
  background: var(--cavunet-red, #ff0000);
  transform: scale(1.2);
  box-shadow: 0 0 8px rgba(255, 0, 0, 0.4);
}

.cavunet-time-node:hover .cavunet-time-label {
  color: var(--cavunet-black, #111111);
}
body.cavunet-dark-theme .cavunet-time-node:hover .cavunet-time-label,
html.cavunet-dark-theme .cavunet-time-node:hover .cavunet-time-label {
  color: #ffffff !important;
}

.cavunet-time-node.active .cavunet-time-dot {
  background: var(--cavunet-red, #ff0000) !important;
  border-color: var(--cavunet-red, #ff0000) !important;
  transform: scale(1.4);
  box-shadow: 0 0 10px rgba(255, 0, 0, 0.6) !important;
}

body.cavunet-dark-theme .cavunet-time-node.active .cavunet-time-dot,
html.cavunet-dark-theme .cavunet-time-node.active .cavunet-time-dot {
  background: #ffffff !important;
  border-color: #ffffff !important;
  box-shadow: 0 0 8px #ffffff, 0 0 16px rgba(255, 255, 255, 0.8), 0 0 26px rgba(255, 255, 255, 0.45), 0 0 0 3px #000000 !important;
}

.cavunet-time-node.active .cavunet-time-label {
  color: var(--cavunet-red, #ff0000) !important;
  font-weight: 800;
}

body.cavunet-dark-theme .cavunet-time-node.active .cavunet-time-label,
html.cavunet-dark-theme .cavunet-time-node.active .cavunet-time-label {
  color: #ffffff !important;
  font-weight: 800;
  text-shadow: 0 0 6px rgba(255, 255, 255, 0.9), 0 0 14px rgba(255, 255, 255, 0.5) !important;
}

/* ============================================================
   [ABOUT PAGE - 2-COLUMN SPLIT & JOURNEY TREE ARCHITECTURE]
   - 좌측 구역: 헤더 로고 폭(var(--cavunet-grid-col1-width, 40.7%))과 100% 일치 + 세로 분할선 + 소개 텍스트만 중앙 정렬 + 화면 고정(Sticky)
   - 우측 구역: 상단 2-3열 세로 분할선과 100% 일치하는 중앙 트리 라인 + 텍스트만 배치 (박스 제거) + 양옆 여백 + 하단 안착지 심플 문구
   - 폰트: 사이트 공통 폰트(-apple-system, Noto Sans KR, Space Mono) 일체화
   ============================================================ */
.cavunet-about-page {
  background-color: var(--cavunet-bg, #ffffff) !important;
  color: var(--cavunet-black, #111111) !important;
  min-height: calc(100vh - 161px);
  width: 100%;
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
}

.cavunet-about-split-container {
  display: flex;
  width: 100%;
  min-height: calc(100vh - 161px);
  box-sizing: border-box;
  align-items: stretch;
}

/* ─── 좌측 구역 (로고 폭과 동일 + 화면 고정 + 소개 텍스트만 중앙 정렬) ─── */
.cavunet-about-left-col {
  width: var(--cavunet-grid-col1-width, 40.7%);
  min-width: var(--cavunet-grid-col1-width, 40.7%);
  max-width: var(--cavunet-grid-col1-width, 40.7%);
  flex: 0 0 var(--cavunet-grid-col1-width, 40.7%);
  border-right: 1px solid var(--cavunet-line, #111111) !important;
  box-sizing: border-box;
  background-color: var(--cavunet-bg, #ffffff);
  position: relative;
}

body.cavunet-dark-theme .cavunet-about-left-col,
html.cavunet-dark-theme .cavunet-about-left-col {
  border-right-color: rgba(255, 255, 255, 0.2) !important;
}

.cavunet-about-sticky-inner {
  position: sticky;
  top: var(--cavunet-header-total-h, 161px);
  height: calc(100vh - var(--cavunet-header-total-h, 161px) - 30px);
  max-height: calc(100vh - var(--cavunet-header-total-h, 161px) - 30px);
  overflow-y: auto;
  padding: 40px 48px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center; /* 세로 중앙 정렬 */
  align-items: center;     /* 가로 중앙 정렬 */
  gap: 32px;
}

/* 커스텀 스크롤바 미세화 */
.cavunet-about-sticky-inner::-webkit-scrollbar,
.cavunet-about-right-col::-webkit-scrollbar {
  width: 4px;
}
.cavunet-about-sticky-inner::-webkit-scrollbar-thumb,
.cavunet-about-right-col::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
}
body.cavunet-dark-theme .cavunet-about-sticky-inner::-webkit-scrollbar-thumb,
body.cavunet-dark-theme .cavunet-about-right-col::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
}

/* Korean Manifesto Body (사이트 공통 폰트 일체화) */
.cavunet-about-body-kr {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: -0.02em;
  color: var(--cavunet-black, #111111);
  word-break: keep-all;
  overflow-wrap: break-word;
  text-align: center;
  width: 100%;
  max-width: 440px;
  margin: 0;
}

body.cavunet-dark-theme .cavunet-about-body-kr,
html.cavunet-dark-theme .cavunet-about-body-kr {
  color: #e0e0e0 !important;
}

.cavunet-about-body-kr p {
  margin: 0 0 16px 0;
}

.cavunet-about-body-kr p:last-child {
  margin-bottom: 0;
}

/* English Translation Body (사이트 공통 폰트 일체화) */
.cavunet-about-body-en {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0;
  color: #666666;
  word-break: normal;
  overflow-wrap: break-word;
  text-align: center;
  width: 100%;
  max-width: 440px;
  margin: 0;
}

body.cavunet-dark-theme .cavunet-about-body-en,
html.cavunet-dark-theme .cavunet-about-body-en {
  color: #9e9e9e !important;
}

.cavunet-about-body-en p {
  margin: 0 0 16px 0;
}

.cavunet-about-body-en p:last-child {
  margin-bottom: 0;
}

/* ─── 우측 구역 (배너+메뉴 폭과 동일 + 마우스 스크롤 + 전시의 여정 트리) ─── */
.cavunet-about-right-col {
  flex: 1 1 auto;
  min-width: 0;
  width: calc(100% - var(--cavunet-grid-col1-width, 40.7%));
  box-sizing: border-box;
  padding: 0;
  background-color: var(--cavunet-bg, #ffffff);
}

.cavunet-about-right-inner {
  width: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* ─── 전시의 과정 트리 (상단 헤더 2-3열 경계선과 100% 직결되는 트리) ─── */
.cavunet-tree-container {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 36px;
  padding: 40px 0 60px;
  margin: 0;
}

/* 중앙 세로 축선: 상단 헤더의 2열(배너)과 3열(메뉴) 사이 1px 세로선과 정확히 일치 */
.cavunet-tree-center-line {
  position: absolute;
  left: calc(var(--cavunet-grid-col2-width, 29.5%) / (var(--cavunet-grid-col2-width, 29.5%) + var(--cavunet-grid-col3-width, 29.8%)) * 100%);
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: var(--cavunet-line, #111111);
  z-index: 1;
}

body.cavunet-dark-theme .cavunet-tree-center-line {
  background-color: rgba(255, 255, 255, 0.2) !important;
}

/* 트리 행 (Left or Right) */
.cavunet-tree-row {
  display: flex;
  width: 100%;
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

.cavunet-tree-row-left {
  justify-content: flex-start;
}

.cavunet-tree-row-right {
  justify-content: flex-end;
}

/* 좌측 그룹: 상단 2열(배너) 폭과 일치, 우측 정렬, 선에서 살짝 띔 */
.cavunet-tree-row-left .cavunet-tree-group {
  width: calc(var(--cavunet-grid-col2-width, 29.5%) / (var(--cavunet-grid-col2-width, 29.5%) + var(--cavunet-grid-col3-width, 29.8%)) * 100%);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end; /* 트리선 쪽으로 우측 정렬 */
  text-align: right;
  padding-right: 28px;   /* 트리선에서 28px 띔 */
  padding-left: 24px;
}

/* 우측 그룹: 상단 3열(메뉴) 폭과 일치, 좌측 정렬, 선에서 살짝 띔 */
.cavunet-tree-row-right .cavunet-tree-group {
  width: calc(100% - (var(--cavunet-grid-col2-width, 29.5%) / (var(--cavunet-grid-col2-width, 29.5%) + var(--cavunet-grid-col3-width, 29.8%)) * 100%));
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start; /* 트리선 쪽으로 좌측 정렬 */
  text-align: left;
  padding-left: 28px;      /* 트리선에서 28px 띔 */
  padding-right: 24px;
}

/* 단계 타이틀 태그 (01. PLANNING, etc.) */
.cavunet-tree-group-tag {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--cavunet-black, #111111);
  margin-bottom: 4px;
}

body.cavunet-dark-theme .cavunet-tree-group-tag {
  color: #ffffff;
}

/* 개별 전시 과정 텍스트 (네모 박스 제거 & 사이트 공통 폰트 순수 텍스트) */
.cavunet-tree-item,
.cavunet-tree-box {
  display: block;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.65;
  color: var(--cavunet-black, #111111);
  letter-spacing: -0.01em;
  transition: color 0.15s ease;
  white-space: nowrap;
}

.cavunet-tree-item:hover,
.cavunet-tree-box:hover {
  color: var(--cavunet-red, #ff0000);
}

body.cavunet-dark-theme .cavunet-tree-item,
body.cavunet-dark-theme .cavunet-tree-box {
  color: #e4e4e7;
}

body.cavunet-dark-theme .cavunet-tree-item:hover,
body.cavunet-dark-theme .cavunet-tree-box:hover {
  color: #ffffff;
}

/* ─── 트리 하단 안착지 심플 문구 ─── */
.cavunet-tree-haven-statement {
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  border-top: 1px solid var(--cavunet-line, #111111);
  padding: 48px 32px 80px;
  margin-top: 20px;
}

body.cavunet-dark-theme .cavunet-tree-haven-statement {
  border-top-color: rgba(255, 255, 255, 0.2);
}

.cavunet-tree-haven-text {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  font-size: 13.5px;
  line-height: 1.85;
  font-weight: 500;
  color: var(--cavunet-black, #111111);
  word-break: keep-all;
  margin: 0 auto;
  max-width: 640px;
  letter-spacing: -0.01em;
}

body.cavunet-dark-theme .cavunet-tree-haven-text {
  color: #e4e4e7;
}

/* 모바일 반응형 (< 860px) */
@media (max-width: 860px) {
  .cavunet-about-split-container {
    flex-direction: column !important;
  }
  .cavunet-about-left-col {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    border-right: none !important;
    border-bottom: 1px solid var(--cavunet-line, #111111) !important;
  }
  .cavunet-about-sticky-inner {
    position: static !important;
    height: auto !important;
    max-height: none !important;
    padding: 40px 20px !important;
  }
  .cavunet-about-right-col {
    width: 100% !important;
    padding: 40px 20px 80px !important;
  }
  .cavunet-tree-group {
    width: 50% !important;
  }
  .cavunet-tree-box {
    font-size: 10.5px !important;
    padding: 6px 10px !important;
    white-space: normal !important;
  }
}

/* 2단: [COLUMNS: 3 · 6 · 9 · MINI] ─ [⊞ GALLERY / ≡ LIST] 우측 정렬 툴바 */
.cavunet-archive-toolbar-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(0, 0, 0, 0.09);
  width: 100%;
  box-sizing: border-box;
}

body.cavunet-dark-theme .cavunet-archive-toolbar-wrap,
html.cavunet-dark-theme .cavunet-archive-toolbar-wrap {
  border-top-color: rgba(255, 255, 255, 0.1);
}

@media (max-width: 768px) {
  .cavunet-archive-filter-panel {
    padding: 12px var(--cavunet-gutter, 16px) !important;
  }
  .cavunet-archive-toolbar-wrap {
    justify-content: space-between;
    gap: 8px;
  }
}

/* =========================================================
   [UI/UX Pro Max] 2. PDF Provenance Certificate Badge
   (BODY IMAGE GRID LAYOUT 버튼 색상 및 마우스 오버 디자인과 100% 동일하게 일치)
   ========================================================= */
.cavunet-cert-container {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 12px 12px !important;
  background-color: #f8f8f9 !important;
  border: 1px solid rgba(0, 0, 0, 0.22) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  box-sizing: border-box !important;
}

.cavunet-cert-action-wrap {
  display: flex;
  width: 100%;
}

.cavunet-cert-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: 100% !important;
  padding: 8px 10px !important;
  background-color: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.28) !important;
  border-radius: 0 !important;
  color: var(--cavunet-black, #111111) !important;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

.cavunet-cert-btn .cavunet-mode-icon {
  font-size: 11px;
  line-height: 1;
}

.cavunet-cert-btn:hover {
  filter: brightness(1.08) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18) !important;
  background-color: #ffffff !important;
  border-color: rgba(0, 0, 0, 0.5) !important;
  color: var(--cavunet-black, #111111) !important;
}

/* 다크 테마 일치 */
body.cavunet-dark-theme .cavunet-cert-container {
  background-color: #000000 !important;
  border: 1px solid #333333 !important;
}

body.cavunet-dark-theme .cavunet-cert-btn {
  background-color: #111111 !important;
  border: 1px solid #444444 !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-cert-btn:hover {
  background-color: #222222 !important;
  border-color: #777777 !important;
  color: #ffffff !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4) !important;
}

/* =========================================================
   [UI/UX Pro Max] 3. Centered Minimalist Large-Corner Spotlight Search
   ========================================================= */
.cavunet-spotlight-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  display: flex;
  align-items: center; /* 화면 정중앙 수직 정렬 */
  justify-content: center; /* 화면 정중앙 수평 정렬 */
  padding: 24px;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.cavunet-spotlight-modal.is-active {
  opacity: 1 !important;
  visibility: visible !important;
  display: flex !important;
}

.cavunet-spotlight-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* 큰 코너 모서리 & 심플 미니멀 중앙 검색 다이얼로그 (Direct Search Modal) */
.cavunet-spotlight-dialog {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 580px;
  background: var(--cavunet-bg, #ffffff);
  border: 1px solid var(--cavunet-line, #111111);
  border-radius: 20px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: scale(0.96) translateY(10px);
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.cavunet-spotlight-modal.is-active .cavunet-spotlight-dialog {
  transform: scale(1) translateY(0);
}

body.cavunet-dark-theme .cavunet-spotlight-dialog,
html.cavunet-dark-theme .cavunet-spotlight-dialog {
  background: #141414;
  border-color: rgba(255, 255, 255, 0.25);
  box-shadow: 0 24px 72px rgba(0, 0, 0, 0.85);
}

.cavunet-spotlight-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
}

.cavunet-spotlight-search-icon {
  color: var(--cavunet-black, #111111);
  flex-shrink: 0;
  opacity: 0.8;
}

body.cavunet-dark-theme .cavunet-spotlight-search-icon,
html.cavunet-dark-theme .cavunet-spotlight-search-icon {
  color: #ffffff;
}

.cavunet-spotlight-input {
  width: 100%;
  border: none !important;
  outline: none !important;
  background: transparent !important;
  font-family: inherit;
  font-size: 18px;
  font-weight: 600;
  color: var(--cavunet-black, #111111);
  letter-spacing: -0.2px;
}

body.cavunet-dark-theme .cavunet-spotlight-input,
html.cavunet-dark-theme .cavunet-spotlight-input {
  color: #ffffff;
}

.cavunet-spotlight-close-btn {
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: var(--cavunet-gray-muted, #777777);
  font-size: 12px;
  font-weight: 700;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.cavunet-spotlight-close-btn:hover {
  background: var(--cavunet-black, #111111);
  color: #ffffff;
}

body.cavunet-dark-theme .cavunet-spotlight-close-btn,
html.cavunet-dark-theme .cavunet-spotlight-close-btn {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: #cccccc;
}

body.cavunet-dark-theme .cavunet-spotlight-close-btn:hover,
html.cavunet-dark-theme .cavunet-spotlight-close-btn:hover {
  background: #ffffff;
  color: #000000;
}

/* =========================================================
   [Search Page] 검색 결과 상단 바 및 배지 스타일 (단일 폰트/색상 일치화)
   ========================================================= */
.cavunet-search-header-panel {
  margin-top: 24px;
  padding: 16px var(--cavunet-gutter, 32px) 14px var(--cavunet-gutter, 32px);
  border-bottom: 1px solid var(--cavunet-line, #111111);
}

.cavunet-search-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  width: 100%;
}

.cavunet-search-query-badge {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10.5px !important;
  font-weight: 500 !important;
  color: #8e8e93 !important;
  letter-spacing: 0.2px !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

body.cavunet-dark-theme .cavunet-search-query-badge,
html.cavunet-dark-theme .cavunet-search-query-badge {
  color: #8e8e93 !important;
}

/* ============================================================
   [요청 3 반영] 전시 목록 상단 및 하단 블러 효과 완전 제거
   ============================================================ */
.cavunet-scroll-blur-top,
.cavunet-scroll-blur-bottom,
body.cavunet-dark-theme .cavunet-scroll-blur-top,
html.cavunet-dark-theme .cavunet-scroll-blur-top,
body.cavunet-dark-theme .cavunet-scroll-blur-bottom,
html.cavunet-dark-theme .cavunet-scroll-blur-bottom {
  display: none !important;
  height: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mask-image: none !important;
  -webkit-mask-image: none !important;
  pointer-events: none !important;
}

/* ============================================================
   [요청 반영] 메인 테이블 최하단 여백 완전 제거
   (마지막 게시물에 다다랐을 때 푸터 위에 빈틈없이 딱 붙어서 머무르도록 밀착)
   ============================================================ */
#primary.site-main,
.site-main {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.cavunet-table-container {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.cavunet-table-container .cavunet-books-table {
  margin-bottom: 0 !important;
}

/* ============================================================
   [About Page] 심플하고 순수한 텍스트 중심의 About 페이지
   - 가로줄/오너먼트 없는 순수 미니멀 중앙 정렬
   - 컴팩트한 폰트 크기(12px) 및 슬림한 줄 간격(1.7)
   - 사이트 기본 배경색 완벽 계승 (라이트/다크 테마 100% 호환)
   ============================================================ */
.cavunet-about-page {
  background-color: var(--cavunet-bg, #ffffff) !important;
  color: var(--cavunet-black, #111111) !important;
  min-height: calc(100vh - 120px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.cavunet-about-letter-wrapper {
  width: 100%;
  max-width: 680px;
  margin: 0 auto;
  padding: 60px 24px 80px;
  box-sizing: border-box;
  text-align: center;
}

@media (max-width: 768px) {
  .cavunet-about-letter-wrapper {
    padding: 40px 18px 60px;
  }
}

.cavunet-about-letter-card {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

/* Korean Manifesto Body */
.cavunet-about-body-kr {
  font-family: var(--cavunet-about-font-kr, 'Nanum Myeongjo', 'Noto Serif KR', 'Batang', serif);
  font-size: var(--cavunet-about-fz, 12px);
  font-weight: var(--cavunet-about-weight-kr, 400);
  line-height: var(--cavunet-about-lh, 1.7);
  letter-spacing: var(--cavunet-about-ls, -0.2px);
  color: var(--cavunet-black, #111111);
  word-break: keep-all;
  overflow-wrap: break-word;
  margin-bottom: 28px;
  text-align: center;
}

body.cavunet-dark-theme .cavunet-about-body-kr,
html.cavunet-dark-theme .cavunet-about-body-kr {
  color: #e0e0e0 !important;
}

.cavunet-about-body-kr p {
  margin: 0 0 16px 0;
}

.cavunet-about-body-kr p:last-child {
  margin-bottom: 0;
}

/* English Translation Body */
.cavunet-about-body-en {
  font-family: var(--cavunet-about-font-en, 'Cormorant Garamond', 'Georgia', serif);
  font-style: var(--cavunet-about-style-en, italic);
  font-size: calc(var(--cavunet-about-fz, 12px) + 1px);
  font-weight: var(--cavunet-about-weight-en, 400);
  line-height: calc(var(--cavunet-about-lh, 1.7) - 0.05);
  letter-spacing: calc(var(--cavunet-about-ls, -0.2px) + 0.3px);
  color: #666666;
  word-break: normal;
  overflow-wrap: break-word;
  margin-bottom: 0;
  text-align: center;
}

body.cavunet-dark-theme .cavunet-about-body-en,
html.cavunet-dark-theme .cavunet-about-body-en {
  color: #9e9e9e !important;
}

.cavunet-about-body-en p {
  margin: 0 0 16px 0;
}

.cavunet-about-body-en p:last-child {
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .cavunet-br-desktop {
    display: none;
  }
  .cavunet-about-body-kr {
    font-size: 11.5px;
    line-height: 1.65;
  }
  .cavunet-about-body-en {
    font-size: 12.5px;
    line-height: 1.6;
  }
}

/* ============================================================
   [4가지 인터랙티브 캐비넷 인트로 모드] CAVUNET 4-Mode Advanced Cabinet Intro
   1. 4분할 에어로 루버 (Louvre)
   2. 댐퍼 리코일 & 로고 헤더 도킹 모핑 (Damper & Docking)
   3. 광학 프리즘 굴절 & 아카이브 메타 그리드 (Prismatic Grid)
   4. 수직 갤러리 베일 롤링 (Vertical Shutter)
   ============================================================ */
.cavunet-cabinet-intro {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background-color: rgba(0, 0, 0, 0.02);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  perspective: 2200px;
  opacity: 1;
  visibility: visible;
  pointer-events: auto !important;
  cursor: default;
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.8s ease;
}

.cavunet-cabinet-intro.is-opening,
.cavunet-cabinet-intro.is-opening *,
.cavunet-cabinet-intro.is-hidden,
.cavunet-cabinet-intro.is-hidden * {
  pointer-events: none !important;
}

.cavunet-cabinet-intro.is-hidden {
  opacity: 0;
  visibility: hidden;
}

/* 앰비언트 글로우 (오프닝 시 0으로 완전히 페이드아웃되어 메인화면 잔상 방지) */
.cavunet-intro-ambient-glow {
  position: absolute;
  width: 900px;
  height: 900px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(240, 238, 230, 0.5) 0%, rgba(250, 248, 242, 0.3) 45%, transparent 70%);
  filter: blur(140px);
  pointer-events: none;
  opacity: 0.3;
  transform: scale(1);
  transition: transform 1.8s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.9s ease;
}

.cavunet-cabinet-intro.is-opening .cavunet-intro-ambient-glow,
.cavunet-cabinet-intro.is-hidden .cavunet-intro-ambient-glow {
  transform: scale(1.4);
  opacity: 0 !important;
  transition: transform 1.2s ease, opacity 0.8s ease;
}

/* 마우스 커서를 실시간 추적하는 프리즘 렌즈 플레어 */
.cavunet-intro-cursor-flare {
  position: fixed;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(0, 240, 255, 0.50) 0%, rgba(255, 0, 128, 0.38) 40%, rgba(255, 215, 0, 0.35) 70%, transparent 85%);
  filter: blur(60px);
  z-index: 15;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease;
}

.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-cursor-flare {
  opacity: 0.85;
}

.cavunet-cabinet-intro.is-opening .cavunet-intro-cursor-flare,
.cavunet-cabinet-intro.is-hidden .cavunet-intro-cursor-flare {
  opacity: 0 !important;
  transform: translate(-50%, -50%) scale(0.3) !important;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

/* ─── 1. MODE: 4-PANE LOUVRE ─── */
.cavunet-louvre-pane {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 25%;
  background: rgba(255, 255, 255, 0.70);
  backdrop-filter: blur(14px) saturate(130%);
  -webkit-backdrop-filter: blur(14px) saturate(130%);
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.05);
  pointer-events: auto;
  cursor: default;
  transition: transform 1.95s cubic-bezier(0.22, 1, 0.36, 1), opacity 1.95s ease;
}

.cavunet-louvre-p1 { left: 0; transform-origin: left center; border-right: 1px solid rgba(0, 0, 0, 0.08); }
.cavunet-louvre-p2 { left: 25%; transform-origin: left center; border-right: 1px solid rgba(0, 0, 0, 0.08); background: rgba(255, 255, 255, 0.73); }
.cavunet-louvre-p3 { right: 25%; transform-origin: right center; border-left: 1px solid rgba(0, 0, 0, 0.08); background: rgba(255, 255, 255, 0.73); }
.cavunet-louvre-p4 { right: 0; transform-origin: right center; border-left: 1px solid rgba(0, 0, 0, 0.08); }

.cavunet-cabinet-intro.is-opening .cavunet-louvre-p1 { transform: translateX(-135%) rotateY(-35deg); opacity: 0; transition-delay: 0s; }
.cavunet-cabinet-intro.is-opening .cavunet-louvre-p2 { transform: translateX(-120%) rotateY(-22deg); opacity: 0; transition-delay: 0.1s; }
.cavunet-cabinet-intro.is-opening .cavunet-louvre-p3 { transform: translateX(120%) rotateY(22deg); opacity: 0; transition-delay: 0.1s; }
.cavunet-cabinet-intro.is-opening .cavunet-louvre-p4 { transform: translateX(135%) rotateY(35deg); opacity: 0; transition-delay: 0s; }

/* ─── 2. MODE: DAMPER VAULT (2 DOORS + RECOIL) ─── */
.cavunet-intro-door {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: rgba(255, 255, 255, 0.74);
  backdrop-filter: blur(18px) saturate(135%);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  pointer-events: auto;
  cursor: default;
  transition: transform 2.15s cubic-bezier(0.22, 1, 0.36, 1), opacity 2.15s ease;
}

.cavunet-intro-door-left { left: 0; transform-origin: left center; border-right: 1px solid rgba(0, 0, 0, 0.09); }
.cavunet-intro-door-right { right: 0; transform-origin: right center; border-left: 1px solid rgba(0, 0, 0, 0.09); }

.cavunet-cabinet-intro.is-recoil .cavunet-intro-door-left { transform: scale(0.985) translateX(6px) rotateY(3deg); transition: transform 0.16s ease-in; }
.cavunet-cabinet-intro.is-recoil .cavunet-intro-door-right { transform: scale(0.985) translateX(-6px) rotateY(-3deg); transition: transform 0.16s ease-in; }

.cavunet-cabinet-intro.is-opening .cavunet-intro-door-left { transform: translateX(-125%) rotateY(-40deg); opacity: 0; }
.cavunet-cabinet-intro.is-opening .cavunet-intro-door-right { transform: translateX(125%) rotateY(40deg); opacity: 0; }

/* ─── 3. MODE: PRISMATIC OPTICAL & SWISS GRID ─── */
.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-ambient-glow {
  width: 1100px;
  height: 1100px;
  background: radial-gradient(circle, rgba(0, 240, 255, 0.35) 0%, rgba(255, 0, 128, 0.28) 35%, rgba(255, 215, 0, 0.30) 65%, transparent 80%);
  filter: blur(120px);
  opacity: 0.70;
}

.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-door {
  background: rgba(255, 255, 255, 0.60);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
}

.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-door-left {
  background: linear-gradient(135deg, rgba(0, 240, 255, 0.12), rgba(255, 255, 255, 0.62));
}

.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-door-right {
  background: linear-gradient(225deg, rgba(255, 0, 128, 0.10), rgba(255, 215, 0, 0.10), rgba(255, 255, 255, 0.62));
}

.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-door-left .cavunet-intro-door-seam {
  width: 2px;
  background: linear-gradient(to bottom, transparent, #00f0ff, #ff007f, transparent);
  box-shadow: 0 0 14px rgba(0, 240, 255, 0.85);
}

.cavunet-cabinet-intro[data-mode="prism"] .cavunet-intro-door-right .cavunet-intro-door-seam {
  width: 2px;
  background: linear-gradient(to bottom, transparent, #ff007f, #ffaa00, transparent);
  box-shadow: 0 0 14px rgba(255, 0, 128, 0.85);
}

.cavunet-intro-swiss-meta {
  position: absolute;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  color: #333333;
  font-weight: 600;
  pointer-events: none;
  user-select: none;
}

/* ─── 4. MODE: VERTICAL GALLERY SHUTTER ─── */
.cavunet-vertical-shutter {
  position: absolute;
  left: 0;
  right: 0;
  height: 50%;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(16px) saturate(130%);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.06);
  pointer-events: auto;
  cursor: default;
  transition: transform 2.05s cubic-bezier(0.22, 1, 0.36, 1), opacity 2.05s ease;
}

.cavunet-vertical-top { top: 0; transform-origin: top center; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.cavunet-vertical-bottom { bottom: 0; transform-origin: bottom center; border-top: 1px solid rgba(0, 0, 0, 0.08); }

.cavunet-cabinet-intro.is-opening .cavunet-vertical-top { transform: translateY(-110%) rotateX(20deg); opacity: 0; }
.cavunet-cabinet-intro.is-opening .cavunet-vertical-bottom { transform: translateY(110%) rotateX(-20deg); opacity: 0; }

.cavunet-cabinet-intro {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background-color: rgba(0, 0, 0, 0.02);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  perspective: 2200px;
  opacity: 1;
  visibility: visible;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.8s ease;
}

.cavunet-louvre-pane,
.cavunet-intro-door,
.cavunet-vertical-shutter {
  cursor: pointer !important;
}

/* ─── CENTER INTERACTIVE LOGO ─── */
.cavunet-intro-center-wrap {
  position: relative;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer !important;
  pointer-events: auto !important;
  user-select: none;
  padding: 40px;
  transition: transform 1.8s cubic-bezier(0.22, 1, 0.36, 1), opacity 1.8s ease, filter 1.8s ease;
}

.cavunet-cabinet-intro.is-opening .cavunet-intro-center-wrap {
  transform: scale(1.14);
  opacity: 0;
  filter: blur(16px);
  pointer-events: none;
}

/* 댐퍼 모드 로고 헤더 도킹 모핑 */
.cavunet-cabinet-intro[data-mode="damper"].is-opening .cavunet-intro-center-wrap {
  transform: translate(-36vw, -40vh) scale(0.42);
  opacity: 0;
  filter: blur(4px);
  transition: transform 2.0s cubic-bezier(0.22, 1, 0.36, 1), opacity 1.9s ease, filter 2.0s ease;
}

.cavunet-intro-logo-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer !important;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
}

.cavunet-intro-center-wrap:hover .cavunet-intro-logo-inner {
  transform: scale(1.04);
}

.cavunet-intro-logo-text {
  font-family: 'Cormorant Garamond', 'Playfair Display', 'Times New Roman', 'Noto Serif KR', Georgia, serif !important;
  font-size: clamp(54px, 6.5vw, 92px) !important;
  font-weight: 500 !important;
  letter-spacing: -0.035em !important;
  color: #111111 !important;
  line-height: 1 !important;
  text-transform: lowercase !important;
  user-select: none !important;
  cursor: pointer !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.35s ease, text-shadow 0.35s ease;
}

body.cavunet-dark-theme .cavunet-intro-logo-text,
html.cavunet-dark-theme .cavunet-intro-logo-text,
[data-theme="dark"] .cavunet-intro-logo-text {
  color: #ffffff !important;
  text-shadow: 0 4px 28px rgba(255, 255, 255, 0.22);
}

.cavunet-intro-logo-img {
  width: 380px;
  max-width: 85vw;
  height: auto;
  display: block;
  filter: drop-shadow(0 2px 15px rgba(0, 0, 0, 0.08));
  transition: filter 0.35s ease;
  pointer-events: none;
}

.cavunet-intro-center-wrap:hover .cavunet-intro-logo-img {
  filter: drop-shadow(0 4px 30px rgba(0, 0, 0, 0.16));
}

/* 하단 4-모드 셀렉터 바 */
.cavunet-intro-hud-bar {
  position: absolute;
  bottom: 30px;
  z-index: 120;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  max-width: 94vw;
  overflow-x: auto;
  cursor: default !important;
}

body.cavunet-dark-theme .cavunet-intro-hud-bar,
html.cavunet-dark-theme .cavunet-intro-hud-bar,
[data-theme="dark"] .cavunet-intro-hud-bar {
  background: rgba(24, 24, 27, 0.90) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
}

/* 다크모드 인트로 도어 */
body.cavunet-dark-theme .cavunet-louvre-pane,
html.cavunet-dark-theme .cavunet-louvre-pane,
[data-theme="dark"] .cavunet-louvre-pane {
  background: rgba(18, 18, 20, 0.78) !important;
  border-color: rgba(255, 255, 255, 0.10) !important;
}

body.cavunet-dark-theme .cavunet-intro-door,
html.cavunet-dark-theme .cavunet-intro-door,
[data-theme="dark"] .cavunet-intro-door {
  background: rgba(18, 18, 20, 0.82) !important;
  border-color: rgba(255, 255, 255, 0.10) !important;
}

body.cavunet-dark-theme .cavunet-vertical-shutter,
html.cavunet-dark-theme .cavunet-vertical-shutter,
[data-theme="dark"] .cavunet-vertical-shutter {
  background: rgba(18, 18, 20, 0.80) !important;
  border-color: rgba(255, 255, 255, 0.10) !important;
}

.cavunet-intro-hud-btn {
  background: none;
  border: none;
  padding: 6px 12px;
  border-radius: 9999px;
  color: #555555;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
}

.cavunet-intro-hud-btn:hover {
  color: #000000;
  background: rgba(0, 0, 0, 0.05);
}

.cavunet-intro-hud-btn.active {
  background: #111111;
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   THEME-AWARE DYNAMIC ARROW CURSOR (손가락 커서 제거 & 일관된 화살표 커서 유지)
   ========================================================================== */

/* 1. White / Light Theme Default (Black Arrow Cursor Everywhere) */
html,
body,
*,
*::before,
*::after,
a,
button,
[role="button"],
input,
select,
label,
.cavunet-table-row,
.trivision-row-wrap,
.cavunet-grid-shelf-link,
.cavunet-grid-tool-btn,
.cavunet-timeline-node,
.cavunet-view-btn,
.cv-chip,
.cv-btn,
.cavunet-accordion-header,
.cavunet-intro-center-wrap {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' stroke='%23ffffff' stroke-width='1.5' stroke-linejoin='round' d='M5.5 3.21V20.8c0 .45.54.67.85.35l4.86-4.86a.5.5 0 0 1 .35-.15h6.87c.45 0 .67-.54.35-.85L5.5 3.21z'/%3E%3C/svg%3E") 5 3, default !important;
}

/* 2. Black / Dark Theme (White Arrow Cursor Everywhere) */
html.cavunet-dark-theme,
html.cavunet-dark-theme body,
html.cavunet-dark-theme *,
html.cavunet-dark-theme *::before,
html.cavunet-dark-theme *::after,
body.cavunet-dark-theme,
body.cavunet-dark-theme *,
body.cavunet-dark-theme *::before,
body.cavunet-dark-theme *::after,
[data-theme="dark"],
[data-theme="dark"] *,
[data-theme="dark"] *::before,
[data-theme="dark"] *::after {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' stroke='%23000000' stroke-width='1.5' stroke-linejoin='round' d='M5.5 3.21V20.8c0 .45.54.67.85.35l4.86-4.86a.5.5 0 0 1 .35-.15h6.87c.45 0 .67-.54.35-.85L5.5 3.21z'/%3E%3C/svg%3E") 5 3, default !important;
}

/* ==========================================================================
   ARCHIVE DYNAMIC HEADER NAV & INDEX TAGS PANEL (UI/UX 2.0)
   ========================================================================== */

/* 1. Slogan Cell (Col 1, Row 2): Slogan vs Category Emoticon Buttons (Centered) */
.cavunet-grid-cell-slogan {
  position: relative;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  overflow: hidden;
}

.cavunet-ribbon-slogan-text {
  display: inline-block;
  white-space: nowrap;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.cavunet-archive-cat-group {
  display: none;
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 3px;
  width: 100% !important;
  height: 100%;
  margin: 0 auto !important;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Active Archive View State for Slogan Cell */
body.cavunet-view-archive .cavunet-ribbon-slogan-text,
body.archive .cavunet-ribbon-slogan-text,
body.page-template-page-timeline .cavunet-ribbon-slogan-text,
body.page-template-page-filter .cavunet-ribbon-slogan-text {
  opacity: 0 !important;
  transform: translateY(-6px) !important;
  pointer-events: none !important;
  display: none !important;
}

body.cavunet-view-archive .cavunet-archive-cat-group,
body.archive .cavunet-archive-cat-group,
body.page-template-page-timeline .cavunet-archive-cat-group,
body.page-template-page-filter .cavunet-archive-cat-group {
  display: inline-flex !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* 2. Banner Cell (Col 2, Row 2): Marquee vs Centered 3-6-9 & View Mode Controls */
.cavunet-grid-cell-banner {
  position: relative;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden;
  padding-left: 12px;
  padding-right: 12px;
}

.cavunet-grid-banner-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.cavunet-archive-view-controls-center {
  display: none;
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px;
  width: 100%;
  height: 100%;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

body.cavunet-view-archive .cavunet-grid-banner-inner,
body.archive .cavunet-grid-banner-inner,
body.page-template-page-timeline .cavunet-grid-banner-inner,
body.page-template-page-filter .cavunet-grid-banner-inner {
  opacity: 0 !important;
  transform: translateY(-6px) !important;
  pointer-events: none !important;
  display: none !important;
}

body.cavunet-view-archive .cavunet-archive-view-controls-center,
body.archive .cavunet-archive-view-controls-center,
body.page-template-page-timeline .cavunet-archive-view-controls-center,
body.page-template-page-filter .cavunet-archive-view-controls-center {
  display: inline-flex !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* [요청 3 & 4 반영] VENUE 및 ARTIST 모드 시 배너 위치에 정렬 툴바만 정확히 노출하고 3-6-9 툴바는 숨김 */
body.cavunet-archive-mode-capsule .cavunet-archive-view-controls-center {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.cavunet-archive-mode-capsule .cavunet-capsule-sort-controls-center {
  display: inline-flex !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

.cavunet-density-switcher,
.cavunet-archive-view-switcher {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.cavunet-density-btn,
.cavunet-view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  padding: 0 8px;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--cavunet-black, #111111);
  background: transparent;
  border: none;
  border-radius: 9999px !important;
  cursor: pointer !important;
  user-select: none;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

.cavunet-density-btn:hover,
.cavunet-view-btn:hover {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
}

.cavunet-density-btn.active,
.cavunet-view-btn.active {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  font-weight: 700;
  border-radius: 9999px !important;
}

.cavunet-density-sep,
.cavunet-view-btn-sep {
  color: var(--cavunet-line, #111111);
  opacity: 0.3;
  font-size: 11px;
  font-family: var(--cavunet-font-mono, monospace);
}

body.cavunet-dark-theme .cavunet-density-btn,
body.cavunet-dark-theme .cavunet-view-btn {
  color: #a1a1aa;
}

body.cavunet-dark-theme .cavunet-density-btn:hover,
body.cavunet-dark-theme .cavunet-view-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-density-btn.active,
body.cavunet-dark-theme .cavunet-view-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-density-sep,
body.cavunet-dark-theme .cavunet-view-btn-sep {
  color: rgba(255, 255, 255, 0.4);
}

/* 3. Category Buttons & Staggered Reveal (라운드 캡슐 모서리 및 블랙 캡슐 호버/클릭 효과) */
.cavunet-archive-cat-btn {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 9999px !important;
  padding: 4px 10px;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 11px;
  font-weight: 600;
  color: var(--cavunet-black, #111111);
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
  letter-spacing: -0.01em;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer !important;
}

.cavunet-cat-label {
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  line-height: 1;
}

.cavunet-cat-sep {
  color: var(--cavunet-line, #111111);
  opacity: 0.3;
  font-size: 11px;
  font-family: var(--cavunet-font-mono, monospace);
  user-select: none;
  line-height: 1;
}

body.cavunet-dark-theme .cavunet-cat-sep {
  color: rgba(255, 255, 255, 0.4);
}

/* [요청 4 반영] 아카이브 뷰가 아닐 때(메인 로고 클릭/타 페이지 이동 시) 배너 셀에 정렬/뷰 컨트롤러가 절대 노출되지 않도록 원천 차단 */
body:not(.cavunet-view-archive):not(.archive):not(.page-template-page-timeline):not(.page-template-page-filter) #cavunet-capsule-sort-controls,
body:not(.cavunet-view-archive):not(.archive):not(.page-template-page-timeline):not(.page-template-page-filter) .cavunet-capsule-sort-controls-center,
body:not(.cavunet-view-archive):not(.archive):not(.page-template-page-timeline):not(.page-template-page-filter) #cavunet-archive-view-controls,
body:not(.cavunet-view-archive):not(.archive):not(.page-template-page-timeline):not(.page-template-page-filter) .cavunet-archive-view-controls-center,
body:not(.cavunet-view-archive):not(.archive):not(.page-template-page-timeline):not(.page-template-page-filter) #cavunet-archive-cat-group,
body:not(.cavunet-view-archive):not(.archive):not(.page-template-page-timeline):not(.page-template-page-filter) .cavunet-archive-cat-group {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* [요청 4 반영] 마우스 오버시 검정색 라운드 캡슐 효과 */
.cavunet-archive-cat-btn:hover {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
}

/* [요청 3 반영] 마우스 클릭시 캡슐에 라운드 모서리 */
.cavunet-archive-cat-btn.active {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  font-weight: 700;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-archive-cat-btn {
  color: #e4e4e7;
}

body.cavunet-dark-theme .cavunet-archive-cat-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-archive-cat-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  font-weight: 700;
  border-radius: 9999px !important;
}

/* Unified Smooth Slide-Up Entrance Effect (텍스트가 아래에서 위로 스무스하게 등장하는 효과) */
@keyframes cavunetToolbarSlideUp {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.cavunet-toolbar-slide-up,
body.cavunet-view-archive .cavunet-archive-cat-group,
body.archive .cavunet-archive-cat-group,
body.page-template-page-timeline .cavunet-archive-cat-group,
body.page-template-page-filter .cavunet-archive-cat-group,
body.cavunet-view-archive .cavunet-archive-view-controls-center,
body.archive .cavunet-archive-view-controls-center,
body.page-template-page-timeline .cavunet-archive-view-controls-center,
body.page-template-page-filter .cavunet-archive-view-controls-center,
body.cavunet-archive-mode-capsule .cavunet-capsule-sort-controls-center {
  animation: cavunetToolbarSlideUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}

.cavunet-archive-nav-divider {
  display: inline-block;
  width: 1px;
  height: 14px;
  background: var(--cavunet-line, #111111);
  opacity: 0.25;
}

body.cavunet-dark-theme .cavunet-archive-nav-divider {
  background: rgba(255, 255, 255, 0.3);
}

/* 3. Index Tags Panel (Between Sticky Header and Archive Exhibition Cards) */
.cavunet-archive-index-tags-panel {
  width: 100%;
  background: var(--cavunet-bg, #ffffff);
  border-bottom: 1px solid var(--cavunet-line, #111111);
  padding: 10px 24px;
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.cavunet-archive-index-tags-panel::-webkit-scrollbar {
  display: none;
}

body.cavunet-dark-theme .cavunet-archive-index-tags-panel {
  background: #09090b;
  border-bottom-color: rgba(255, 255, 255, 0.15);
}

.cavunet-archive-tags-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 28px;
  transition: opacity 0.25s ease;
}

.cavunet-index-tag-chip {
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 9999px;
  padding: 3px 10px;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: 11px;
  font-weight: 500;
  color: var(--cavunet-black, #111111);
  transition: all 0.15s ease;
  white-space: nowrap;
  letter-spacing: -0.01em;
  cursor: pointer !important;
}

.cavunet-index-tag-chip:hover {
  border-color: var(--cavunet-black, #111111);
  background: var(--cavunet-black, #111111);
  color: #ffffff !important;
  border-radius: 9999px;
}

.cavunet-index-tag-chip.active {
  background: var(--cavunet-black, #111111);
  color: #ffffff !important;
  border-color: var(--cavunet-black, #111111);
  font-weight: 700;
  border-radius: 9999px;
}

body.cavunet-dark-theme .cavunet-index-tag-chip {
  border-color: rgba(255, 255, 255, 0.2);
  color: #e4e4e7;
}

body.cavunet-dark-theme .cavunet-index-tag-chip:hover {
  border-color: #ffffff;
  background: #ffffff;
  color: #000000 !important;
  border-radius: 9999px;
}

body.cavunet-dark-theme .cavunet-index-tag-chip.active {
  background: #ffffff;
  color: #000000 !important;
  border-color: #ffffff;
  border-radius: 9999px;
}

/* Choseong & Quick Filter Bar */
.cavunet-choseong-bar {
  display: flex;
  align-items: center;
  gap: 3px;
  width: 100%;
  flex-wrap: wrap;
  padding-bottom: 6px;
  margin-bottom: 6px;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
}

body.cavunet-dark-theme .cavunet-choseong-bar {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

.cavunet-choseong-btn {
  background: transparent;
  border: none;
  padding: 2px 6px;
  font-size: 10.5px;
  font-weight: 600;
  color: #71717a;
  border-radius: 9999px;
  transition: all 0.15s ease;
}

.cavunet-choseong-btn:hover {
  color: #ffffff !important;
  background: var(--cavunet-black, #111111);
  border-radius: 9999px;
}

.cavunet-choseong-btn.active {
  background: var(--cavunet-black, #111111);
  color: #ffffff !important;
  border-radius: 9999px;
}

body.cavunet-dark-theme .cavunet-choseong-btn {
  color: #a1a1aa;
}

body.cavunet-dark-theme .cavunet-choseong-btn:hover {
  color: #000000 !important;
  background: #ffffff;
  border-radius: 9999px;
}

body.cavunet-dark-theme .cavunet-choseong-btn.active {
  background: #ffffff;
  color: #000000 !important;
  border-radius: 9999px;
}

/* ==========================================================================
   4. CAPSULE SORT & REFRESH TOOLBAR (FOR VENUE & ARTIST MODE)
   ========================================================================== */

.cavunet-capsule-sort-controls-center {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  z-index: 5;
  background: transparent;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
}

.cavunet-sort-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  padding: 0 9px;
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--cavunet-black, #111111);
  background: transparent;
  border: none;
  border-radius: 9999px !important;
  cursor: pointer !important;
  user-select: none;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

/* [요청 4 반영] 마우스 오버시 검정색 라운드 캡슐 효과 */
.cavunet-sort-btn:hover {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
}

.cavunet-sort-btn:hover svg {
  stroke: #ffffff !important;
}

/* [요청 3 반영] 마우스 클릭시 캡슐에 라운드 모서리 */
.cavunet-sort-btn.active {
  background: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  font-weight: 700;
  border-radius: 9999px !important;
}

.cavunet-sort-btn.active svg {
  stroke: #ffffff !important;
}

.cavunet-sort-sep {
  color: var(--cavunet-line, #111111);
  opacity: 0.3;
  font-size: 11px;
  font-family: var(--cavunet-font-mono, monospace);
}

body.cavunet-dark-theme .cavunet-sort-btn {
  color: #a1a1aa;
}

body.cavunet-dark-theme .cavunet-sort-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-sort-btn:hover svg {
  stroke: #000000 !important;
}

body.cavunet-dark-theme .cavunet-sort-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-sort-btn.active svg {
  stroke: #000000 !important;
}

body.cavunet-dark-theme .cavunet-sort-sep {
  color: rgba(255, 255, 255, 0.4);
}

/* ==========================================================================
   5. CAPSULE CLOUD WALL (FOR VENUE & ARTIST FULL-SCREEN RANDOM INFINITE FEED)
   ========================================================================== */

.cavunet-capsule-wall-wrap {
  width: 100%;
  padding: 24px 32px 60px 32px;
  box-sizing: border-box;
  background: var(--cavunet-bg, #ffffff);
  min-height: calc(100vh - 180px);
  transition: background-color 0.25s ease;
}

body.cavunet-dark-theme .cavunet-capsule-wall-wrap {
  background: #09090b;
}

/* [요청 1 반영] VENUE/ARTIST CAPSULE CLOUD 표시 및 아래 가로 라인 완전 제거 */
.cavunet-capsule-wall-header {
  display: none !important;
}

.cavunet-capsule-wall-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: flex-start;
  gap: 10px 12px;
  width: 100%;
}

/* [요청 2 반영] 캡슐 클라우드 안의 폰트 굵기를 더 얇고 정갈하게(400) 조정 */
.cavunet-capsule-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 15px;
  border-radius: 9999px;
  border: 1px solid var(--cavunet-line, #111111);
  background-color: var(--cavunet-bg, #ffffff);
  color: var(--cavunet-black, #111111);
  font-family: var(--cavunet-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 13px;
  font-weight: 400; /* Thinner font weight */
  letter-spacing: -0.015em;
  line-height: 1.25;
  cursor: pointer !important;
  user-select: none;
  box-sizing: border-box;
  white-space: nowrap;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  animation: cavunetCapsuleFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.cavunet-capsule-count {
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 10px;
  font-weight: 500;
  color: var(--cavunet-gray-muted, #777777);
  background: rgba(0, 0, 0, 0.05);
  padding: 1px 5px;
  border-radius: 9999px;
  line-height: 1.3;
  transition: all 0.18s ease;
}

.cavunet-capsule-item:hover {
  background-color: var(--cavunet-black, #111111) !important;
  color: #ffffff !important;
  border-color: var(--cavunet-black, #111111) !important;
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}

.cavunet-capsule-item:hover .cavunet-capsule-count {
  background: rgba(255, 255, 255, 0.25);
  color: #ffffff;
}

body.cavunet-dark-theme .cavunet-capsule-item {
  background-color: #121215;
  border-color: rgba(255, 255, 255, 0.22);
  color: #e4e4e7;
}

body.cavunet-dark-theme .cavunet-capsule-count {
  background: rgba(255, 255, 255, 0.12);
  color: #a1a1aa;
}

body.cavunet-dark-theme .cavunet-capsule-item:hover {
  background-color: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(255, 255, 255, 0.14);
}

body.cavunet-dark-theme .cavunet-capsule-item:hover .cavunet-capsule-count {
  background: rgba(0, 0, 0, 0.15);
  color: #000000;
}

@keyframes cavunetCapsuleFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.cavunet-capsule-infinite-sentinel {
  width: 100%;
  padding: 30px 0 10px 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cavunet-capsule-spinner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--cavunet-font-mono, 'Space Mono', monospace);
  font-size: 11px;
  color: var(--cavunet-gray-muted, #777777);
  letter-spacing: 0.5px;
}

body.cavunet-dark-theme .cavunet-capsule-spinner {
  color: #a1a1aa;
}

/* ==========================================================================
   5. COMPREHENSIVE DARK THEME (흑백 테마 반전 완벽 지원: 로고, 툴바, 태그, 전시 목록)
   ========================================================================== */

/* 5.1 CSS Variables & Global Containers */
html.cavunet-dark-theme,
body.cavunet-dark-theme {
  --cavunet-bg: #000000;
  --cavunet-black: #ffffff;
  --cavunet-white: #000000;
  --cavunet-line: rgba(255, 255, 255, 0.2);
  --cavunet-border-color: rgba(255, 255, 255, 0.2);
  --cavunet-gray-dark: #e4e4e7;
  --cavunet-gray-muted: #a1a1aa;
  background-color: #000000 !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-site-wrapper,
body.cavunet-dark-theme .cavunet-header-wrap,
body.cavunet-dark-theme .cavunet-footer,
html.cavunet-dark-theme .cavunet-header-wrap,
html.cavunet-dark-theme .cavunet-footer {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* 5.2 Grid Header & Dividers */
body.cavunet-dark-theme .cavunet-grid-row-top,
body.cavunet-dark-theme .cavunet-grid-row-bottom,
body.cavunet-dark-theme .cavunet-grid-col-1,
body.cavunet-dark-theme .cavunet-grid-col-2,
body.cavunet-dark-theme .cavunet-grid-col-3,
body.cavunet-dark-theme .cavunet-grid-header-wrap,
body.cavunet-dark-theme .cavunet-footer {
  border-color: rgba(255, 255, 255, 0.2) !important;
}

/* 5.3 로고 이미지 & 텍스트 흑백 반전 */
body.cavunet-dark-theme .cavunet-brand-logo,
html.cavunet-dark-theme .cavunet-brand-logo,
[data-theme="dark"] .cavunet-brand-logo,
body.cavunet-dark-theme .cavunet-logo-serif-text,
html.cavunet-dark-theme .cavunet-logo-serif-text,
[data-theme="dark"] .cavunet-logo-serif-text {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-brand-logo-img:not(.cavunet-dark-logo),
body.cavunet-dark-theme .custom-logo,
html.cavunet-dark-theme .cavunet-brand-logo-img:not(.cavunet-dark-logo),
html.cavunet-dark-theme .custom-logo,
[data-theme="dark"] .cavunet-brand-logo-img:not(.cavunet-dark-logo),
[data-theme="dark"] .custom-logo {
  filter: invert(1) brightness(1.2) !important;
}

body.cavunet-dark-theme .cavunet-dark-logo,
html.cavunet-dark-theme .cavunet-dark-logo,
[data-theme="dark"] .cavunet-dark-logo {
  display: inline-block !important;
  filter: none !important;
}

body.cavunet-dark-theme .cavunet-intro-logo-text,
html.cavunet-dark-theme .cavunet-intro-logo-text,
[data-theme="dark"] .cavunet-intro-logo-text {
  color: #ffffff !important;
}

/* 5.4 툴바 (카테고리 툴바, 정렬 툴바, 뷰 모드, 밀도 전환기) */
body.cavunet-dark-theme .cavunet-archive-cat-btn,
html.cavunet-dark-theme .cavunet-archive-cat-btn,
[data-theme="dark"] .cavunet-archive-cat-btn {
  color: #e4e4e7 !important;
  background: transparent !important;
  border-color: transparent !important;
}

body.cavunet-dark-theme .cavunet-archive-cat-btn:hover,
html.cavunet-dark-theme .cavunet-archive-cat-btn:hover,
[data-theme="dark"] .cavunet-archive-cat-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-archive-cat-btn.active,
html.cavunet-dark-theme .cavunet-archive-cat-btn.active,
[data-theme="dark"] .cavunet-archive-cat-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  font-weight: 700 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-cat-sep,
body.cavunet-dark-theme .cavunet-sort-sep,
body.cavunet-dark-theme .cavunet-density-sep,
body.cavunet-dark-theme .cavunet-view-btn-sep,
html.cavunet-dark-theme .cavunet-cat-sep,
html.cavunet-dark-theme .cavunet-sort-sep,
html.cavunet-dark-theme .cavunet-density-sep,
html.cavunet-dark-theme .cavunet-view-btn-sep,
[data-theme="dark"] .cavunet-cat-sep,
[data-theme="dark"] .cavunet-sort-sep,
[data-theme="dark"] .cavunet-density-sep,
[data-theme="dark"] .cavunet-view-btn-sep {
  color: rgba(255, 255, 255, 0.4) !important;
}

body.cavunet-dark-theme .cavunet-archive-nav-divider,
html.cavunet-dark-theme .cavunet-archive-nav-divider,
[data-theme="dark"] .cavunet-archive-nav-divider {
  background-color: rgba(255, 255, 255, 0.25) !important;
}

body.cavunet-dark-theme .cavunet-sort-btn,
html.cavunet-dark-theme .cavunet-sort-btn,
[data-theme="dark"] .cavunet-sort-btn {
  color: #e4e4e7 !important;
  background: transparent !important;
  border-color: transparent !important;
}

body.cavunet-dark-theme .cavunet-sort-btn:hover,
html.cavunet-dark-theme .cavunet-sort-btn:hover,
[data-theme="dark"] .cavunet-sort-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-sort-btn.active,
html.cavunet-dark-theme .cavunet-sort-btn.active,
[data-theme="dark"] .cavunet-sort-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  font-weight: 700 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-density-btn,
body.cavunet-dark-theme .cavunet-view-btn,
html.cavunet-dark-theme .cavunet-density-btn,
html.cavunet-dark-theme .cavunet-view-btn,
[data-theme="dark"] .cavunet-density-btn,
[data-theme="dark"] .cavunet-view-btn {
  color: #e4e4e7 !important;
  background: transparent !important;
  border-color: transparent !important;
}

body.cavunet-dark-theme .cavunet-density-btn:hover,
body.cavunet-dark-theme .cavunet-view-btn:hover,
html.cavunet-dark-theme .cavunet-density-btn:hover,
html.cavunet-dark-theme .cavunet-view-btn:hover,
[data-theme="dark"] .cavunet-density-btn:hover,
[data-theme="dark"] .cavunet-view-btn:hover {
  background: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-density-btn.active,
body.cavunet-dark-theme .cavunet-view-btn.active,
html.cavunet-dark-theme .cavunet-density-btn.active,
html.cavunet-dark-theme .cavunet-view-btn.active,
[data-theme="dark"] .cavunet-density-btn.active,
[data-theme="dark"] .cavunet-view-btn.active {
  background: #ffffff !important;
  color: #000000 !important;
  font-weight: 700 !important;
  border-radius: 9999px !important;
}

/* 5.5 상단 그리드 도구 및 슬로건/배너/선반 */
body.cavunet-dark-theme .cavunet-ribbon-slogan-text,
html.cavunet-dark-theme .cavunet-ribbon-slogan-text,
[data-theme="dark"] .cavunet-ribbon-slogan-text {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-banner-badge,
html.cavunet-dark-theme .cavunet-grid-banner-badge,
[data-theme="dark"] .cavunet-grid-banner-badge {
  color: #e4e4e7 !important;
}

body.cavunet-dark-theme .cavunet-grid-marquee-content,
body.cavunet-dark-theme .cavunet-grid-marquee-item,
body.cavunet-dark-theme .cavunet-grid-marquee-item a,
body.cavunet-dark-theme .cavunet-grid-marquee-link,
html.cavunet-dark-theme .cavunet-grid-marquee-content,
html.cavunet-dark-theme .cavunet-grid-marquee-item,
html.cavunet-dark-theme .cavunet-grid-marquee-item a,
html.cavunet-dark-theme .cavunet-grid-marquee-link,
[data-theme="dark"] .cavunet-grid-marquee-content,
[data-theme="dark"] .cavunet-grid-marquee-item,
[data-theme="dark"] .cavunet-grid-marquee-item a,
[data-theme="dark"] .cavunet-grid-marquee-link {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-marquee-item a:hover,
body.cavunet-dark-theme .cavunet-grid-marquee-link:hover,
html.cavunet-dark-theme .cavunet-grid-marquee-item a:hover,
html.cavunet-dark-theme .cavunet-grid-marquee-link:hover,
[data-theme="dark"] .cavunet-grid-marquee-item a:hover,
[data-theme="dark"] .cavunet-grid-marquee-link:hover {
  color: #ffffff !important;
  text-decoration: underline !important;
}

body.cavunet-dark-theme .cavunet-grid-preserved-link,
html.cavunet-dark-theme .cavunet-grid-preserved-link,
[data-theme="dark"] .cavunet-grid-preserved-link {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-shelf-link,
html.cavunet-dark-theme .cavunet-grid-shelf-link,
[data-theme="dark"] .cavunet-grid-shelf-link {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-grid-shelf-item:hover,
html.cavunet-dark-theme .cavunet-grid-shelf-item:hover,
[data-theme="dark"] .cavunet-grid-shelf-item:hover {
  background-color: #ffffff !important;
  color: #000000 !important;
}

body.cavunet-dark-theme .cavunet-grid-shelf-item:hover .cavunet-grid-shelf-link,
html.cavunet-dark-theme .cavunet-grid-shelf-item:hover .cavunet-grid-shelf-link,
[data-theme="dark"] .cavunet-grid-shelf-item:hover .cavunet-grid-shelf-link {
  color: #000000 !important;
}

body.cavunet-dark-theme .cavunet-grid-tool-btn svg,
body.cavunet-dark-theme .cavunet-desktop-search-toggle svg,
body.cavunet-dark-theme .cavunet-desktop-user-link svg,
body.cavunet-dark-theme .cavunet-desktop-theme-toggle svg,
html.cavunet-dark-theme .cavunet-grid-tool-btn svg,
html.cavunet-dark-theme .cavunet-desktop-search-toggle svg,
html.cavunet-dark-theme .cavunet-desktop-user-link svg,
html.cavunet-dark-theme .cavunet-desktop-theme-toggle svg,
[data-theme="dark"] .cavunet-grid-tool-btn svg,
[data-theme="dark"] .cavunet-desktop-search-toggle svg,
[data-theme="dark"] .cavunet-desktop-user-link svg,
[data-theme="dark"] .cavunet-desktop-theme-toggle svg {
  stroke: #ffffff !important;
  color: #ffffff !important;
}

/* 5.6 태그 (인덱스 태그 칩 & 캡슐 클라우드 월 태그) */
body.cavunet-dark-theme .cavunet-index-tags-container,
body.cavunet-dark-theme #cavunet-archive-tags-container,
html.cavunet-dark-theme .cavunet-index-tags-container,
html.cavunet-dark-theme #cavunet-archive-tags-container,
[data-theme="dark"] .cavunet-index-tags-container,
[data-theme="dark"] #cavunet-archive-tags-container {
  background-color: #000000 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
}

body.cavunet-dark-theme .cavunet-index-tag-chip,
html.cavunet-dark-theme .cavunet-index-tag-chip,
[data-theme="dark"] .cavunet-index-tag-chip {
  background-color: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  color: #e4e4e7 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-index-tag-chip:hover,
html.cavunet-dark-theme .cavunet-index-tag-chip:hover {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  color: #000000 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-index-tag-chip.active,
html.cavunet-dark-theme .cavunet-index-tag-chip.active {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  color: #000000 !important;
  font-weight: 700 !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-capsule-item,
html.cavunet-dark-theme .cavunet-capsule-item,
[data-theme="dark"] .cavunet-capsule-item {
  background-color: #121215 !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
}

body.cavunet-dark-theme .cavunet-capsule-name,
html.cavunet-dark-theme .cavunet-capsule-name,
[data-theme="dark"] .cavunet-capsule-name {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-capsule-count,
html.cavunet-dark-theme .cavunet-capsule-count,
[data-theme="dark"] .cavunet-capsule-count {
  background: rgba(255, 255, 255, 0.12) !important;
  color: #a1a1aa !important;
}

body.cavunet-dark-theme .cavunet-capsule-item:hover,
html.cavunet-dark-theme .cavunet-capsule-item:hover,
[data-theme="dark"] .cavunet-capsule-item:hover {
  background-color: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(255, 255, 255, 0.14) !important;
}

body.cavunet-dark-theme .cavunet-capsule-item:hover .cavunet-capsule-name,
html.cavunet-dark-theme .cavunet-capsule-item:hover .cavunet-capsule-name,
[data-theme="dark"] .cavunet-capsule-item:hover .cavunet-capsule-name {
  color: #000000 !important;
}

body.cavunet-dark-theme .cavunet-capsule-item:hover .cavunet-capsule-count,
html.cavunet-dark-theme .cavunet-capsule-item:hover .cavunet-capsule-count,
[data-theme="dark"] .cavunet-capsule-item:hover .cavunet-capsule-count {
  background: rgba(0, 0, 0, 0.15) !important;
  color: #000000 !important;
}

/* 5.7 목록의 전시 정보들 (전시 목록 테이블 & 갤러리 월 카드) */
body.cavunet-dark-theme .cavunet-table-container,
body.cavunet-dark-theme .cavunet-books-table,
html.cavunet-dark-theme .cavunet-table-container,
html.cavunet-dark-theme .cavunet-books-table,
[data-theme="dark"] .cavunet-table-container,
[data-theme="dark"] .cavunet-books-table {
  background-color: #000000 !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
}

body.cavunet-dark-theme .cavunet-books-table tr,
body.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row,
body.cavunet-dark-theme tr.cavunet-table-row,
html.cavunet-dark-theme .cavunet-books-table tr,
html.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row,
html.cavunet-dark-theme tr.cavunet-table-row,
[data-theme="dark"] .cavunet-books-table tr,
[data-theme="dark"] .cavunet-books-table tr.cavunet-table-row,
[data-theme="dark"] tr.cavunet-table-row {
  background-color: #000000 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-books-table tr:hover,
body.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row:hover,
body.cavunet-dark-theme tr.cavunet-table-row:hover,
html.cavunet-dark-theme .cavunet-books-table tr:hover,
html.cavunet-dark-theme .cavunet-books-table tr.cavunet-table-row:hover,
html.cavunet-dark-theme tr.cavunet-table-row:hover,
[data-theme="dark"] .cavunet-books-table tr:hover,
[data-theme="dark"] .cavunet-books-table tr.cavunet-table-row:hover,
[data-theme="dark"] tr.cavunet-table-row:hover {
  background-color: rgba(255, 255, 255, 0.05) !important;
}

/* 테이블 각 열 전시 정보 텍스트 색상 완벽 반전 */
body.cavunet-dark-theme .col-title,
body.cavunet-dark-theme .col-project_title,
body.cavunet-dark-theme .col-first-title,
body.cavunet-dark-theme .cavunet-row-title-text,
body.cavunet-dark-theme .cavunet-books-table td.col-title,
body.cavunet-dark-theme .cavunet-books-table td.col-project_title,
body.cavunet-dark-theme .cavunet-books-table td.col-first-title,
body.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-text,
html.cavunet-dark-theme .col-title,
html.cavunet-dark-theme .col-project_title,
html.cavunet-dark-theme .col-first-title,
html.cavunet-dark-theme .cavunet-row-title-text,
html.cavunet-dark-theme .cavunet-books-table td.col-title,
html.cavunet-dark-theme .cavunet-books-table td.col-project_title,
html.cavunet-dark-theme .cavunet-books-table td.col-first-title,
html.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-text,
[data-theme="dark"] .col-title,
[data-theme="dark"] .col-project_title,
[data-theme="dark"] .col-first-title,
[data-theme="dark"] .cavunet-row-title-text,
[data-theme="dark"] .cavunet-books-table td.col-title,
[data-theme="dark"] .cavunet-books-table td.col-project_title,
[data-theme="dark"] .cavunet-books-table td.col-first-title,
[data-theme="dark"] .cavunet-books-table td.col-first-title .cavunet-row-title-text {
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-row-title-sep,
body.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-sep,
body.cavunet-dark-theme .cavunet-row-country-sep,
body.cavunet-dark-theme .cavunet-books-table td.col-publisher .cavunet-row-country-sep,
body.cavunet-dark-theme .cavunet-books-table td.col-country .cavunet-row-country-sep,
html.cavunet-dark-theme .cavunet-row-title-sep,
html.cavunet-dark-theme .cavunet-books-table td.col-first-title .cavunet-row-title-sep,
html.cavunet-dark-theme .cavunet-row-country-sep,
html.cavunet-dark-theme .cavunet-books-table td.col-publisher .cavunet-row-country-sep,
html.cavunet-dark-theme .cavunet-books-table td.col-country .cavunet-row-country-sep,
[data-theme="dark"] .cavunet-row-title-sep,
[data-theme="dark"] .cavunet-books-table td.col-first-title .cavunet-row-title-sep,
[data-theme="dark"] .cavunet-row-country-sep,
[data-theme="dark"] .cavunet-books-table td.col-publisher .cavunet-row-country-sep,
[data-theme="dark"] .cavunet-books-table td.col-country .cavunet-row-country-sep {
  background-color: rgba(255, 255, 255, 0.35) !important;
}

body.cavunet-dark-theme .col-author,
body.cavunet-dark-theme .cavunet-books-table td.col-author,
body.cavunet-dark-theme .col-publisher,
body.cavunet-dark-theme .cavunet-books-table td.col-publisher,
body.cavunet-dark-theme .col-dimensions,
body.cavunet-dark-theme .cavunet-books-table td.col-dimensions,
body.cavunet-dark-theme .col-country,
body.cavunet-dark-theme .cavunet-books-table td.col-country,
body.cavunet-dark-theme .col-city,
body.cavunet-dark-theme .cavunet-books-table td.col-city,
body.cavunet-dark-theme .col-category,
body.cavunet-dark-theme .cavunet-books-table td.col-category,
body.cavunet-dark-theme .col-genre,
body.cavunet-dark-theme .cavunet-books-table td.col-genre,
body.cavunet-dark-theme .col-binding,
body.cavunet-dark-theme .cavunet-books-table td.col-binding,
body.cavunet-dark-theme .col-data_provider,
body.cavunet-dark-theme .cavunet-books-table td.col-data_provider,
html.cavunet-dark-theme .col-author,
html.cavunet-dark-theme .cavunet-books-table td.col-author,
html.cavunet-dark-theme .col-publisher,
html.cavunet-dark-theme .cavunet-books-table td.col-publisher,
html.cavunet-dark-theme .col-dimensions,
html.cavunet-dark-theme .cavunet-books-table td.col-dimensions,
html.cavunet-dark-theme .col-country,
html.cavunet-dark-theme .cavunet-books-table td.col-country,
html.cavunet-dark-theme .col-city,
html.cavunet-dark-theme .cavunet-books-table td.col-city,
html.cavunet-dark-theme .col-category,
html.cavunet-dark-theme .cavunet-books-table td.col-category,
html.cavunet-dark-theme .col-genre,
html.cavunet-dark-theme .cavunet-books-table td.col-genre,
html.cavunet-dark-theme .col-binding,
html.cavunet-dark-theme .cavunet-books-table td.col-binding,
html.cavunet-dark-theme .col-data_provider,
html.cavunet-dark-theme .cavunet-books-table td.col-data_provider,
[data-theme="dark"] .col-author,
[data-theme="dark"] .cavunet-books-table td.col-author,
[data-theme="dark"] .col-publisher,
[data-theme="dark"] .cavunet-books-table td.col-publisher,
[data-theme="dark"] .col-dimensions,
[data-theme="dark"] .cavunet-books-table td.col-dimensions,
[data-theme="dark"] .col-country,
[data-theme="dark"] .cavunet-books-table td.col-country,
[data-theme="dark"] .col-city,
[data-theme="dark"] .cavunet-books-table td.col-city,
[data-theme="dark"] .col-category,
[data-theme="dark"] .cavunet-books-table td.col-category,
[data-theme="dark"] .col-genre,
[data-theme="dark"] .cavunet-books-table td.col-genre,
[data-theme="dark"] .col-binding,
[data-theme="dark"] .cavunet-books-table td.col-binding,
[data-theme="dark"] .col-data_provider,
[data-theme="dark"] .cavunet-books-table td.col-data_provider {
  color: #e4e4e7 !important;
}

body.cavunet-dark-theme .col-year,
body.cavunet-dark-theme .cavunet-books-table td.col-year,
body.cavunet-dark-theme .col-pages,
body.cavunet-dark-theme .cavunet-books-table td.col-pages,
body.cavunet-dark-theme .col-period,
body.cavunet-dark-theme .cavunet-books-table td.col-period,
body.cavunet-dark-theme .col-date,
body.cavunet-dark-theme .cavunet-books-table td.col-date,
body.cavunet-dark-theme .col-dates,
body.cavunet-dark-theme .cavunet-books-table td.col-dates,
html.cavunet-dark-theme .col-year,
html.cavunet-dark-theme .cavunet-books-table td.col-year,
html.cavunet-dark-theme .col-pages,
html.cavunet-dark-theme .cavunet-books-table td.col-pages,
html.cavunet-dark-theme .col-period,
html.cavunet-dark-theme .cavunet-books-table td.col-period,
html.cavunet-dark-theme .col-date,
html.cavunet-dark-theme .cavunet-books-table td.col-date,
html.cavunet-dark-theme .col-dates,
html.cavunet-dark-theme .cavunet-books-table td.col-dates,
[data-theme="dark"] .col-year,
[data-theme="dark"] .cavunet-books-table td.col-year,
[data-theme="dark"] .col-pages,
[data-theme="dark"] .cavunet-books-table td.col-pages,
[data-theme="dark"] .col-period,
[data-theme="dark"] .cavunet-books-table td.col-period,
[data-theme="dark"] .col-date,
[data-theme="dark"] .cavunet-books-table td.col-date,
[data-theme="dark"] .col-dates,
[data-theme="dark"] .cavunet-books-table td.col-dates {
  color: #a1a1aa !important;
}

body.cavunet-dark-theme .col-mgmt_code,
body.cavunet-dark-theme .cavunet-books-table td.col-mgmt_code,
html.cavunet-dark-theme .col-mgmt_code,
html.cavunet-dark-theme .cavunet-books-table td.col-mgmt_code,
[data-theme="dark"] .col-mgmt_code,
[data-theme="dark"] .cavunet-books-table td.col-mgmt_code {
  color: #71717a !important;
}

/* 갤러리 월 카드 흑백 반전 */
body.cavunet-dark-theme .cavunet-portrait-card,
html.cavunet-dark-theme .cavunet-portrait-card,
[data-theme="dark"] .cavunet-portrait-card {
  background-color: #000000 !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-portrait-img-wrap,
html.cavunet-dark-theme .cavunet-portrait-img-wrap,
[data-theme="dark"] .cavunet-portrait-img-wrap {
  border-color: rgba(255, 255, 255, 0.2) !important;
  background-color: #1a1a1a !important;
}

body.cavunet-dark-theme .cavunet-portrait-fallback,
html.cavunet-dark-theme .cavunet-portrait-fallback,
[data-theme="dark"] .cavunet-portrait-fallback {
  background-color: #1a1a1a !important;
  color: #ffffff !important;
}

body.cavunet-dark-theme .cavunet-portrait-title,
html.cavunet-dark-theme .cavunet-portrait-title,
[data-theme="dark"] .cavunet-portrait-title {
  color: #ffffff !important;
}





